diff --git a/docs/analog__input_8cpp.html b/docs/analog__input_8cpp.html deleted file mode 100644 index f95bc6d08..000000000 --- a/docs/analog__input_8cpp.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - -SensESP: src/sensors/analog_input.cpp File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
analog_input.cpp File Reference
-
-
-
#include "analog_input.h"
-#include "Arduino.h"
-#include "sensesp.h"
-
-Include dependency graph for analog_input.cpp:
-
-
- - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

-
-
- - - - diff --git a/docs/analog__input_8cpp__incl.map b/docs/analog__input_8cpp__incl.map deleted file mode 100644 index 8d43abe92..000000000 --- a/docs/analog__input_8cpp__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/analog__input_8cpp__incl.md5 b/docs/analog__input_8cpp__incl.md5 deleted file mode 100644 index 5acb6fbe6..000000000 --- a/docs/analog__input_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -c0b1b479d971429ee7f04c3eff2fff0a \ No newline at end of file diff --git a/docs/analog__input_8cpp__incl.png b/docs/analog__input_8cpp__incl.png deleted file mode 100644 index be7a42ded..000000000 Binary files a/docs/analog__input_8cpp__incl.png and /dev/null differ diff --git a/docs/analog__input_8cpp_source.html b/docs/analog__input_8cpp_source.html deleted file mode 100644 index cda0eb290..000000000 --- a/docs/analog__input_8cpp_source.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -SensESP: src/sensors/analog_input.cpp Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
analog_input.cpp
-
-
-Go to the documentation of this file.
1 #include "analog_input.h"
2 
3 #include "Arduino.h"
4 
5 #include "sensesp.h"
6 
8  className = "AnalogInput";
9 }
10 
11 void AnalogInput::update() {
12  output = analogRead(A0);
13  this->notify();
14 }
15 
17  app.onRepeat(100, [this](){ this->update(); });
18 }
-
void notify()
Definition: observable.cpp:3
- -
void enable() override final
- - -
const char * className
Definition: enable.h:55
- -
ReactESP app
-
-
- - - - diff --git a/docs/analog__input_8h.html b/docs/analog__input_8h.html deleted file mode 100644 index 5dc8fadbc..000000000 --- a/docs/analog__input_8h.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - -SensESP: src/sensors/analog_input.h File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
analog_input.h File Reference
-
-
-
#include "sensor.h"
-
-Include dependency graph for analog_input.h:
-
-
- - - - - - - - - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - -
-
-

Go to the source code of this file.

- - - - -

-Classes

class  AnalogInput
 
-
-
- - - - diff --git a/docs/analog__input_8h__dep__incl.map b/docs/analog__input_8h__dep__incl.map deleted file mode 100644 index 6bea12064..000000000 --- a/docs/analog__input_8h__dep__incl.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/analog__input_8h__dep__incl.md5 b/docs/analog__input_8h__dep__incl.md5 deleted file mode 100644 index c35ce2f14..000000000 --- a/docs/analog__input_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -821a23fcffbf8513b23bc2944e342da9 \ No newline at end of file diff --git a/docs/analog__input_8h__dep__incl.png b/docs/analog__input_8h__dep__incl.png deleted file mode 100644 index effb9576e..000000000 Binary files a/docs/analog__input_8h__dep__incl.png and /dev/null differ diff --git a/docs/analog__input_8h__incl.map b/docs/analog__input_8h__incl.map deleted file mode 100644 index 6a237f9ae..000000000 --- a/docs/analog__input_8h__incl.map +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/docs/analog__input_8h__incl.md5 b/docs/analog__input_8h__incl.md5 deleted file mode 100644 index 8fb40fd38..000000000 --- a/docs/analog__input_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -9fa0983aeac82e3826e844c842a9589a \ No newline at end of file diff --git a/docs/analog__input_8h__incl.png b/docs/analog__input_8h__incl.png deleted file mode 100644 index ecbf62b37..000000000 Binary files a/docs/analog__input_8h__incl.png and /dev/null differ diff --git a/docs/analog__input_8h_source.html b/docs/analog__input_8h_source.html deleted file mode 100644 index 762c0449a..000000000 --- a/docs/analog__input_8h_source.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - -SensESP: src/sensors/analog_input.h Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
analog_input.h
-
-
-Go to the documentation of this file.
1 #ifndef _analog_input_H_
2 #define _analog_input_H_
3 
4 #include "sensor.h"
5 
6 class AnalogInput : public NumericSensor {
7 
8 public:
9  AnalogInput();
10  void enable() override final;
11 
12 private:
13  void update();
14 };
15 
16 
17 #endif
-
void enable() override final
- - - -
-
- - - - diff --git a/docs/analogvoltage_8h.html b/docs/analogvoltage_8h.html deleted file mode 100644 index c7cc66a95..000000000 --- a/docs/analogvoltage_8h.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - -SensESP: src/transforms/analogvoltage.h File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
analogvoltage.h File Reference
-
-
-
#include "transforms/linear.h"
-
-Include dependency graph for analogvoltage.h:
-
-
- - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

- - - - -

-Classes

class  AnalogVoltage
 
-
-
- - - - diff --git a/docs/analogvoltage_8h__incl.map b/docs/analogvoltage_8h__incl.map deleted file mode 100644 index 6e2c9c200..000000000 --- a/docs/analogvoltage_8h__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/analogvoltage_8h__incl.md5 b/docs/analogvoltage_8h__incl.md5 deleted file mode 100644 index 54f73bed2..000000000 --- a/docs/analogvoltage_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -40aa9283a313dedf7c46b76da92890b2 \ No newline at end of file diff --git a/docs/analogvoltage_8h__incl.png b/docs/analogvoltage_8h__incl.png deleted file mode 100644 index b8e7960b0..000000000 Binary files a/docs/analogvoltage_8h__incl.png and /dev/null differ diff --git a/docs/analogvoltage_8h_source.html b/docs/analogvoltage_8h_source.html deleted file mode 100644 index dba0ccb3c..000000000 --- a/docs/analogvoltage_8h_source.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -SensESP: src/transforms/analogvoltage.h Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
analogvoltage.h
-
-
-Go to the documentation of this file.
1 #ifndef _analog_voltage_H
2 #define _analog_voltage_H
3 
4 #include "transforms/linear.h"
5 
9 class AnalogVoltage : public Linear {
10 
11  public:
12  AnalogVoltage(String config_path = "") :
13  Linear(1.0 / 1024.0 * 3.3, 0, config_path) {
14  className = "AnalogVoltage";
15  }
16 };
17 
18 #endif
AnalogVoltage(String config_path="")
Definition: analogvoltage.h:12
- - -
Definition: linear.h:9
-
const String config_path
Definition: configurable.h:29
-
const char * className
Definition: enable.h:55
-
-
- - - - diff --git a/docs/angle__correction_8cpp.html b/docs/angle__correction_8cpp.html deleted file mode 100644 index b08ce5e14..000000000 --- a/docs/angle__correction_8cpp.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SensESP: src/transforms/angle_correction.cpp File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
angle_correction.cpp File Reference
-
-
-
#include "angle_correction.h"
-
-Include dependency graph for angle_correction.cpp:
-
-
- - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

-
-
- - - - diff --git a/docs/angle__correction_8cpp__incl.map b/docs/angle__correction_8cpp__incl.map deleted file mode 100644 index 5e3824043..000000000 --- a/docs/angle__correction_8cpp__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/angle__correction_8cpp__incl.md5 b/docs/angle__correction_8cpp__incl.md5 deleted file mode 100644 index d187c57a6..000000000 --- a/docs/angle__correction_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -1a6a5bb48478a2beee2809e988435677 \ No newline at end of file diff --git a/docs/angle__correction_8cpp__incl.png b/docs/angle__correction_8cpp__incl.png deleted file mode 100644 index acc5dee76..000000000 Binary files a/docs/angle__correction_8cpp__incl.png and /dev/null differ diff --git a/docs/angle__correction_8cpp_source.html b/docs/angle__correction_8cpp_source.html deleted file mode 100644 index 6312e4501..000000000 --- a/docs/angle__correction_8cpp_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SensESP: src/transforms/angle_correction.cpp Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
angle_correction.cpp
-
-
-Go to the documentation of this file.
1 #include "angle_correction.h"
2 
3 AngleCorrection::AngleCorrection(float offset, float min_angle, String config_path) :
4  NumericTransform(config_path),
5  offset{ offset }, min_angle{ min_angle } {
6  className = "AngleCorrection";
7  load_configuration();
8 }
9 
10 
11 void AngleCorrection::set_input(float input, uint8_t inputChannel) {
12  // first the correction
13  float x = input + offset;
14 
15  // then wrap around the values
16  x = fmod(x - min_angle, 2 * M_PI);
17  if (x < 0)
18  x += 2 * M_PI;
19  output = x + min_angle;
20 
21  notify();
22 }
23 
24 
25 JsonObject& AngleCorrection::get_configuration(JsonBuffer& buf) {
26  JsonObject& root = buf.createObject();
27  root["offset"] = offset;
28  root["min_angle"] = min_angle;
29  root["value"] = output;
30  return root;
31 }
32 
33 static const char SCHEMA[] PROGMEM = R"###({
34  "type": "object",
35  "properties": {
36  "offset": { "title": "Constant offset", "description": "Value to be added, in radians", "type": "number" },
37  "min_angle": { "title": "Minimum angle value", "description": "If you have output between -pi and pi, use -3.14159265, otherwise use 0.", "type": "number" },
38  "value": { "title": "Last value", "type" : "number", "readOnly": true }
39  }
40  })###";
41 
43  return FPSTR(SCHEMA);
44 }
45 
46 bool AngleCorrection::set_configuration(const JsonObject& config) {
47  String expected[] = { "offset", "min_angle" };
48  for (auto str : expected) {
49  if (!config.containsKey(str)) {
50  return false;
51  }
52  }
53  offset = config["offset"];
54  min_angle = config["min_angle"];
55  return true;
56 }
virtual JsonObject & get_configuration(JsonBuffer &buf) override
-
AngleCorrection(float offset, float min_angle=0, String config_path="")
-
void notify()
Definition: observable.cpp:3
- -
virtual void set_input(float input, uint8_t inputChannel=0) override
-
virtual bool set_configuration(const JsonObject &config) override
-
virtual String get_config_schema() override
- - -
const char PAGE_index [] PROGMEM
Definition: index.h:2
-
-
- - - - diff --git a/docs/angle__correction_8h.html b/docs/angle__correction_8h.html deleted file mode 100644 index 12c5baec9..000000000 --- a/docs/angle__correction_8h.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - -SensESP: src/transforms/angle_correction.h File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
angle_correction.h File Reference
-
-
-
#include "transform.h"
-
-Include dependency graph for angle_correction.h:
-
-
- - - - - - - - - - - - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - -
-
-

Go to the source code of this file.

- - - - -

-Classes

class  AngleCorrection
 
-
-
- - - - diff --git a/docs/angle__correction_8h__dep__incl.md5 b/docs/angle__correction_8h__dep__incl.md5 deleted file mode 100644 index a00fbc7fa..000000000 --- a/docs/angle__correction_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -42acc7865b5f62575cb6e98571bbf329 \ No newline at end of file diff --git a/docs/angle__correction_8h__dep__incl.png b/docs/angle__correction_8h__dep__incl.png deleted file mode 100644 index 9bb888f3a..000000000 Binary files a/docs/angle__correction_8h__dep__incl.png and /dev/null differ diff --git a/docs/angle__correction_8h__incl.map b/docs/angle__correction_8h__incl.map deleted file mode 100644 index 510510468..000000000 --- a/docs/angle__correction_8h__incl.map +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/angle__correction_8h__incl.md5 b/docs/angle__correction_8h__incl.md5 deleted file mode 100644 index badcca211..000000000 --- a/docs/angle__correction_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -f51b5b0e746c17e6c672504f749ce0a4 \ No newline at end of file diff --git a/docs/angle__correction_8h__incl.png b/docs/angle__correction_8h__incl.png deleted file mode 100644 index f3cefc0a7..000000000 Binary files a/docs/angle__correction_8h__incl.png and /dev/null differ diff --git a/docs/angle__correction_8h_source.html b/docs/angle__correction_8h_source.html deleted file mode 100644 index 369b3983e..000000000 --- a/docs/angle__correction_8h_source.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -SensESP: src/transforms/angle_correction.h Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
angle_correction.h
-
-
-Go to the documentation of this file.
1 #ifndef _angle_correction_H_
2 #define _angle_correction_H_
3 
4 #include "transform.h"
5 
6 // Add a value to an angle input (in radians). The output
7 // value is wrapped to a range between [0, 2*pi[. This transform
8 // is useful for correcting e.g. a heading or a wind direction reading.
10  public:
11  AngleCorrection(float offset, float min_angle=0, String config_path="");
12  virtual void set_input(float input, uint8_t inputChannel = 0) override;
13  virtual JsonObject& get_configuration(JsonBuffer& buf) override;
14  virtual bool set_configuration(const JsonObject& config) override;
15  virtual String get_config_schema() override;
16 
17  private:
18  float offset;
19  float min_angle;
20 };
21 
22 #endif
virtual JsonObject & get_configuration(JsonBuffer &buf) override
- -
AngleCorrection(float offset, float min_angle=0, String config_path="")
-
virtual void set_input(float input, uint8_t inputChannel=0) override
-
virtual bool set_configuration(const JsonObject &config) override
-
virtual String get_config_schema() override
- - -
const String config_path
Definition: configurable.h:29
-
-
- - - - diff --git a/docs/annotated.html b/docs/annotated.html deleted file mode 100644 index a0f633665..000000000 --- a/docs/annotated.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - -SensESP: Class List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
-
-
- - - - diff --git a/docs/annotated_dup.js b/docs/annotated_dup.js deleted file mode 100644 index 7aa5ccabc..000000000 --- a/docs/annotated_dup.js +++ /dev/null @@ -1,60 +0,0 @@ -var annotated_dup = -[ - [ "AnalogInput", "class_analog_input.html", "class_analog_input" ], - [ "AnalogVoltage", "class_analog_voltage.html", "class_analog_voltage" ], - [ "AngleCorrection", "class_angle_correction.html", "class_angle_correction" ], - [ "ChangeFilter", "class_change_filter.html", "class_change_filter" ], - [ "Configurable", "class_configurable.html", "class_configurable" ], - [ "CurveInterpolator", "class_curve_interpolator.html", "class_curve_interpolator" ], - [ "DallasTemperatureSensors", "class_dallas_temperature_sensors.html", "class_dallas_temperature_sensors" ], - [ "Debounce", "class_debounce.html", "class_debounce" ], - [ "Difference", "class_difference.html", "class_difference" ], - [ "DigitalInput", "class_digital_input.html", "class_digital_input" ], - [ "DigitalInputCounter", "class_digital_input_counter.html", "class_digital_input_counter" ], - [ "DigitalInputValue", "class_digital_input_value.html", "class_digital_input_value" ], - [ "Enable", "class_enable.html", "class_enable" ], - [ "ENUVector", "struct_e_n_u_vector.html", "struct_e_n_u_vector" ], - [ "FreeMem", "class_free_mem.html", "class_free_mem" ], - [ "Frequency", "class_frequency.html", "class_frequency" ], - [ "GPGGASentenceParser", "class_g_p_g_g_a_sentence_parser.html", "class_g_p_g_g_a_sentence_parser" ], - [ "GPGLLSentenceParser", "class_g_p_g_l_l_sentence_parser.html", "class_g_p_g_l_l_sentence_parser" ], - [ "GPRMCSentenceParser", "class_g_p_r_m_c_sentence_parser.html", "class_g_p_r_m_c_sentence_parser" ], - [ "GPSInput", "class_g_p_s_input.html", "class_g_p_s_input" ], - [ "HTTPServer", "class_h_t_t_p_server.html", "class_h_t_t_p_server" ], - [ "IntegerSensor", "class_integer_sensor.html", "class_integer_sensor" ], - [ "Integrator", "class_integrator.html", "class_integrator" ], - [ "IPAddrDev", "class_i_p_addr_dev.html", "class_i_p_addr_dev" ], - [ "LedBlinker", "class_led_blinker.html", "class_led_blinker" ], - [ "Linear", "class_linear.html", "class_linear" ], - [ "Median", "class_median.html", "class_median" ], - [ "MovingAverage", "class_moving_average.html", "class_moving_average" ], - [ "Networking", "class_networking.html", "class_networking" ], - [ "NMEAData", "struct_n_m_e_a_data.html", "struct_n_m_e_a_data" ], - [ "NMEAParser", "class_n_m_e_a_parser.html", "class_n_m_e_a_parser" ], - [ "NumericSensor", "class_numeric_sensor.html", "class_numeric_sensor" ], - [ "Observable", "class_observable.html", "class_observable" ], - [ "ObservableValue", "class_observable_value.html", "class_observable_value" ], - [ "OneWireTemperature", "class_one_wire_temperature.html", "class_one_wire_temperature" ], - [ "Position", "struct_position.html", "struct_position" ], - [ "PSTI030SentenceParser", "class_p_s_t_i030_sentence_parser.html", "class_p_s_t_i030_sentence_parser" ], - [ "PSTI032SentenceParser", "class_p_s_t_i032_sentence_parser.html", "class_p_s_t_i032_sentence_parser" ], - [ "PSTISentenceParser", "class_p_s_t_i_sentence_parser.html", "class_p_s_t_i_sentence_parser" ], - [ "SensESPApp", "class_sens_e_s_p_app.html", "class_sens_e_s_p_app" ], - [ "Sensor", "class_sensor.html", "class_sensor" ], - [ "SentenceParser", "class_sentence_parser.html", "class_sentence_parser" ], - [ "SKDelta", "class_s_k_delta.html", "class_s_k_delta" ], - [ "SKEmitter", "class_s_k_emitter.html", "class_s_k_emitter" ], - [ "SKOutput", "class_s_k_output.html", "class_s_k_output" ], - [ "SKOutputTime", "class_s_k_output_time.html", "class_s_k_output_time" ], - [ "StringSensor", "class_string_sensor.html", "class_string_sensor" ], - [ "SymmetricTransform", "class_symmetric_transform.html", "class_symmetric_transform" ], - [ "SystemHz", "class_system_hz.html", "class_system_hz" ], - [ "TimeString", "class_time_string.html", "class_time_string" ], - [ "Transform", "class_transform.html", "class_transform" ], - [ "TransformBase", "class_transform_base.html", "class_transform_base" ], - [ "Uptime", "class_uptime.html", "class_uptime" ], - [ "ValueConsumer", "class_value_consumer.html", "class_value_consumer" ], - [ "ValueProducer", "class_value_producer.html", "class_value_producer" ], - [ "VoltageDividerR2", "class_voltage_divider_r2.html", "class_voltage_divider_r2" ], - [ "WSClient", "class_w_s_client.html", "class_w_s_client" ] -]; \ No newline at end of file diff --git a/docs/change__filter_8cpp.html b/docs/change__filter_8cpp.html deleted file mode 100644 index 196f9a018..000000000 --- a/docs/change__filter_8cpp.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SensESP: src/transforms/change_filter.cpp File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
change_filter.cpp File Reference
-
-
-
#include "change_filter.h"
-
-Include dependency graph for change_filter.cpp:
-
-
- - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

-
-
- - - - diff --git a/docs/change__filter_8cpp__incl.map b/docs/change__filter_8cpp__incl.map deleted file mode 100644 index 50a3e5c9a..000000000 --- a/docs/change__filter_8cpp__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/change__filter_8cpp__incl.md5 b/docs/change__filter_8cpp__incl.md5 deleted file mode 100644 index a75fa2b5e..000000000 --- a/docs/change__filter_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -8fd87f511fb80f8aa2bb6af998fd1bd6 \ No newline at end of file diff --git a/docs/change__filter_8cpp__incl.png b/docs/change__filter_8cpp__incl.png deleted file mode 100644 index 3aa3f0711..000000000 Binary files a/docs/change__filter_8cpp__incl.png and /dev/null differ diff --git a/docs/change__filter_8cpp_source.html b/docs/change__filter_8cpp_source.html deleted file mode 100644 index c4178d7a7..000000000 --- a/docs/change__filter_8cpp_source.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -SensESP: src/transforms/change_filter.cpp Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
change_filter.cpp
-
-
-Go to the documentation of this file.
1 #include "change_filter.h"
2 
3 
4 static float absf(float val) {
5  if (val < 0) {
6  return -val;
7  }
8  else {
9  return val;
10  }
11 }
12 
13 
14 ChangeFilter::ChangeFilter(float minDelta, float maxDelta, int maxSkips, String config_path) :
15  minDelta{minDelta},
16  maxDelta{maxDelta},
17  maxSkips{maxSkips},
18  NumericTransform(config_path) {
19 
20  load_configuration();
21  skips = maxSkips+1;
22 }
23 
24 
25 void ChangeFilter::set_input(float newValue, uint8_t inputChannel) {
26 
27  float delta = absf(newValue - output);
28  if ((delta >= minDelta && delta <= maxDelta) || skips > maxSkips) {
29  output = newValue;
30  skips = 0;
31  notify();
32  }
33  else {
34  skips++;
35  }
36 }
37 
38 
39 JsonObject& ChangeFilter::get_configuration(JsonBuffer& buf) {
40  JsonObject& root = buf.createObject();
41  root["minDelta"] = minDelta;
42  root["maxDelta"] = maxDelta;
43  root["maxSkips"] = maxSkips;
44  return root;
45 }
46 
47 static const char SCHEMA[] PROGMEM = R"({
48  "type": "object",
49  "properties": {
50  "minDelta": { "title": "Minimum delta", "description": "Minimum difference in change of value before forwarding", "type": "number" },
51  "maxDelta": { "title": "Maximum delta", "description": "Maximum difference in change of value to allow forwarding", "type": "number" },
52  "maxSkips": { "title": "Max skip count", "description": "Maximum number of consecutive filtered values before one is allowed through", "type": "number" }
53  }
54  })";
55 
56 
58  return FPSTR(SCHEMA);
59 }
60 
61 
62 bool ChangeFilter::set_configuration(const JsonObject& config) {
63  String expected[] = {"minDelta", "maxDelta", "maxSkips" };
64  for (auto str : expected) {
65  if (!config.containsKey(str)) {
66  return false;
67  }
68  }
69  minDelta = config["minDelta"];
70  maxDelta = config["maxDelta"];
71  maxSkips = config["maxSkips"];
72  skips = maxSkips+1;
73  return true;
74 }
virtual JsonObject & get_configuration(JsonBuffer &buf) override
- -
virtual String get_config_schema() override
-
void notify()
Definition: observable.cpp:3
-
virtual void set_input(float newValue, uint8_t inputChannel=0) override
-
SymmetricTransform< float > NumericTransform
Definition: transform.h:114
- - -
ChangeFilter(float minDelta=0.0, float maxDelta=9999.0, int maxSkips=99, String config_path="")
- -
virtual bool set_configuration(const JsonObject &config) override
- - -
const char PAGE_index [] PROGMEM
Definition: index.h:2
-
-
- - - - diff --git a/docs/change__filter_8h.html b/docs/change__filter_8h.html deleted file mode 100644 index 1cbcb35d0..000000000 --- a/docs/change__filter_8h.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - -SensESP: src/transforms/change_filter.h File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
change_filter.h File Reference
-
-
-
-Include dependency graph for change_filter.h:
-
-
- - - - - - - - - - - - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - -
-
-

Go to the source code of this file.

- - - - -

-Classes

class  ChangeFilter
 
-
-
- - - - diff --git a/docs/change__filter_8h__dep__incl.md5 b/docs/change__filter_8h__dep__incl.md5 deleted file mode 100644 index 877a7bb3f..000000000 --- a/docs/change__filter_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -e878835fa9bf30d395fbeab7da32661c \ No newline at end of file diff --git a/docs/change__filter_8h__dep__incl.png b/docs/change__filter_8h__dep__incl.png deleted file mode 100644 index e7ab1a552..000000000 Binary files a/docs/change__filter_8h__dep__incl.png and /dev/null differ diff --git a/docs/change__filter_8h__incl.map b/docs/change__filter_8h__incl.map deleted file mode 100644 index 3e89f007f..000000000 --- a/docs/change__filter_8h__incl.map +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/change__filter_8h__incl.md5 b/docs/change__filter_8h__incl.md5 deleted file mode 100644 index 09dda4e5f..000000000 --- a/docs/change__filter_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -5262db3d0805331a225bf5f0d5a54a93 \ No newline at end of file diff --git a/docs/change__filter_8h__incl.png b/docs/change__filter_8h__incl.png deleted file mode 100644 index fc7ffd678..000000000 Binary files a/docs/change__filter_8h__incl.png and /dev/null differ diff --git a/docs/change__filter_8h_source.html b/docs/change__filter_8h_source.html deleted file mode 100644 index 93c5cbb20..000000000 --- a/docs/change__filter_8h_source.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - -SensESP: src/transforms/change_filter.h Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
change_filter.h
-
-
-Go to the documentation of this file.
1 #ifndef change_filter_H
2 #define change_filter_H
3 
4 #include "transforms/transform.h"
5 
17 
18  public:
19  ChangeFilter(float minDelta = 0.0, float maxDelta = 9999.0, int maxSkips = 99, String config_path="");
20 
21  virtual void set_input(float newValue, uint8_t inputChannel = 0) override;
22 
23  virtual JsonObject& get_configuration(JsonBuffer& buf) override;
24  virtual bool set_configuration(const JsonObject& config) override;
25  virtual String get_config_schema() override;
26 
27  protected:
28  float minDelta;
29  float maxDelta;
30  int maxSkips;
31  int skips;
32 };
33 
34 
35 #endif
-
virtual JsonObject & get_configuration(JsonBuffer &buf) override
- -
virtual String get_config_schema() override
-
virtual void set_input(float newValue, uint8_t inputChannel=0) override
- - -
ChangeFilter(float minDelta=0.0, float maxDelta=9999.0, int maxSkips=99, String config_path="")
- - - -
const String config_path
Definition: configurable.h:29
-
virtual bool set_configuration(const JsonObject &config) override
-
-
- - - - diff --git a/docs/class_analog_input-members.html b/docs/class_analog_input-members.html deleted file mode 100644 index a0ee1b007..000000000 --- a/docs/class_analog_input-members.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
AnalogInput Member List
-
-
- -

This is the complete list of members for AnalogInput, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
AnalogInput()AnalogInput
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable() override finalAnalogInputvirtual
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_sensors()Sensorinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_analog_input.html b/docs/class_analog_input.html deleted file mode 100644 index bf2990b16..000000000 --- a/docs/class_analog_input.html +++ /dev/null @@ -1,254 +0,0 @@ - - - - - - - -SensESP: AnalogInput Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
AnalogInput Class Reference
-
-
- -

#include <analog_input.h>

-
-Inheritance diagram for AnalogInput:
-
-
Inheritance graph
- - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 AnalogInput ()
 
void enable () override final
 
- Public Member Functions inherited from NumericSensor
 NumericSensor (String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
-

Detailed Description

-
-

Definition at line 6 of file analog_input.h.

-

Constructor & Destructor Documentation

- -

◆ AnalogInput()

- -
-
- - - - - - - -
AnalogInput::AnalogInput ()
-
- -

Definition at line 7 of file analog_input.cpp.

- -
-
-

Member Function Documentation

- -

◆ enable()

- -
-
- - - - - -
- - - - - - - -
void AnalogInput::enable ()
-
-finaloverridevirtual
-
-

Called during the initialization process. Override this method to add runtime initialization code to your class

- -

Reimplemented from Enable.

- -

Definition at line 16 of file analog_input.cpp.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_analog_input.js b/docs/class_analog_input.js deleted file mode 100644 index e6f0b33a6..000000000 --- a/docs/class_analog_input.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_analog_input = -[ - [ "AnalogInput", "class_analog_input.html#af40968136e406531f8838434f1c1356b", null ], - [ "enable", "class_analog_input.html#a34942eae263f68e8f44fa3f405d057fb", null ] -]; \ No newline at end of file diff --git a/docs/class_analog_input__inherit__graph.map b/docs/class_analog_input__inherit__graph.map deleted file mode 100644 index e755e3012..000000000 --- a/docs/class_analog_input__inherit__graph.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/class_analog_input__inherit__graph.md5 b/docs/class_analog_input__inherit__graph.md5 deleted file mode 100644 index be9baf236..000000000 --- a/docs/class_analog_input__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -9dbff540142502a8ac98e6d0655b2b05 \ No newline at end of file diff --git a/docs/class_analog_input__inherit__graph.png b/docs/class_analog_input__inherit__graph.png deleted file mode 100644 index 7421d0c8b..000000000 Binary files a/docs/class_analog_input__inherit__graph.png and /dev/null differ diff --git a/docs/class_analog_voltage-members.html b/docs/class_analog_voltage-members.html deleted file mode 100644 index a7b99a942..000000000 --- a/docs/class_analog_voltage-members.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
AnalogVoltage Member List
-
-
- -

This is the complete list of members for AnalogVoltage, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AnalogVoltage(String config_path="")AnalogVoltageinline
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)Transform< float, float >inline
ValueConsumer< float >::connectFrom(ValueProducer< float > *pProducer, uint8_t inputChannel=0)ValueConsumer< float >inline
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema() overrideLinearvirtual
get_configuration(JsonBuffer &buf) overrideLinearvirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
Linear(float k, float c, String config_path="")Linear
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< float >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config) overrideLinearvirtual
set_input(float input, uint8_t inputChannel=0) overrideLinearvirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_analog_voltage.html b/docs/class_analog_voltage.html deleted file mode 100644 index 6eb64752a..000000000 --- a/docs/class_analog_voltage.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - - -SensESP: AnalogVoltage Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
AnalogVoltage Class Reference
-
-
- -

#include <analogvoltage.h>

-
-Inheritance diagram for AnalogVoltage:
-
-
Inheritance graph
- - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 AnalogVoltage (String config_path="")
 
- Public Member Functions inherited from Linear
 Linear (float k, float c, String config_path="")
 
virtual void set_input (float input, uint8_t inputChannel=0) override
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< float >
void connectFrom (ValueProducer< float > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
-

Detailed Description

-

A Transform that translates the values that comes out of an AnalogInput into a voltage

- -

Definition at line 9 of file analogvoltage.h.

-

Constructor & Destructor Documentation

- -

◆ AnalogVoltage()

- -
-
- - - - - -
- - - - - - - - -
AnalogVoltage::AnalogVoltage (String config_path = "")
-
-inline
-
- -

Definition at line 12 of file analogvoltage.h.

- -
-
-
The documentation for this class was generated from the following file: -
-
- - - - diff --git a/docs/class_analog_voltage.js b/docs/class_analog_voltage.js deleted file mode 100644 index c93dd8020..000000000 --- a/docs/class_analog_voltage.js +++ /dev/null @@ -1,4 +0,0 @@ -var class_analog_voltage = -[ - [ "AnalogVoltage", "class_analog_voltage.html#a22cee4790f99a391a883370cac00894a", null ] -]; \ No newline at end of file diff --git a/docs/class_analog_voltage__inherit__graph.map b/docs/class_analog_voltage__inherit__graph.map deleted file mode 100644 index be78b7fa7..000000000 --- a/docs/class_analog_voltage__inherit__graph.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/docs/class_analog_voltage__inherit__graph.md5 b/docs/class_analog_voltage__inherit__graph.md5 deleted file mode 100644 index af9efa371..000000000 --- a/docs/class_analog_voltage__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -cc160cd7ff28f60bac46fad6c2850f5a \ No newline at end of file diff --git a/docs/class_analog_voltage__inherit__graph.png b/docs/class_analog_voltage__inherit__graph.png deleted file mode 100644 index 9997d871b..000000000 Binary files a/docs/class_analog_voltage__inherit__graph.png and /dev/null differ diff --git a/docs/class_angle_correction-members.html b/docs/class_angle_correction-members.html deleted file mode 100644 index 5fb049726..000000000 --- a/docs/class_angle_correction-members.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
AngleCorrection Member List
-
-
- -

This is the complete list of members for AngleCorrection, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AngleCorrection(float offset, float min_angle=0, String config_path="")AngleCorrection
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)Transform< float, float >inline
ValueConsumer< float >::connectFrom(ValueProducer< float > *pProducer, uint8_t inputChannel=0)ValueConsumer< float >inline
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema() overrideAngleCorrectionvirtual
get_configuration(JsonBuffer &buf) overrideAngleCorrectionvirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< float >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config) overrideAngleCorrectionvirtual
set_input(float input, uint8_t inputChannel=0) overrideAngleCorrectionvirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_angle_correction.html b/docs/class_angle_correction.html deleted file mode 100644 index 02b247428..000000000 --- a/docs/class_angle_correction.html +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - -SensESP: AngleCorrection Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
AngleCorrection Class Reference
-
-
- -

#include <angle_correction.h>

-
-Inheritance diagram for AngleCorrection:
-
-
Inheritance graph
- - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 AngleCorrection (float offset, float min_angle=0, String config_path="")
 
virtual void set_input (float input, uint8_t inputChannel=0) override
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< float >
void connectFrom (ValueProducer< float > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
-

Detailed Description

-
-

Definition at line 9 of file angle_correction.h.

-

Constructor & Destructor Documentation

- -

◆ AngleCorrection()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
AngleCorrection::AngleCorrection (float offset,
float min_angle = 0,
String config_path = "" 
)
-
- -

Definition at line 3 of file angle_correction.cpp.

- -
-
-

Member Function Documentation

- -

◆ get_config_schema()

- -
-
- - - - - -
- - - - - - - -
String AngleCorrection::get_config_schema ()
-
-overridevirtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented from Configurable.

- -

Definition at line 42 of file angle_correction.cpp.

- -
-
- -

◆ get_configuration()

- -
-
- - - - - -
- - - - - - - - -
JsonObject & AngleCorrection::get_configuration (JsonBuffer & buf)
-
-overridevirtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented from Configurable.

- -

Definition at line 25 of file angle_correction.cpp.

- -
-
- -

◆ set_configuration()

- -
-
- - - - - -
- - - - - - - - -
bool AngleCorrection::set_configuration (const JsonObject & config)
-
-overridevirtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented from Configurable.

- -

Definition at line 46 of file angle_correction.cpp.

- -
-
- -

◆ set_input()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void AngleCorrection::set_input (float newValue,
uint8_t inputChannel = 0 
)
-
-overridevirtual
-
-

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
- - - -
newValuethe value of the input
inputChannelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
-
-
- -

Reimplemented from ValueConsumer< float >.

- -

Definition at line 11 of file angle_correction.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_angle_correction__inherit__graph.map b/docs/class_angle_correction__inherit__graph.map deleted file mode 100644 index 55798bd35..000000000 --- a/docs/class_angle_correction__inherit__graph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/class_angle_correction__inherit__graph.md5 b/docs/class_angle_correction__inherit__graph.md5 deleted file mode 100644 index 5ea42e698..000000000 --- a/docs/class_angle_correction__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a7a3bc661716a212f32736120800f303 \ No newline at end of file diff --git a/docs/class_angle_correction__inherit__graph.png b/docs/class_angle_correction__inherit__graph.png deleted file mode 100644 index 42dbb8927..000000000 Binary files a/docs/class_angle_correction__inherit__graph.png and /dev/null differ diff --git a/docs/class_angle_correction_afd9a559ce1218e9b78137ff1a9c6d77d_cgraph.map b/docs/class_angle_correction_afd9a559ce1218e9b78137ff1a9c6d77d_cgraph.map deleted file mode 100644 index be8a609a9..000000000 --- a/docs/class_angle_correction_afd9a559ce1218e9b78137ff1a9c6d77d_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_angle_correction_afd9a559ce1218e9b78137ff1a9c6d77d_cgraph.md5 b/docs/class_angle_correction_afd9a559ce1218e9b78137ff1a9c6d77d_cgraph.md5 deleted file mode 100644 index a66b52fb8..000000000 --- a/docs/class_angle_correction_afd9a559ce1218e9b78137ff1a9c6d77d_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -a92b909076b611afdb0b70bed691622d \ No newline at end of file diff --git a/docs/class_angle_correction_afd9a559ce1218e9b78137ff1a9c6d77d_cgraph.png b/docs/class_angle_correction_afd9a559ce1218e9b78137ff1a9c6d77d_cgraph.png deleted file mode 100644 index b67587c32..000000000 Binary files a/docs/class_angle_correction_afd9a559ce1218e9b78137ff1a9c6d77d_cgraph.png and /dev/null differ diff --git a/docs/class_change_filter-members.html b/docs/class_change_filter-members.html deleted file mode 100644 index 29e2d4a1e..000000000 --- a/docs/class_change_filter-members.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ChangeFilter Member List
-
-
- -

This is the complete list of members for ChangeFilter, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
ChangeFilter(float minDelta=0.0, float maxDelta=9999.0, int maxSkips=99, String config_path="")ChangeFilter
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)Transform< float, float >inline
ValueConsumer< float >::connectFrom(ValueProducer< float > *pProducer, uint8_t inputChannel=0)ValueConsumer< float >inline
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema() overrideChangeFiltervirtual
get_configuration(JsonBuffer &buf) overrideChangeFiltervirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
maxDeltaChangeFilterprotected
maxSkipsChangeFilterprotected
minDeltaChangeFilterprotected
notify()Observable
outputValueProducer< float >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config) overrideChangeFiltervirtual
set_input(float newValue, uint8_t inputChannel=0) overrideChangeFiltervirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
skipsChangeFilterprotected
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_change_filter.html b/docs/class_change_filter.html deleted file mode 100644 index 2cec136f3..000000000 --- a/docs/class_change_filter.html +++ /dev/null @@ -1,508 +0,0 @@ - - - - - - - -SensESP: ChangeFilter Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
ChangeFilter Class Reference
-
-
- -

#include <change_filter.h>

-
-Inheritance diagram for ChangeFilter:
-
-
Inheritance graph
- - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 ChangeFilter (float minDelta=0.0, float maxDelta=9999.0, int maxSkips=99, String config_path="")
 
virtual void set_input (float newValue, uint8_t inputChannel=0) override
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< float >
void connectFrom (ValueProducer< float > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - - - - - -

-Protected Attributes

float minDelta
 
float maxDelta
 
int maxSkips
 
int skips
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
- - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
-

Detailed Description

-

ChangeFilter is a numeric passthrough transform that will only pass that value through if it is "sufficiently different" from the last value passed through. More specifically, the absolute value of the difference between the new value and the last passed value has to be greater than or equal to the specified minDelta, and less than or equal to the specified maxDelta. If the consecutive skip count ever reaches maxSkips, the value will be let through regardless.

- -

Definition at line 16 of file change_filter.h.

-

Constructor & Destructor Documentation

- -

◆ ChangeFilter()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ChangeFilter::ChangeFilter (float minDelta = 0.0,
float maxDelta = 9999.0,
int maxSkips = 99,
String config_path = "" 
)
-
- -

Definition at line 14 of file change_filter.cpp.

- -
-
-

Member Function Documentation

- -

◆ get_config_schema()

- -
-
- - - - - -
- - - - - - - -
String ChangeFilter::get_config_schema ()
-
-overridevirtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented from Configurable.

- -

Definition at line 57 of file change_filter.cpp.

- -
-
- -

◆ get_configuration()

- -
-
- - - - - -
- - - - - - - - -
JsonObject & ChangeFilter::get_configuration (JsonBuffer & buf)
-
-overridevirtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented from Configurable.

- -

Definition at line 39 of file change_filter.cpp.

- -
-
- -

◆ set_configuration()

- -
-
- - - - - -
- - - - - - - - -
bool ChangeFilter::set_configuration (const JsonObject & config)
-
-overridevirtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented from Configurable.

- -

Definition at line 62 of file change_filter.cpp.

- -
-
- -

◆ set_input()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void ChangeFilter::set_input (float newValue,
uint8_t inputChannel = 0 
)
-
-overridevirtual
-
-

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
- - - -
newValuethe value of the input
inputChannelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
-
-
- -

Reimplemented from ValueConsumer< float >.

- -

Definition at line 25 of file change_filter.cpp.

- -
-
-

Member Data Documentation

- -

◆ maxDelta

- -
-
- - - - - -
- - - - -
float ChangeFilter::maxDelta
-
-protected
-
- -

Definition at line 29 of file change_filter.h.

- -
-
- -

◆ maxSkips

- -
-
- - - - - -
- - - - -
int ChangeFilter::maxSkips
-
-protected
-
- -

Definition at line 30 of file change_filter.h.

- -
-
- -

◆ minDelta

- -
-
- - - - - -
- - - - -
float ChangeFilter::minDelta
-
-protected
-
- -

Definition at line 28 of file change_filter.h.

- -
-
- -

◆ skips

- -
-
- - - - - -
- - - - -
int ChangeFilter::skips
-
-protected
-
- -

Definition at line 31 of file change_filter.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_change_filter.js b/docs/class_change_filter.js deleted file mode 100644 index a04f0be52..000000000 --- a/docs/class_change_filter.js +++ /dev/null @@ -1,12 +0,0 @@ -var class_change_filter = -[ - [ "ChangeFilter", "class_change_filter.html#a6ca0d72e2d4f5afc36ec6c38513cb9c3", null ], - [ "get_config_schema", "class_change_filter.html#a769403176db0e4a619811bbba603d597", null ], - [ "get_configuration", "class_change_filter.html#a6cd0d60d57663d94c1972bf939b40d76", null ], - [ "set_configuration", "class_change_filter.html#a0bbe692080d7ee9a41fcd77a3f581ca9", null ], - [ "set_input", "class_change_filter.html#a592657a8a1c12a9c16dc334aa804865c", null ], - [ "maxDelta", "class_change_filter.html#aa92a8149f304a8627cc8c990dc929c35", null ], - [ "maxSkips", "class_change_filter.html#a48314db9ee86e057f0c771573b302331", null ], - [ "minDelta", "class_change_filter.html#accc1a8a8df0fd7051708b183b8570b5a", null ], - [ "skips", "class_change_filter.html#ae51076f79fdfc36e34b8383a0e13e700", null ] -]; \ No newline at end of file diff --git a/docs/class_change_filter__inherit__graph.map b/docs/class_change_filter__inherit__graph.map deleted file mode 100644 index 186858261..000000000 --- a/docs/class_change_filter__inherit__graph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/class_change_filter__inherit__graph.md5 b/docs/class_change_filter__inherit__graph.md5 deleted file mode 100644 index d84f68d4c..000000000 --- a/docs/class_change_filter__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6934053f5b5c41ddd296e829a8f3eea5 \ No newline at end of file diff --git a/docs/class_change_filter__inherit__graph.png b/docs/class_change_filter__inherit__graph.png deleted file mode 100644 index e29f50ee7..000000000 Binary files a/docs/class_change_filter__inherit__graph.png and /dev/null differ diff --git a/docs/class_configurable.html b/docs/class_configurable.html deleted file mode 100644 index 7857f1ebf..000000000 --- a/docs/class_configurable.html +++ /dev/null @@ -1,468 +0,0 @@ - - - - - - - -SensESP: Configurable Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
Configurable Class Reference
-
-
- -

#include <configurable.h>

-
-Inheritance diagram for Configurable:
-
-
Inheritance graph
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - -

-Public Member Functions

 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- - - -

-Public Attributes

const String config_path
 
- - - -

-Protected Member Functions

virtual void load_configuration ()
 
-

Detailed Description

-

A Configurable is any object that is capable of having configuration data that can be set remotely using a RESTful API, and can be persisted to the local file system.

- -

Definition at line 15 of file configurable.h.

-

Constructor & Destructor Documentation

- -

◆ Configurable()

- -
-
- - - - - - - - -
Configurable::Configurable (String config_path = "")
-
-

Create a configurable object who's configuration is saved using the specified config_path.

Parameters
- - -
config_pathThe partial path used for the URL when configuring this object remotely with a browser. The config_path also represents the path to the local file where the configuration data is persisted. Given this, be sure to chose a path that is both valid for URLs as well as file names. A configuration path should always start with a forward slash. Leaving the config_path blank indicates that this object does not need or want configuration data support.
-
-
- -

Definition at line 12 of file configurable.cpp.

- -
-
-

Member Function Documentation

- -

◆ get_config_schema()

- -
-
- - - - - -
- - - - - - - -
String Configurable::get_config_schema ()
-
-virtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented in SKOutput< T >, CurveInterpolator, WSClient, OneWireTemperature, MovingAverage, VoltageDividerR2, ChangeFilter, Networking, Median, Frequency, AngleCorrection, Linear, SKOutputTime, Integrator, and Difference.

- -

Definition at line 35 of file configurable.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ get_configuration()

- -
-
- - - - - -
- - - - - - - - -
JsonObject & Configurable::get_configuration (JsonBuffer & buf)
-
-virtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented in SKOutput< T >, CurveInterpolator, WSClient, OneWireTemperature, MovingAverage, VoltageDividerR2, ChangeFilter, Networking, Median, Frequency, AngleCorrection, Linear, SKOutputTime, Integrator, and Difference.

- -

Definition at line 23 of file configurable.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - - - - - - - - -
- -
-
- -

◆ load_configuration()

- -
-
- - - - - -
- - - - - - - -
void Configurable::load_configuration ()
-
-protectedvirtual
-
-

Loads a configuration previously saved with save_configuration() and passes the configuration to set_configuration().

- -

Definition at line 39 of file configurable.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
-
-Here is the caller graph for this function:
-
-
- - - - - - -
- -
-
- -

◆ save_configuration()

- -
-
- - - - - -
- - - - - - - -
void Configurable::save_configuration ()
-
-virtual
-
-

Persists the configuration returned by get_configuration() to the local file system.

- -

Definition at line 64 of file configurable.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
-
-Here is the caller graph for this function:
-
-
- - - - - - - - - - -
- -
-
- -

◆ set_configuration()

- -
-
- - - - - -
- - - - - - - - -
bool Configurable::set_configuration (const JsonObject & config)
-
-virtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented in SKOutput< T >, CurveInterpolator, WSClient, OneWireTemperature, MovingAverage, VoltageDividerR2, ChangeFilter, Networking, Median, Frequency, AngleCorrection, Linear, SKOutputTime, Integrator, and Difference.

- -

Definition at line 29 of file configurable.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - - - - - -
- -
-
-

Member Data Documentation

- -

◆ config_path

- -
-
- - - - -
const String Configurable::config_path
-
- -

Definition at line 29 of file configurable.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_configurable__inherit__graph.map b/docs/class_configurable__inherit__graph.map deleted file mode 100644 index a51cbf6e8..000000000 --- a/docs/class_configurable__inherit__graph.map +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/class_configurable__inherit__graph.md5 b/docs/class_configurable__inherit__graph.md5 deleted file mode 100644 index 695774529..000000000 --- a/docs/class_configurable__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -00bf452f1193870ecc892e63503f1f5f \ No newline at end of file diff --git a/docs/class_configurable__inherit__graph.png b/docs/class_configurable__inherit__graph.png deleted file mode 100644 index 7aa85ad5e..000000000 Binary files a/docs/class_configurable__inherit__graph.png and /dev/null differ diff --git a/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.map b/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.map deleted file mode 100644 index f69bf6102..000000000 --- a/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.md5 b/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.md5 deleted file mode 100644 index 22fb29c96..000000000 --- a/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -6e89f6402a3c6698a8a708d5cd6aae45 \ No newline at end of file diff --git a/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.png b/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.png deleted file mode 100644 index 8806d3875..000000000 Binary files a/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.png and /dev/null differ diff --git a/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.map b/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.map deleted file mode 100644 index eef5660b8..000000000 --- a/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.md5 b/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.md5 deleted file mode 100644 index c43d9a72c..000000000 --- a/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -f47702db98bfd2b52757f14e6ba93b7f \ No newline at end of file diff --git a/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.png b/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.png deleted file mode 100644 index 30ee68201..000000000 Binary files a/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.png and /dev/null differ diff --git a/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.map b/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.map deleted file mode 100644 index c6e182044..000000000 --- a/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.md5 b/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.md5 deleted file mode 100644 index 17fcb1c81..000000000 --- a/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -ace56510a109497a474be9a0f07afe21 \ No newline at end of file diff --git a/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.png b/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.png deleted file mode 100644 index e423d945c..000000000 Binary files a/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.png and /dev/null differ diff --git a/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.md5 b/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.md5 deleted file mode 100644 index 949299ba4..000000000 --- a/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -e9cfc00acc9fbabaebc8af9d6fa55b7c \ No newline at end of file diff --git a/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.png b/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.png deleted file mode 100644 index 9cdc34aa1..000000000 Binary files a/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.png and /dev/null differ diff --git a/docs/class_configurable_a787559a1a907f909d6088d2ec6825b44_icgraph.map b/docs/class_configurable_a787559a1a907f909d6088d2ec6825b44_icgraph.map deleted file mode 100644 index 7639b363f..000000000 --- a/docs/class_configurable_a787559a1a907f909d6088d2ec6825b44_icgraph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/class_configurable_a787559a1a907f909d6088d2ec6825b44_icgraph.md5 b/docs/class_configurable_a787559a1a907f909d6088d2ec6825b44_icgraph.md5 deleted file mode 100644 index d7970858f..000000000 --- a/docs/class_configurable_a787559a1a907f909d6088d2ec6825b44_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -1f7b434a615e749c810715a305fc170d \ No newline at end of file diff --git a/docs/class_configurable_a787559a1a907f909d6088d2ec6825b44_icgraph.png b/docs/class_configurable_a787559a1a907f909d6088d2ec6825b44_icgraph.png deleted file mode 100644 index cf5e4e308..000000000 Binary files a/docs/class_configurable_a787559a1a907f909d6088d2ec6825b44_icgraph.png and /dev/null differ diff --git a/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.md5 b/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.md5 deleted file mode 100644 index 1f5b3132a..000000000 --- a/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -69a27372e59b5e326bf25338ad20cca5 \ No newline at end of file diff --git a/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.png b/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.png deleted file mode 100644 index 3467a1041..000000000 Binary files a/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.png and /dev/null differ diff --git a/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.map b/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.map deleted file mode 100644 index 48af2a842..000000000 --- a/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.md5 b/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.md5 deleted file mode 100644 index 854a20294..000000000 --- a/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -c8b9a249dd834e24ccb34b6cd10d0b96 \ No newline at end of file diff --git a/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.png b/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.png deleted file mode 100644 index 19f5f301c..000000000 Binary files a/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.png and /dev/null differ diff --git a/docs/class_curve_interpolator-members.html b/docs/class_curve_interpolator-members.html deleted file mode 100644 index 72a643490..000000000 --- a/docs/class_curve_interpolator-members.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
CurveInterpolator Member List
-
-
- -

This is the complete list of members for CurveInterpolator, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
addSample(const Sample &newSample)CurveInterpolator
attach(std::function< void()> observer)Observable
classNameEnableprotected
clearSamples()CurveInterpolator
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)Transform< float, float >inline
ValueConsumer< float >::connectFrom(ValueProducer< float > *pProducer, uint8_t inputChannel=0)ValueConsumer< float >inline
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
CurveInterpolator(std::set< Sample > *defaults=NULL, String config_path="")CurveInterpolator
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema() overrideCurveInterpolatorvirtual
get_configuration(JsonBuffer &buf) overrideCurveInterpolatorvirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< float >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config) overrideCurveInterpolatorvirtual
set_input(float input, uint8_t inputChannel=0) override finalCurveInterpolatorvirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_curve_interpolator.html b/docs/class_curve_interpolator.html deleted file mode 100644 index 042f48475..000000000 --- a/docs/class_curve_interpolator.html +++ /dev/null @@ -1,455 +0,0 @@ - - - - - - - -SensESP: CurveInterpolator Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
CurveInterpolator Class Reference
-
-
- -

#include <curveinterpolator.h>

-
-Inheritance diagram for CurveInterpolator:
-
-
Inheritance graph
- - - - - - - - - - - -
[legend]
- - - - -

-Classes

class  Sample
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 CurveInterpolator (std::set< Sample > *defaults=NULL, String config_path="")
 
void set_input (float input, uint8_t inputChannel=0) override final
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
void clearSamples ()
 
void addSample (const Sample &newSample)
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< float >
void connectFrom (ValueProducer< float > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
-

Detailed Description

-

CurveInterpolator uses a collection of input/output samples that approximate a non-linear curve. The output is the linear interpolation between the two sample points that the input falls between. It is used primarily for non-linear analog gauges such as temperature gauges and oil pressure gauges, which get their input from analog sensors that are variable resistors.

- -

Definition at line 13 of file curveinterpolator.h.

-

Constructor & Destructor Documentation

- -

◆ CurveInterpolator()

- -
-
- - - - - - - - - - - - - - - - - - -
CurveInterpolator::CurveInterpolator (std::set< Sample > * defaults = NULL,
String config_path = "" 
)
-
- -

Definition at line 16 of file curveinterpolator.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - -
- -
-
-

Member Function Documentation

- -

◆ addSample()

- -
-
- - - - - - - - -
void CurveInterpolator::addSample (const SamplenewSample)
-
- -

Definition at line 131 of file curveinterpolator.cpp.

- -
-
- -

◆ clearSamples()

- -
-
- - - - - - - -
void CurveInterpolator::clearSamples ()
-
- -

Definition at line 127 of file curveinterpolator.cpp.

- -
-
- -

◆ get_config_schema()

- -
-
- - - - - -
- - - - - - - -
String CurveInterpolator::get_config_schema ()
-
-overridevirtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented from Configurable.

- -

Definition at line 99 of file curveinterpolator.cpp.

- -
-
- -

◆ get_configuration()

- -
-
- - - - - -
- - - - - - - - -
JsonObject & CurveInterpolator::get_configuration (JsonBuffer & buf)
-
-overridevirtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented from Configurable.

- -

Definition at line 72 of file curveinterpolator.cpp.

- -
-
- -

◆ set_configuration()

- -
-
- - - - - -
- - - - - - - - -
bool CurveInterpolator::set_configuration (const JsonObject & config)
-
-overridevirtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented from Configurable.

- -

Definition at line 103 of file curveinterpolator.cpp.

- -
-
- -

◆ set_input()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void CurveInterpolator::set_input (float newValue,
uint8_t inputChannel = 0 
)
-
-finaloverridevirtual
-
-

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
- - - -
newValuethe value of the input
inputChannelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
-
-
- -

Reimplemented from ValueConsumer< float >.

- -

Definition at line 32 of file curveinterpolator.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_curve_interpolator.js b/docs/class_curve_interpolator.js deleted file mode 100644 index fbcccb0e3..000000000 --- a/docs/class_curve_interpolator.js +++ /dev/null @@ -1,11 +0,0 @@ -var class_curve_interpolator = -[ - [ "Sample", "class_curve_interpolator_1_1_sample.html", "class_curve_interpolator_1_1_sample" ], - [ "CurveInterpolator", "class_curve_interpolator.html#a09bdf144307f1264c36d5afaea5c96a3", null ], - [ "addSample", "class_curve_interpolator.html#a314df8dc54dc73798197c9c9ce6859ac", null ], - [ "clearSamples", "class_curve_interpolator.html#afb1dbb8e85015e2909dff8495875f8f5", null ], - [ "get_config_schema", "class_curve_interpolator.html#a6f9c593782d05c95ba92810b8f70f287", null ], - [ "get_configuration", "class_curve_interpolator.html#a274cd3426b3e379db1538c71bebad9c8", null ], - [ "set_configuration", "class_curve_interpolator.html#acfda195c475a261d2e2a3af365fd6c19", null ], - [ "set_input", "class_curve_interpolator.html#a6e4fcb3bb046ecacbe1855d74cdc47bb", null ] -]; \ No newline at end of file diff --git a/docs/class_curve_interpolator__inherit__graph.map b/docs/class_curve_interpolator__inherit__graph.map deleted file mode 100644 index d75829bf4..000000000 --- a/docs/class_curve_interpolator__inherit__graph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/class_curve_interpolator__inherit__graph.md5 b/docs/class_curve_interpolator__inherit__graph.md5 deleted file mode 100644 index 483e8a36c..000000000 --- a/docs/class_curve_interpolator__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e928cc9ce0d3eebd31ffc105ec4ed80c \ No newline at end of file diff --git a/docs/class_curve_interpolator__inherit__graph.png b/docs/class_curve_interpolator__inherit__graph.png deleted file mode 100644 index d8ee10783..000000000 Binary files a/docs/class_curve_interpolator__inherit__graph.png and /dev/null differ diff --git a/docs/class_curve_interpolator_a09bdf144307f1264c36d5afaea5c96a3_cgraph.map b/docs/class_curve_interpolator_a09bdf144307f1264c36d5afaea5c96a3_cgraph.map deleted file mode 100644 index 28d54dd67..000000000 --- a/docs/class_curve_interpolator_a09bdf144307f1264c36d5afaea5c96a3_cgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_curve_interpolator_a09bdf144307f1264c36d5afaea5c96a3_cgraph.md5 b/docs/class_curve_interpolator_a09bdf144307f1264c36d5afaea5c96a3_cgraph.md5 deleted file mode 100644 index a3e9d0853..000000000 --- a/docs/class_curve_interpolator_a09bdf144307f1264c36d5afaea5c96a3_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -cc7971a53075807cb16ae0907d96f55e \ No newline at end of file diff --git a/docs/class_curve_interpolator_a09bdf144307f1264c36d5afaea5c96a3_cgraph.png b/docs/class_curve_interpolator_a09bdf144307f1264c36d5afaea5c96a3_cgraph.png deleted file mode 100644 index 27c8f4dfc..000000000 Binary files a/docs/class_curve_interpolator_a09bdf144307f1264c36d5afaea5c96a3_cgraph.png and /dev/null differ diff --git a/docs/class_curve_interpolator_a6e4fcb3bb046ecacbe1855d74cdc47bb_cgraph.map b/docs/class_curve_interpolator_a6e4fcb3bb046ecacbe1855d74cdc47bb_cgraph.map deleted file mode 100644 index fe18402c6..000000000 --- a/docs/class_curve_interpolator_a6e4fcb3bb046ecacbe1855d74cdc47bb_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_curve_interpolator_a6e4fcb3bb046ecacbe1855d74cdc47bb_cgraph.md5 b/docs/class_curve_interpolator_a6e4fcb3bb046ecacbe1855d74cdc47bb_cgraph.md5 deleted file mode 100644 index 699e7c0eb..000000000 --- a/docs/class_curve_interpolator_a6e4fcb3bb046ecacbe1855d74cdc47bb_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -aee96b92697c0be7d46bcf05d44cf617 \ No newline at end of file diff --git a/docs/class_curve_interpolator_a6e4fcb3bb046ecacbe1855d74cdc47bb_cgraph.png b/docs/class_curve_interpolator_a6e4fcb3bb046ecacbe1855d74cdc47bb_cgraph.png deleted file mode 100644 index 4a8621770..000000000 Binary files a/docs/class_curve_interpolator_a6e4fcb3bb046ecacbe1855d74cdc47bb_cgraph.png and /dev/null differ diff --git a/docs/class_dallas_temperature_sensors-members.html b/docs/class_dallas_temperature_sensors-members.html deleted file mode 100644 index 52f02dc95..000000000 --- a/docs/class_dallas_temperature_sensors-members.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
DallasTemperatureSensors Member List
-
-
- -

This is the complete list of members for DallasTemperatureSensors, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
DallasTemperatureSensors(int pin, String config_path="")DallasTemperatureSensors
Enable(uint8_t priority=0)Enable
enable() override finalDallasTemperatureSensorsinlinevirtual
enableAll()Enablestatic
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_next_address(OWDevAddr *addr)DallasTemperatureSensors
get_sensors()Sensorinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
register_address(const OWDevAddr &addr)DallasTemperatureSensors
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
sensorsDallasTemperatureSensors
set_configuration(const JsonObject &config)Configurablevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
-
- - - - diff --git a/docs/class_dallas_temperature_sensors__inherit__graph.md5 b/docs/class_dallas_temperature_sensors__inherit__graph.md5 deleted file mode 100644 index bcab3754a..000000000 --- a/docs/class_dallas_temperature_sensors__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -68b269d59014b1f5bf001c6f81ce7d98 \ No newline at end of file diff --git a/docs/class_dallas_temperature_sensors__inherit__graph.png b/docs/class_dallas_temperature_sensors__inherit__graph.png deleted file mode 100644 index 658ab2cf8..000000000 Binary files a/docs/class_dallas_temperature_sensors__inherit__graph.png and /dev/null differ diff --git a/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.md5 b/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.md5 deleted file mode 100644 index cde234ddc..000000000 --- a/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -6ce0c62f4c7a47eb7a1763834afb1fb7 \ No newline at end of file diff --git a/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.png b/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.png deleted file mode 100644 index c1fa0551a..000000000 Binary files a/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.png and /dev/null differ diff --git a/docs/class_debounce-members.html b/docs/class_debounce-members.html deleted file mode 100644 index 8492757c6..000000000 --- a/docs/class_debounce-members.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Debounce Member List
-
-
- -

This is the complete list of members for Debounce, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< T > *pProducer0, ValueProducer< T > *pProducer1=NULL, ValueProducer< T > *pProducer2=NULL, ValueProducer< T > *pProducer3=NULL, ValueProducer< T > *pProducer4=NULL)Transform< T, T >inline
ValueConsumer::connectFrom(ValueProducer< T > *pProducer, uint8_t inputChannel=0)ValueConsumer< T >inline
connectTo(ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)ValueProducer< T >inline
connectTo(Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< T >inline
Debounce(int msMinDelay=200, String config_path="")Debounce
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< T >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
lastTimeDebounceprotected
load_configuration()Configurableprotectedvirtual
msMinDelayDebounceprotected
notify()Observable
outputValueProducer< T >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config)Configurablevirtual
set_input(bool newValue, uint8_t inputChannel=0) overrideDebouncevirtual
SymmetricTransform::set_input(T newValue, uint8_t inputChannel=0)ValueConsumer< T >inlinevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
SymmetricTransform(String config_path="")SymmetricTransform< T >inline
Transform(String config_path="")Transform< T, T >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< T >inline
-
- - - - diff --git a/docs/class_debounce.html b/docs/class_debounce.html deleted file mode 100644 index 6f816c94b..000000000 --- a/docs/class_debounce.html +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - -SensESP: Debounce Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
Debounce Class Reference
-
-
- -

#include <debounce.h>

-
-Inheritance diagram for Debounce:
-
-
Inheritance graph
- - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Debounce (int msMinDelay=200, String config_path="")
 
virtual void set_input (bool newValue, uint8_t inputChannel=0) override
 
- Public Member Functions inherited from SymmetricTransform< T >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< T, T >
 Transform (String config_path="")
 
Transform< T, T > * connectFrom (ValueProducer< T > *pProducer0, ValueProducer< T > *pProducer1=NULL, ValueProducer< T > *pProducer2=NULL, ValueProducer< T > *pProducer3=NULL, ValueProducer< T > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< T >
virtual void set_input (T newValue, uint8_t inputChannel=0)
 
void connectFrom (ValueProducer< T > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< T >
 ValueProducer ()
 
virtual const T & get ()
 
void connectTo (ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)
 
template<typename T2 >
Transform< T, T2 > * connectTo (Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - -

-Protected Attributes

unsigned long lastTime
 
int msMinDelay
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< T >
output
 
- - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
-

Detailed Description

-

Debounce is a boolean passthrough transform that will only accept value changes that are sufficiently spaced apart to be passed on to the next consumer.

- -

Definition at line 12 of file debounce.h.

-

Constructor & Destructor Documentation

- -

◆ Debounce()

- -
-
- - - - - - - - - - - - - - - - - - -
Debounce::Debounce (int msMinDelay = 200,
String config_path = "" 
)
-
- -

Definition at line 3 of file debounce.cpp.

- -
-
-

Member Function Documentation

- -

◆ set_input()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void Debounce::set_input (bool newValue,
uint8_t inputChannel = 0 
)
-
-overridevirtual
-
- -

Definition at line 10 of file debounce.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-

Member Data Documentation

- -

◆ lastTime

- -
-
- - - - - -
- - - - -
unsigned long Debounce::lastTime
-
-protected
-
- -

Definition at line 20 of file debounce.h.

- -
-
- -

◆ msMinDelay

- -
-
- - - - - -
- - - - -
int Debounce::msMinDelay
-
-protected
-
- -

Definition at line 21 of file debounce.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_debounce.js b/docs/class_debounce.js deleted file mode 100644 index 92d387c90..000000000 --- a/docs/class_debounce.js +++ /dev/null @@ -1,7 +0,0 @@ -var class_debounce = -[ - [ "Debounce", "class_debounce.html#a1cf5653ecaffe84d03202cd9f002bba4", null ], - [ "set_input", "class_debounce.html#a41ba3a24ea3490fc0717fa4d5f7fae0b", null ], - [ "lastTime", "class_debounce.html#a52075b35c5a7036ea7a06813a71117ea", null ], - [ "msMinDelay", "class_debounce.html#a3e1dca3d133fdef71d95b58a922c478a", null ] -]; \ No newline at end of file diff --git a/docs/class_debounce__inherit__graph.map b/docs/class_debounce__inherit__graph.map deleted file mode 100644 index d6ce750c4..000000000 --- a/docs/class_debounce__inherit__graph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/class_debounce__inherit__graph.md5 b/docs/class_debounce__inherit__graph.md5 deleted file mode 100644 index abf831ec9..000000000 --- a/docs/class_debounce__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -41ec24e3db9a0e79653a2f6bee8669be \ No newline at end of file diff --git a/docs/class_debounce__inherit__graph.png b/docs/class_debounce__inherit__graph.png deleted file mode 100644 index 91da1dd33..000000000 Binary files a/docs/class_debounce__inherit__graph.png and /dev/null differ diff --git a/docs/class_debounce_a41ba3a24ea3490fc0717fa4d5f7fae0b_cgraph.map b/docs/class_debounce_a41ba3a24ea3490fc0717fa4d5f7fae0b_cgraph.map deleted file mode 100644 index 577633564..000000000 --- a/docs/class_debounce_a41ba3a24ea3490fc0717fa4d5f7fae0b_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_debounce_a41ba3a24ea3490fc0717fa4d5f7fae0b_cgraph.md5 b/docs/class_debounce_a41ba3a24ea3490fc0717fa4d5f7fae0b_cgraph.md5 deleted file mode 100644 index a6f629d45..000000000 --- a/docs/class_debounce_a41ba3a24ea3490fc0717fa4d5f7fae0b_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -7a07277d73287980d4c1f7bbefd2867a \ No newline at end of file diff --git a/docs/class_debounce_a41ba3a24ea3490fc0717fa4d5f7fae0b_cgraph.png b/docs/class_debounce_a41ba3a24ea3490fc0717fa4d5f7fae0b_cgraph.png deleted file mode 100644 index e6bdac284..000000000 Binary files a/docs/class_debounce_a41ba3a24ea3490fc0717fa4d5f7fae0b_cgraph.png and /dev/null differ diff --git a/docs/class_difference-members.html b/docs/class_difference-members.html deleted file mode 100644 index 0d2398b95..000000000 --- a/docs/class_difference-members.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Difference Member List
-
-
- -

This is the complete list of members for Difference, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)Transform< float, float >inline
ValueConsumer< float >::connectFrom(ValueProducer< float > *pProducer, uint8_t inputChannel=0)ValueConsumer< float >inline
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
Difference(float k1, float k2, String config_path="")Difference
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema() overrideDifferencevirtual
get_configuration(JsonBuffer &buf) overrideDifferencevirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< float >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config) overrideDifferencevirtual
set_input(float input, uint8_t inputChannel) overrideDifferencevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_difference.html b/docs/class_difference.html deleted file mode 100644 index 3116a40ca..000000000 --- a/docs/class_difference.html +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - -SensESP: Difference Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
Difference Class Reference
-
-
- -

#include <difference.h>

-
-Inheritance diagram for Difference:
-
-
Inheritance graph
- - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Difference (float k1, float k2, String config_path="")
 
virtual void set_input (float input, uint8_t inputChannel) override
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< float >
void connectFrom (ValueProducer< float > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
-

Detailed Description

-
-

Definition at line 7 of file difference.h.

-

Constructor & Destructor Documentation

- -

◆ Difference()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
Difference::Difference (float k1,
float k2,
String config_path = "" 
)
-
- -

Definition at line 5 of file difference.cpp.

- -
-
-

Member Function Documentation

- -

◆ get_config_schema()

- -
-
- - - - - -
- - - - - - - -
String Difference::get_config_schema ()
-
-overridevirtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented from Configurable.

- -

Definition at line 41 of file difference.cpp.

- -
-
- -

◆ get_configuration()

- -
-
- - - - - -
- - - - - - - - -
JsonObject & Difference::get_configuration (JsonBuffer & buf)
-
-overridevirtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented from Configurable.

- -

Definition at line 24 of file difference.cpp.

- -
-
- -

◆ set_configuration()

- -
-
- - - - - -
- - - - - - - - -
bool Difference::set_configuration (const JsonObject & config)
-
-overridevirtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented from Configurable.

- -

Definition at line 45 of file difference.cpp.

- -
-
- -

◆ set_input()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void Difference::set_input (float newValue,
uint8_t inputChannel 
)
-
-overridevirtual
-
-

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
- - - -
newValuethe value of the input
inputChannelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
-
-
- -

Reimplemented from ValueConsumer< float >.

- -

Definition at line 13 of file difference.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_difference__inherit__graph.map b/docs/class_difference__inherit__graph.map deleted file mode 100644 index 4790ec42c..000000000 --- a/docs/class_difference__inherit__graph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/class_difference__inherit__graph.md5 b/docs/class_difference__inherit__graph.md5 deleted file mode 100644 index b6578a4e5..000000000 --- a/docs/class_difference__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b5c298b563fdd91384b716735ee8f100 \ No newline at end of file diff --git a/docs/class_difference__inherit__graph.png b/docs/class_difference__inherit__graph.png deleted file mode 100644 index 904f7b3d7..000000000 Binary files a/docs/class_difference__inherit__graph.png and /dev/null differ diff --git a/docs/class_difference_a432ef87751c6bee8e5dadc610dfcb4ff_cgraph.map b/docs/class_difference_a432ef87751c6bee8e5dadc610dfcb4ff_cgraph.map deleted file mode 100644 index c86937410..000000000 --- a/docs/class_difference_a432ef87751c6bee8e5dadc610dfcb4ff_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_difference_a432ef87751c6bee8e5dadc610dfcb4ff_cgraph.md5 b/docs/class_difference_a432ef87751c6bee8e5dadc610dfcb4ff_cgraph.md5 deleted file mode 100644 index bc971385f..000000000 --- a/docs/class_difference_a432ef87751c6bee8e5dadc610dfcb4ff_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -ff879146f9447f03d2aea4c4c81d3381 \ No newline at end of file diff --git a/docs/class_difference_a432ef87751c6bee8e5dadc610dfcb4ff_cgraph.png b/docs/class_difference_a432ef87751c6bee8e5dadc610dfcb4ff_cgraph.png deleted file mode 100644 index 9fa5eb9a0..000000000 Binary files a/docs/class_difference_a432ef87751c6bee8e5dadc610dfcb4ff_cgraph.png and /dev/null differ diff --git a/docs/class_digital_input-members.html b/docs/class_digital_input-members.html deleted file mode 100644 index 79c5504a5..000000000 --- a/docs/class_digital_input-members.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
DigitalInput Member List
-
-
- -

This is the complete list of members for DigitalInput, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
DigitalInput(uint8_t pin, int pin_mode, int interrupt_type, String config_path="")DigitalInput
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_sensors()Sensorinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
interrupt_typeDigitalInputprotected
load_configuration()Configurableprotectedvirtual
notify()Observable
pinDigitalInputprotected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
-
- - - - diff --git a/docs/class_digital_input__inherit__graph.md5 b/docs/class_digital_input__inherit__graph.md5 deleted file mode 100644 index 88153d0e6..000000000 --- a/docs/class_digital_input__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -0d148c014ceae9463817724cfa50e1da \ No newline at end of file diff --git a/docs/class_digital_input__inherit__graph.png b/docs/class_digital_input__inherit__graph.png deleted file mode 100644 index e0e40b4a2..000000000 Binary files a/docs/class_digital_input__inherit__graph.png and /dev/null differ diff --git a/docs/class_digital_input_counter-members.html b/docs/class_digital_input_counter-members.html deleted file mode 100644 index 4c0bfc0dd..000000000 --- a/docs/class_digital_input_counter-members.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
DigitalInputCounter Member List
-
-
- -

This is the complete list of members for DigitalInputCounter, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectTo(ValueConsumer< int > *pConsumer, uint8_t inputChannel=0)ValueProducer< int >inline
connectTo(Transform< int, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< int >inline
DigitalInput(uint8_t pin, int pin_mode, int interrupt_type, String config_path="")DigitalInput
DigitalInputCounter(uint8_t pin, int pin_mode, int interrupt_type, uint read_delay, String config_path="")DigitalInputCounter
enable() override finalDigitalInputCountervirtual
Enable(uint8_t priority=0)Enable
enableAll()Enablestatic
get()ValueProducer< int >inlinevirtual
get_sensors()Sensorinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
interrupt_typeDigitalInputprotected
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< int >protected
pinDigitalInputprotected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< int >inline
-
- - - - diff --git a/docs/class_digital_input_counter__inherit__graph.map b/docs/class_digital_input_counter__inherit__graph.map deleted file mode 100644 index bdcf75ff1..000000000 --- a/docs/class_digital_input_counter__inherit__graph.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/class_digital_input_counter__inherit__graph.md5 b/docs/class_digital_input_counter__inherit__graph.md5 deleted file mode 100644 index 10962326a..000000000 --- a/docs/class_digital_input_counter__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3f12f1a23fb0d9f8f51fae0404fbf30b \ No newline at end of file diff --git a/docs/class_digital_input_counter__inherit__graph.png b/docs/class_digital_input_counter__inherit__graph.png deleted file mode 100644 index 6211a36ec..000000000 Binary files a/docs/class_digital_input_counter__inherit__graph.png and /dev/null differ diff --git a/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.md5 b/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.md5 deleted file mode 100644 index ba37196e0..000000000 --- a/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -c5495049e139264f96efa681552a5881 \ No newline at end of file diff --git a/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.png b/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.png deleted file mode 100644 index 92ebba694..000000000 Binary files a/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.png and /dev/null differ diff --git a/docs/class_digital_input_value-members.html b/docs/class_digital_input_value-members.html deleted file mode 100644 index 439c8d834..000000000 --- a/docs/class_digital_input_value-members.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
DigitalInputValue Member List
-
-
- -

This is the complete list of members for DigitalInputValue, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectTo(ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)ValueProducer< T >inline
connectTo(Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< T >inline
DigitalInput(uint8_t pin, int pin_mode, int interrupt_type, String config_path="")DigitalInput
DigitalInputValue(uint8_t pin, int pin_mode, int interrupt_type, String config_path="")DigitalInputValue
Enable(uint8_t priority=0)Enable
enable() override finalDigitalInputValuevirtual
enableAll()Enablestatic
get()ValueProducer< T >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_sensors()Sensorinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
interrupt_typeDigitalInputprotected
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< T >protected
pinDigitalInputprotected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< T >inline
-
- - - - diff --git a/docs/class_digital_input_value.html b/docs/class_digital_input_value.html deleted file mode 100644 index 62d8627fd..000000000 --- a/docs/class_digital_input_value.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - - - -SensESP: DigitalInputValue Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
DigitalInputValue Class Reference
-
-
- -

#include <digital_input.h>

-
-Inheritance diagram for DigitalInputValue:
-
-
Inheritance graph
- - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 DigitalInputValue (uint8_t pin, int pin_mode, int interrupt_type, String config_path="")
 
virtual void enable () override final
 
- Public Member Functions inherited from DigitalInput
 DigitalInput (uint8_t pin, int pin_mode, int interrupt_type, String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< T >
 ValueProducer ()
 
virtual const T & get ()
 
void connectTo (ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)
 
template<typename T2 >
Transform< T, T2 > * connectTo (Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- - - - - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from DigitalInput
uint8_t pin
 
int interrupt_type
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< T >
output
 
-

Detailed Description

-
-

Definition at line 19 of file digital_input.h.

-

Constructor & Destructor Documentation

- -

◆ DigitalInputValue()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DigitalInputValue::DigitalInputValue (uint8_t pin,
int pin_mode,
int interrupt_type,
String config_path = "" 
)
-
- -

Definition at line 15 of file digital_input.cpp.

- -
-
-

Member Function Documentation

- -

◆ enable()

- -
-
- - - - - -
- - - - - - - -
void DigitalInputValue::enable ()
-
-finaloverridevirtual
-
-

Called during the initialization process. Override this method to add runtime initialization code to your class

- -

Reimplemented from Enable.

- -

Definition at line 23 of file digital_input.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_digital_input_value.js b/docs/class_digital_input_value.js deleted file mode 100644 index 0c20a60a4..000000000 --- a/docs/class_digital_input_value.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_digital_input_value = -[ - [ "DigitalInputValue", "class_digital_input_value.html#a04759be73328ea38d11eb7ec63517761", null ], - [ "enable", "class_digital_input_value.html#a504c6c9ad6578156df7eb524f9635912", null ] -]; \ No newline at end of file diff --git a/docs/class_digital_input_value__inherit__graph.map b/docs/class_digital_input_value__inherit__graph.map deleted file mode 100644 index 43adb3f0b..000000000 --- a/docs/class_digital_input_value__inherit__graph.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/class_digital_input_value__inherit__graph.md5 b/docs/class_digital_input_value__inherit__graph.md5 deleted file mode 100644 index 5e006aa0c..000000000 --- a/docs/class_digital_input_value__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -48e64c592e4795379968ba90a4c3bb8c \ No newline at end of file diff --git a/docs/class_digital_input_value__inherit__graph.png b/docs/class_digital_input_value__inherit__graph.png deleted file mode 100644 index 558b31566..000000000 Binary files a/docs/class_digital_input_value__inherit__graph.png and /dev/null differ diff --git a/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.md5 b/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.md5 deleted file mode 100644 index 8e059fde7..000000000 --- a/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -0b8ac3fa1c0bb991585835a8d11acbda \ No newline at end of file diff --git a/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.png b/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.png deleted file mode 100644 index f31d42557..000000000 Binary files a/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.png and /dev/null differ diff --git a/docs/class_enable-members.html b/docs/class_enable-members.html deleted file mode 100644 index 97fe57cdf..000000000 --- a/docs/class_enable-members.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Enable Member List
-
-
- -

This is the complete list of members for Enable, including all inherited members.

- - - - - - - - - - -
classNameEnableprotected
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
operator<(const Enable &lhs, const Enable &rhs)Enablefriend
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
-
- - - - diff --git a/docs/class_enable.html b/docs/class_enable.html deleted file mode 100644 index 0a9652b0c..000000000 --- a/docs/class_enable.html +++ /dev/null @@ -1,472 +0,0 @@ - - - - - - - -SensESP: Enable Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
Enable Class Reference
-
-
- -

#include <enable.h>

-
-Inheritance diagram for Enable:
-
-
Inheritance graph
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - -

-Public Member Functions

 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- - - -

-Static Public Member Functions

static void enableAll ()
 
- - - -

-Protected Attributes

const char * className = "Enable"
 
- - - -

-Friends

bool operator< (const Enable &lhs, const Enable &rhs)
 
-

Detailed Description

-

Classes that implement "Enable" will have their enable() method called automatically at startup when the SensESP app itself is enabled. The optional priority allows for certain classes to be initialized first. The default priority is zero. A higher priority (i.e. greater than zero) will be enabled before a lower one (i.e. less than zero).

- -

Definition at line 15 of file enable.h.

-

Constructor & Destructor Documentation

- -

◆ Enable()

- -
-
- - - - - - - - -
Enable::Enable (uint8_t priority = 0)
-
- -

Definition at line 7 of file enable.cpp.

- -
-
-

Member Function Documentation

- -

◆ enable()

- -
-
- - - - - -
- - - - - - - -
virtual void Enable::enable ()
-
-inlinevirtual
-
-

Called during the initialization process. Override this method to add runtime initialization code to your class

- -

Reimplemented in IPAddrDev, DigitalInputCounter, OneWireTemperature, Uptime, DigitalInputValue, FreeMem, DallasTemperatureSensors, Frequency, GPSInput, AnalogInput, Integrator, and SystemHz.

- -

Definition at line 24 of file enable.h.

- -
-
- -

◆ enableAll()

- -
-
- - - - - -
- - - - - - - -
void Enable::enableAll ()
-
-static
-
-

Called by the SensESP framework to initialize all of the objects marked with this class. They will be initialized in priorty order. If you want to see see the name of each sensor and transport in the serial monitor as each one is enabled, add the following to your project's platformio.ini file:

-

build_unflags = -fno-rtti

- -

Definition at line 12 of file enable.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ getClassName()

- -
-
- - - - - -
- - - - - - - -
virtual const char* Enable::getClassName ()
-
-inlinevirtual
-
- -

Definition at line 30 of file enable.h.

- -
-
- -

◆ getEnablePriority()

- -
-
- - - - - -
- - - - - - - -
const uint8_t Enable::getEnablePriority ()
-
-inline
-
- -

Definition at line 33 of file enable.h.

- -
-
- -

◆ setClassName()

- -
-
- - - - - -
- - - - - - - - -
void Enable::setClassName (const char * newClassName)
-
-inline
-
- -

Definition at line 27 of file enable.h.

- -
-
- -

◆ setPriority()

- -
-
- - - - - -
- - - - - - - - -
void Enable::setPriority (uint8_t priority)
-
-inline
-
- -

Definition at line 36 of file enable.h.

-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
-

Friends And Related Function Documentation

- -

◆ operator<

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool operator< (const Enablelhs,
const Enablerhs 
)
-
-friend
-
- -

Definition at line 51 of file enable.h.

- -
-
-

Member Data Documentation

- -

◆ className

- -
-
- - - - - -
- - - - -
const char* Enable::className = "Enable"
-
-protected
-
- -

Definition at line 55 of file enable.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_enable.js b/docs/class_enable.js deleted file mode 100644 index ef1d3c650..000000000 --- a/docs/class_enable.js +++ /dev/null @@ -1,11 +0,0 @@ -var class_enable = -[ - [ "Enable", "class_enable.html#a62d0a37863086502e168bfa8ab94ebc0", null ], - [ "enable", "class_enable.html#a62ea021bf8d986150be346977a8eede3", null ], - [ "getClassName", "class_enable.html#af924d33e6ccb0a065af78f264997299f", null ], - [ "getEnablePriority", "class_enable.html#a38bebd90f45effcd9fa2781cc43f0d34", null ], - [ "setClassName", "class_enable.html#a5c8fbdba606732e028a6bf194a3e2529", null ], - [ "setPriority", "class_enable.html#ab4ca14d496a85788896df6c78143994c", null ], - [ "operator<", "class_enable.html#a5e6385aea4a61b890368ce0b411f690c", null ], - [ "className", "class_enable.html#a88a9d200883d86ac64d5b1cd03c07d29", null ] -]; \ No newline at end of file diff --git a/docs/class_enable__inherit__graph.map b/docs/class_enable__inherit__graph.map deleted file mode 100644 index 74d8c9457..000000000 --- a/docs/class_enable__inherit__graph.map +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/class_enable__inherit__graph.md5 b/docs/class_enable__inherit__graph.md5 deleted file mode 100644 index 3681c41af..000000000 --- a/docs/class_enable__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -f26f8cd42fe977d3ba51add860646cd4 \ No newline at end of file diff --git a/docs/class_enable__inherit__graph.png b/docs/class_enable__inherit__graph.png deleted file mode 100644 index 573ba0d3d..000000000 Binary files a/docs/class_enable__inherit__graph.png and /dev/null differ diff --git a/docs/class_enable_ab4ca14d496a85788896df6c78143994c_icgraph.map b/docs/class_enable_ab4ca14d496a85788896df6c78143994c_icgraph.map deleted file mode 100644 index 86b289577..000000000 --- a/docs/class_enable_ab4ca14d496a85788896df6c78143994c_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_enable_ab4ca14d496a85788896df6c78143994c_icgraph.md5 b/docs/class_enable_ab4ca14d496a85788896df6c78143994c_icgraph.md5 deleted file mode 100644 index 45c75cfca..000000000 --- a/docs/class_enable_ab4ca14d496a85788896df6c78143994c_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -196a697e875efda0d570e246d2d17bbc \ No newline at end of file diff --git a/docs/class_enable_ab4ca14d496a85788896df6c78143994c_icgraph.png b/docs/class_enable_ab4ca14d496a85788896df6c78143994c_icgraph.png deleted file mode 100644 index 405df9c1f..000000000 Binary files a/docs/class_enable_ab4ca14d496a85788896df6c78143994c_icgraph.png and /dev/null differ diff --git a/docs/class_enable_ab55d4552f3b66d7a198377b2d3fc7fa2_icgraph.map b/docs/class_enable_ab55d4552f3b66d7a198377b2d3fc7fa2_icgraph.map deleted file mode 100644 index 471c3f1f5..000000000 --- a/docs/class_enable_ab55d4552f3b66d7a198377b2d3fc7fa2_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_enable_ab55d4552f3b66d7a198377b2d3fc7fa2_icgraph.md5 b/docs/class_enable_ab55d4552f3b66d7a198377b2d3fc7fa2_icgraph.md5 deleted file mode 100644 index 674de1ab0..000000000 --- a/docs/class_enable_ab55d4552f3b66d7a198377b2d3fc7fa2_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -10b9a5958b66104693f81fa43ad48222 \ No newline at end of file diff --git a/docs/class_enable_ab55d4552f3b66d7a198377b2d3fc7fa2_icgraph.png b/docs/class_enable_ab55d4552f3b66d7a198377b2d3fc7fa2_icgraph.png deleted file mode 100644 index 1cbad6c54..000000000 Binary files a/docs/class_enable_ab55d4552f3b66d7a198377b2d3fc7fa2_icgraph.png and /dev/null differ diff --git a/docs/class_free_mem-members.html b/docs/class_free_mem-members.html deleted file mode 100644 index 076f8e519..000000000 --- a/docs/class_free_mem-members.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
FreeMem Member List
-
-
- -

This is the complete list of members for FreeMem, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectTo(ValueConsumer< uint32_t > *pConsumer, uint8_t inputChannel=0)ValueProducer< uint32_t >inline
connectTo(Transform< uint32_t, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< uint32_t >inline
enable() override finalFreeMemvirtual
Enable(uint8_t priority=0)Enable
enableAll()Enablestatic
FreeMem()FreeMeminline
get()ValueProducer< uint32_t >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_sensors()Sensorinlinestatic
get_value_name()FreeMeminline
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< uint32_t >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< uint32_t >inline
-
- - - - diff --git a/docs/class_free_mem__inherit__graph.map b/docs/class_free_mem__inherit__graph.map deleted file mode 100644 index 5ff5cb0ac..000000000 --- a/docs/class_free_mem__inherit__graph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/class_free_mem__inherit__graph.md5 b/docs/class_free_mem__inherit__graph.md5 deleted file mode 100644 index 2a13da327..000000000 --- a/docs/class_free_mem__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c18d46b05ccb9eb8fa638b8eed1e7b6d \ No newline at end of file diff --git a/docs/class_free_mem__inherit__graph.png b/docs/class_free_mem__inherit__graph.png deleted file mode 100644 index dedfaf52a..000000000 Binary files a/docs/class_free_mem__inherit__graph.png and /dev/null differ diff --git a/docs/class_frequency-members.html b/docs/class_frequency-members.html deleted file mode 100644 index 66fd4b13c..000000000 --- a/docs/class_frequency-members.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Frequency Member List
-
-
- -

This is the complete list of members for Frequency, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)Transform< int, float >inline
ValueConsumer< int >::connectFrom(ValueProducer< int > *pProducer, uint8_t inputChannel=0)ValueConsumer< int >inline
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
enable() overrideFrequencyvirtual
Enable(uint8_t priority=0)Enable
enableAll()Enablestatic
Frequency(float k=1, String config_path="")Frequency
get()ValueProducer< float >inlinevirtual
get_config_schema() overrideFrequencyvirtual
get_configuration(JsonBuffer &buf) overrideFrequencyvirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< float >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config) overrideFrequencyvirtual
set_input(int input, uint8_t inputChannel=0) overrideFrequencyvirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
Transform(String config_path="")Transform< int, float >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_frequency.html b/docs/class_frequency.html deleted file mode 100644 index cb420cd47..000000000 --- a/docs/class_frequency.html +++ /dev/null @@ -1,421 +0,0 @@ - - - - - - - -SensESP: Frequency Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
Frequency Class Reference
-
-
- -

#include <frequency.h>

-
-Inheritance diagram for Frequency:
-
-
Inheritance graph
- - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Frequency (float k=1, String config_path="")
 
virtual void set_input (int input, uint8_t inputChannel=0) override
 
virtual void enable () override
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from Transform< int, float >
 Transform (String config_path="")
 
Transform< int, float > * connectFrom (ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< int >
void connectFrom (ValueProducer< int > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
-

Detailed Description

-
-

Definition at line 9 of file frequency.h.

-

Constructor & Destructor Documentation

- -

◆ Frequency()

- -
-
- - - - - - - - - - - - - - - - - - -
Frequency::Frequency (float k = 1,
String config_path = "" 
)
-
- -

Definition at line 5 of file frequency.cpp.

- -
-
-

Member Function Documentation

- -

◆ enable()

- -
-
- - - - - -
- - - - - - - -
void Frequency::enable ()
-
-overridevirtual
-
-

Called during the initialization process. Override this method to add runtime initialization code to your class

- -

Reimplemented from Enable.

- -

Definition at line 11 of file frequency.cpp.

- -
-
- -

◆ get_config_schema()

- -
-
- - - - - -
- - - - - - - -
String Frequency::get_config_schema ()
-
-overridevirtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented from Configurable.

- -

Definition at line 39 of file frequency.cpp.

- -
-
- -

◆ get_configuration()

- -
-
- - - - - -
- - - - - - - - -
JsonObject & Frequency::get_configuration (JsonBuffer & buf)
-
-overridevirtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented from Configurable.

- -

Definition at line 24 of file frequency.cpp.

- -
-
- -

◆ set_configuration()

- -
-
- - - - - -
- - - - - - - - -
bool Frequency::set_configuration (const JsonObject & config)
-
-overridevirtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented from Configurable.

- -

Definition at line 43 of file frequency.cpp.

- -
-
- -

◆ set_input()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void Frequency::set_input (int newValue,
uint8_t inputChannel = 0 
)
-
-overridevirtual
-
-

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
- - - -
newValuethe value of the input
inputChannelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
-
-
- -

Reimplemented from ValueConsumer< int >.

- -

Definition at line 15 of file frequency.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_frequency__inherit__graph.map b/docs/class_frequency__inherit__graph.map deleted file mode 100644 index 6f38179cb..000000000 --- a/docs/class_frequency__inherit__graph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/class_frequency__inherit__graph.md5 b/docs/class_frequency__inherit__graph.md5 deleted file mode 100644 index 8463a65c8..000000000 --- a/docs/class_frequency__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -09a6d75ba97c1677364c35fb97120596 \ No newline at end of file diff --git a/docs/class_frequency__inherit__graph.png b/docs/class_frequency__inherit__graph.png deleted file mode 100644 index b0a55ff7b..000000000 Binary files a/docs/class_frequency__inherit__graph.png and /dev/null differ diff --git a/docs/class_frequency_a99df388f446a8aa46f465fe464023f55_cgraph.map b/docs/class_frequency_a99df388f446a8aa46f465fe464023f55_cgraph.map deleted file mode 100644 index 313dad1ff..000000000 --- a/docs/class_frequency_a99df388f446a8aa46f465fe464023f55_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_frequency_a99df388f446a8aa46f465fe464023f55_cgraph.md5 b/docs/class_frequency_a99df388f446a8aa46f465fe464023f55_cgraph.md5 deleted file mode 100644 index 213a06ca2..000000000 --- a/docs/class_frequency_a99df388f446a8aa46f465fe464023f55_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -5598d0e794584924e0ec4b02c483a21c \ No newline at end of file diff --git a/docs/class_frequency_a99df388f446a8aa46f465fe464023f55_cgraph.png b/docs/class_frequency_a99df388f446a8aa46f465fe464023f55_cgraph.png deleted file mode 100644 index cd691ce59..000000000 Binary files a/docs/class_frequency_a99df388f446a8aa46f465fe464023f55_cgraph.png and /dev/null differ diff --git a/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.md5 b/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.md5 deleted file mode 100644 index 5416e3813..000000000 --- a/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -fe57a5ef1f5e94198d91ec3fbaeca632 \ No newline at end of file diff --git a/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.png b/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.png deleted file mode 100644 index cee7baaaa..000000000 Binary files a/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.png and /dev/null differ diff --git a/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.map b/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.map deleted file mode 100644 index 6d2eccd0f..000000000 --- a/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.map +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.md5 b/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.md5 deleted file mode 100644 index df977f6d7..000000000 --- a/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -cebfee1db2cb4cf3d7a41355d6e900c0 \ No newline at end of file diff --git a/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.png b/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.png deleted file mode 100644 index 95c807b20..000000000 Binary files a/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.png and /dev/null differ diff --git a/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.md5 b/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.md5 deleted file mode 100644 index 1f4cba7fe..000000000 --- a/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -8a0123cc777ea83ff86d3601eab258e6 \ No newline at end of file diff --git a/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.png b/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.png deleted file mode 100644 index b921389d1..000000000 Binary files a/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.png and /dev/null differ diff --git a/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.md5 b/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.md5 deleted file mode 100644 index cd30d9d52..000000000 --- a/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -644a962277892a95a225e247371de8e9 \ No newline at end of file diff --git a/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.png b/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.png deleted file mode 100644 index 3d4613cab..000000000 Binary files a/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.png and /dev/null differ diff --git a/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.map b/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.map deleted file mode 100644 index 8a3e792d4..000000000 --- a/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.md5 b/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.md5 deleted file mode 100644 index 90e427845..000000000 --- a/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -d4d91bdd3d8fb0806d9e4875b145cbc0 \ No newline at end of file diff --git a/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.png b/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.png deleted file mode 100644 index 2d1b68cda..000000000 Binary files a/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.png and /dev/null differ diff --git a/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.md5 b/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.md5 deleted file mode 100644 index 47d75724c..000000000 --- a/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -4665e693dbb5d4db4c6099dd95af61f0 \ No newline at end of file diff --git a/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.png b/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.png deleted file mode 100644 index 7b0ccb551..000000000 Binary files a/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.png and /dev/null differ diff --git a/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.md5 b/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.md5 deleted file mode 100644 index eb786b3a4..000000000 --- a/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b1def9b1fa73b33512e0d40938a2bd6c \ No newline at end of file diff --git a/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.png b/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.png deleted file mode 100644 index 2c2260e05..000000000 Binary files a/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.png and /dev/null differ diff --git a/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.map b/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.map deleted file mode 100644 index 45fa5206d..000000000 --- a/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.map +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.md5 b/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.md5 deleted file mode 100644 index 3d688827c..000000000 --- a/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -6690ca66a62622550b53ec3587d8163b \ No newline at end of file diff --git a/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.png b/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.png deleted file mode 100644 index 12f2f7978..000000000 Binary files a/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.png and /dev/null differ diff --git a/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.md5 b/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.md5 deleted file mode 100644 index d73a41d11..000000000 --- a/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -c1e54e6b78280032e92bce45ab708fc0 \ No newline at end of file diff --git a/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.png b/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.png deleted file mode 100644 index 64a6d4dff..000000000 Binary files a/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.png and /dev/null differ diff --git a/docs/class_g_p_s_input-members.html b/docs/class_g_p_s_input-members.html deleted file mode 100644 index 595772c6e..000000000 --- a/docs/class_g_p_s_input-members.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
GPSInput Member List
-
-
- -

This is the complete list of members for GPSInput, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
enable() override finalGPSInputvirtual
Enable(uint8_t priority=0)Enable
enableAll()Enablestatic
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_sensors()Sensorinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
GPSInput(Stream *rx_stream, String config_path="")GPSInput
load_configuration()Configurableprotectedvirtual
nmea_dataGPSInput
notify()Observable
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
-
- - - - diff --git a/docs/class_g_p_s_input__inherit__graph.md5 b/docs/class_g_p_s_input__inherit__graph.md5 deleted file mode 100644 index 14f1fedcf..000000000 --- a/docs/class_g_p_s_input__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -8498bdc1f38a2f2f047c49f1a31b0449 \ No newline at end of file diff --git a/docs/class_g_p_s_input__inherit__graph.png b/docs/class_g_p_s_input__inherit__graph.png deleted file mode 100644 index 45501cddd..000000000 Binary files a/docs/class_g_p_s_input__inherit__graph.png and /dev/null differ diff --git a/docs/class_g_p_s_input_ab763769a97cf52221aeb9e63d3004737_cgraph.map b/docs/class_g_p_s_input_ab763769a97cf52221aeb9e63d3004737_cgraph.map deleted file mode 100644 index 776cfe676..000000000 --- a/docs/class_g_p_s_input_ab763769a97cf52221aeb9e63d3004737_cgraph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/class_g_p_s_input_ab763769a97cf52221aeb9e63d3004737_cgraph.md5 b/docs/class_g_p_s_input_ab763769a97cf52221aeb9e63d3004737_cgraph.md5 deleted file mode 100644 index 106c1aebb..000000000 --- a/docs/class_g_p_s_input_ab763769a97cf52221aeb9e63d3004737_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -4e1b62300ef17e66e05831cc5e82614e \ No newline at end of file diff --git a/docs/class_g_p_s_input_ab763769a97cf52221aeb9e63d3004737_cgraph.png b/docs/class_g_p_s_input_ab763769a97cf52221aeb9e63d3004737_cgraph.png deleted file mode 100644 index 3ad1635e5..000000000 Binary files a/docs/class_g_p_s_input_ab763769a97cf52221aeb9e63d3004737_cgraph.png and /dev/null differ diff --git a/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.md5 b/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.md5 deleted file mode 100644 index 106c1aebb..000000000 --- a/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -4e1b62300ef17e66e05831cc5e82614e \ No newline at end of file diff --git a/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.png b/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.png deleted file mode 100644 index 3ad1635e5..000000000 Binary files a/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.png and /dev/null differ diff --git a/docs/class_g_p_s_input_af94497b920d346ed5ccad18bd4dbfd9c_cgraph.map b/docs/class_g_p_s_input_af94497b920d346ed5ccad18bd4dbfd9c_cgraph.map deleted file mode 100644 index 9e7d01fe2..000000000 --- a/docs/class_g_p_s_input_af94497b920d346ed5ccad18bd4dbfd9c_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_g_p_s_input_af94497b920d346ed5ccad18bd4dbfd9c_cgraph.md5 b/docs/class_g_p_s_input_af94497b920d346ed5ccad18bd4dbfd9c_cgraph.md5 deleted file mode 100644 index 904394ca2..000000000 --- a/docs/class_g_p_s_input_af94497b920d346ed5ccad18bd4dbfd9c_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -79d29cd99af93ab1d1f0c26ea9c082e5 \ No newline at end of file diff --git a/docs/class_g_p_s_input_af94497b920d346ed5ccad18bd4dbfd9c_cgraph.png b/docs/class_g_p_s_input_af94497b920d346ed5ccad18bd4dbfd9c_cgraph.png deleted file mode 100644 index d23772084..000000000 Binary files a/docs/class_g_p_s_input_af94497b920d346ed5ccad18bd4dbfd9c_cgraph.png and /dev/null differ diff --git a/docs/class_h_t_t_p_server.html b/docs/class_h_t_t_p_server.html deleted file mode 100644 index 1dd4af1b5..000000000 --- a/docs/class_h_t_t_p_server.html +++ /dev/null @@ -1,375 +0,0 @@ - - - - - - - -SensESP: HTTPServer Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
HTTPServer Class Reference
-
-
- -

#include <http.h>

- - - - - - - - - - - - - - - - - - -

-Public Member Functions

 HTTPServer (std::function< void()> reset_device)
 
 ~HTTPServer ()
 
void enable ()
 
void handle_not_found (AsyncWebServerRequest *request)
 
void handle_config (AsyncWebServerRequest *request)
 
void handle_device_reset (AsyncWebServerRequest *request)
 
void handle_device_restart (AsyncWebServerRequest *request)
 
void handle_info (AsyncWebServerRequest *request)
 
-

Detailed Description

-
-

Definition at line 8 of file http.h.

-

Constructor & Destructor Documentation

- -

◆ HTTPServer()

- -
-
- - - - - - - - -
HTTPServer::HTTPServer (std::function< void()> reset_device)
-
- -

Definition at line 29 of file http.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - - - - - - - -
- -
-
- -

◆ ~HTTPServer()

- -
-
- - - - - -
- - - - - - - -
HTTPServer::~HTTPServer ()
-
-inline
-
- -

Definition at line 11 of file http.h.

- -
-
-

Member Function Documentation

- -

◆ enable()

- -
-
- - - - - -
- - - - - - - -
void HTTPServer::enable ()
-
-inline
-
- -

Definition at line 12 of file http.h.

-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ handle_config()

- -
-
- - - - - - - - -
void HTTPServer::handle_config (AsyncWebServerRequest * request)
-
- -

Definition at line 206 of file http.cpp.

- -
-
- -

◆ handle_device_reset()

- -
-
- - - - - - - - -
void HTTPServer::handle_device_reset (AsyncWebServerRequest * request)
-
- -

Definition at line 211 of file http.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ handle_device_restart()

- -
-
- - - - - - - - -
void HTTPServer::handle_device_restart (AsyncWebServerRequest * request)
-
- -

Definition at line 217 of file http.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ handle_info()

- -
-
- - - - - - - - -
void HTTPServer::handle_info (AsyncWebServerRequest * request)
-
- -

Definition at line 223 of file http.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ handle_not_found()

- -
-
- - - - - - - - -
void HTTPServer::handle_not_found (AsyncWebServerRequest * request)
-
- -

Definition at line 139 of file http.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.map b/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.map deleted file mode 100644 index 2adaafd74..000000000 --- a/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.md5 b/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.md5 deleted file mode 100644 index 53e9a0cce..000000000 --- a/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -670eab8eb09a206a9f182e4a71d4235f \ No newline at end of file diff --git a/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.png b/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.png deleted file mode 100644 index 71629205f..000000000 Binary files a/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.png and /dev/null differ diff --git a/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.md5 b/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.md5 deleted file mode 100644 index 706974c65..000000000 --- a/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -0446f7f7a4db8bdaf2a8ac383c6f33ea \ No newline at end of file diff --git a/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.png b/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.png deleted file mode 100644 index 1f8cbdeee..000000000 Binary files a/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.png and /dev/null differ diff --git a/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.md5 b/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.md5 deleted file mode 100644 index 0260fd44a..000000000 --- a/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -2cf87ea60ed1d88ade569dc750875c0c \ No newline at end of file diff --git a/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.png b/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.png deleted file mode 100644 index 28623d9fa..000000000 Binary files a/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.png and /dev/null differ diff --git a/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.md5 b/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.md5 deleted file mode 100644 index 7d5ea5f9f..000000000 --- a/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -283bcb455f49ffba035949552a6baf1c \ No newline at end of file diff --git a/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.png b/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.png deleted file mode 100644 index 621bfb9f9..000000000 Binary files a/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.png and /dev/null differ diff --git a/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.md5 b/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.md5 deleted file mode 100644 index 53e3adb6b..000000000 --- a/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -1de0420eb031849dcf3698bada6187a5 \ No newline at end of file diff --git a/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.png b/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.png deleted file mode 100644 index 53d5e0e37..000000000 Binary files a/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.png and /dev/null differ diff --git a/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.map b/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.map deleted file mode 100644 index 6be3b63e5..000000000 --- a/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.md5 b/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.md5 deleted file mode 100644 index 835714560..000000000 --- a/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -ef5dae289e43c5d729f407aea51cd2f4 \ No newline at end of file diff --git a/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.png b/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.png deleted file mode 100644 index e9126535f..000000000 Binary files a/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.png and /dev/null differ diff --git a/docs/class_i_p_addr_dev-members.html b/docs/class_i_p_addr_dev-members.html deleted file mode 100644 index 1ba4ace67..000000000 --- a/docs/class_i_p_addr_dev-members.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
IPAddrDev Member List
-
-
- -

This is the complete list of members for IPAddrDev, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectTo(ValueConsumer< String > *pConsumer, uint8_t inputChannel=0)ValueProducer< String >inline
connectTo(Transform< String, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< String >inline
enable() override finalIPAddrDevvirtual
Enable(uint8_t priority=0)Enable
enableAll()Enablestatic
get()ValueProducer< String >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_sensors()Sensorinlinestatic
get_value_name()IPAddrDevinline
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
IPAddrDev()IPAddrDevinline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< String >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
StringSensor(String config_path="")StringSensor
ValueProducer()ValueProducer< String >inline
-
- - - - diff --git a/docs/class_i_p_addr_dev__inherit__graph.map b/docs/class_i_p_addr_dev__inherit__graph.map deleted file mode 100644 index a3ac599fc..000000000 --- a/docs/class_i_p_addr_dev__inherit__graph.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/class_i_p_addr_dev__inherit__graph.md5 b/docs/class_i_p_addr_dev__inherit__graph.md5 deleted file mode 100644 index 843dc3642..000000000 --- a/docs/class_i_p_addr_dev__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -8e521f5c5ba6fab763a8336928dc2e34 \ No newline at end of file diff --git a/docs/class_i_p_addr_dev__inherit__graph.png b/docs/class_i_p_addr_dev__inherit__graph.png deleted file mode 100644 index 0b42e314f..000000000 Binary files a/docs/class_i_p_addr_dev__inherit__graph.png and /dev/null differ diff --git a/docs/class_integer_sensor-members.html b/docs/class_integer_sensor-members.html deleted file mode 100644 index d6866fcfb..000000000 --- a/docs/class_integer_sensor-members.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
IntegerSensor Member List
-
-
- -

This is the complete list of members for IntegerSensor, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectTo(ValueConsumer< int > *pConsumer, uint8_t inputChannel=0)ValueProducer< int >inline
connectTo(Transform< int, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< int >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< int >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_sensors()Sensorinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
IntegerSensor(String config_path="")IntegerSensor
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< int >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< int >inline
-
- - - - diff --git a/docs/class_integer_sensor__inherit__graph.map b/docs/class_integer_sensor__inherit__graph.map deleted file mode 100644 index 63dac77dd..000000000 --- a/docs/class_integer_sensor__inherit__graph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/class_integer_sensor__inherit__graph.md5 b/docs/class_integer_sensor__inherit__graph.md5 deleted file mode 100644 index c119fc331..000000000 --- a/docs/class_integer_sensor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -42ad4466eb43a774b29b2fd1ea84ac4a \ No newline at end of file diff --git a/docs/class_integer_sensor__inherit__graph.png b/docs/class_integer_sensor__inherit__graph.png deleted file mode 100644 index 0e8cdf742..000000000 Binary files a/docs/class_integer_sensor__inherit__graph.png and /dev/null differ diff --git a/docs/class_integrator-members.html b/docs/class_integrator-members.html deleted file mode 100644 index 6342a82eb..000000000 --- a/docs/class_integrator-members.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Integrator Member List
-
-
- -

This is the complete list of members for Integrator, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)Transform< float, float >inline
ValueConsumer< float >::connectFrom(ValueProducer< float > *pProducer, uint8_t inputChannel=0)ValueConsumer< float >inline
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
enable() override finalIntegratorvirtual
Enable(uint8_t priority=0)Enable
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema() overrideIntegratorvirtual
get_configuration(JsonBuffer &buf) override finalIntegratorvirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
Integrator(float k=1, float value=0, String config_path="")Integrator
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< float >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config) override finalIntegratorvirtual
set_input(float input, uint8_t inputChannel=0) override finalIntegratorvirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_integrator.html b/docs/class_integrator.html deleted file mode 100644 index b0a4ce48a..000000000 --- a/docs/class_integrator.html +++ /dev/null @@ -1,431 +0,0 @@ - - - - - - - -SensESP: Integrator Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
Integrator Class Reference
-
-
- -

#include <integrator.h>

-
-Inheritance diagram for Integrator:
-
-
Inheritance graph
- - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Integrator (float k=1, float value=0, String config_path="")
 
virtual void enable () override final
 
virtual void set_input (float input, uint8_t inputChannel=0) override final
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override final
 
virtual bool set_configuration (const JsonObject &config) override final
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< float >
void connectFrom (ValueProducer< float > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
-

Detailed Description

-
-

Definition at line 7 of file integrator.h.

-

Constructor & Destructor Documentation

- -

◆ Integrator()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
Integrator::Integrator (float k = 1,
float value = 0,
String config_path = "" 
)
-
- -

Definition at line 7 of file integrator.cpp.

- -
-
-

Member Function Documentation

- -

◆ enable()

- -
-
- - - - - -
- - - - - - - -
void Integrator::enable ()
-
-finaloverridevirtual
-
-

Called during the initialization process. Override this method to add runtime initialization code to your class

- -

Reimplemented from Enable.

- -

Definition at line 16 of file integrator.cpp.

- -
-
- -

◆ get_config_schema()

- -
-
- - - - - -
- - - - - - - -
String Integrator::get_config_schema ()
-
-overridevirtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented from Configurable.

- -

Definition at line 44 of file integrator.cpp.

- -
-
- -

◆ get_configuration()

- -
-
- - - - - -
- - - - - - - - -
JsonObject & Integrator::get_configuration (JsonBuffer & buf)
-
-finaloverridevirtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented from Configurable.

- -

Definition at line 29 of file integrator.cpp.

- -
-
- -

◆ set_configuration()

- -
-
- - - - - -
- - - - - - - - -
bool Integrator::set_configuration (const JsonObject & config)
-
-finaloverridevirtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented from Configurable.

- -

Definition at line 48 of file integrator.cpp.

- -
-
- -

◆ set_input()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void Integrator::set_input (float newValue,
uint8_t inputChannel = 0 
)
-
-finaloverridevirtual
-
-

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
- - - -
newValuethe value of the input
inputChannelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
-
-
- -

Reimplemented from ValueConsumer< float >.

- -

Definition at line 23 of file integrator.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_integrator__inherit__graph.map b/docs/class_integrator__inherit__graph.map deleted file mode 100644 index 59fd1daa6..000000000 --- a/docs/class_integrator__inherit__graph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/class_integrator__inherit__graph.md5 b/docs/class_integrator__inherit__graph.md5 deleted file mode 100644 index 78a558b3c..000000000 --- a/docs/class_integrator__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e88a6c3d731354caefec8102aaa52d3d \ No newline at end of file diff --git a/docs/class_integrator__inherit__graph.png b/docs/class_integrator__inherit__graph.png deleted file mode 100644 index 17e3a7087..000000000 Binary files a/docs/class_integrator__inherit__graph.png and /dev/null differ diff --git a/docs/class_integrator_a7fb38d2d19aa3e918dbee34b9096f7a6_cgraph.map b/docs/class_integrator_a7fb38d2d19aa3e918dbee34b9096f7a6_cgraph.map deleted file mode 100644 index bb1b7ff95..000000000 --- a/docs/class_integrator_a7fb38d2d19aa3e918dbee34b9096f7a6_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_integrator_a7fb38d2d19aa3e918dbee34b9096f7a6_cgraph.md5 b/docs/class_integrator_a7fb38d2d19aa3e918dbee34b9096f7a6_cgraph.md5 deleted file mode 100644 index ede6ef803..000000000 --- a/docs/class_integrator_a7fb38d2d19aa3e918dbee34b9096f7a6_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -ad14d26984fbc4467e48556f3b5c1fae \ No newline at end of file diff --git a/docs/class_integrator_a7fb38d2d19aa3e918dbee34b9096f7a6_cgraph.png b/docs/class_integrator_a7fb38d2d19aa3e918dbee34b9096f7a6_cgraph.png deleted file mode 100644 index 91b6d7f98..000000000 Binary files a/docs/class_integrator_a7fb38d2d19aa3e918dbee34b9096f7a6_cgraph.png and /dev/null differ diff --git a/docs/class_led_blinker.html b/docs/class_led_blinker.html deleted file mode 100644 index 34a5f89e1..000000000 --- a/docs/class_led_blinker.html +++ /dev/null @@ -1,417 +0,0 @@ - - - - - - - -SensESP: LedBlinker Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
LedBlinker Class Reference
-
-
- -

#include <led_blinker.h>

- - - - - - - - - - - - - - -

-Public Member Functions

void set_wifi_connected ()
 
void set_wifi_disconnected ()
 
void set_server_connected ()
 
void set_server_disconnected ()
 
void flip ()
 
 LedBlinker ()
 
- - - -

-Protected Member Functions

void set_state (int new_state)
 
-

Detailed Description

-
-

Definition at line 6 of file led_blinker.h.

-

Constructor & Destructor Documentation

- -

◆ LedBlinker()

- -
-
- - - - - - - -
LedBlinker::LedBlinker ()
-
- -

Definition at line 11 of file led_blinker.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-

Member Function Documentation

- -

◆ flip()

- -
-
- - - - - - - -
void LedBlinker::flip ()
-
- -

Definition at line 27 of file led_blinker.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
-
-Here is the caller graph for this function:
-
-
- - - - - - - - -
- -
-
- -

◆ set_server_connected()

- -
-
- - - - - - - -
void LedBlinker::set_server_connected ()
-
- -

Definition at line 48 of file led_blinker.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - -
-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ set_server_disconnected()

- -
-
- - - - - -
- - - - - - - -
void LedBlinker::set_server_disconnected ()
-
-inline
-
- -

Definition at line 17 of file led_blinker.h.

-
-Here is the call graph for this function:
-
-
- - - - - - -
-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ set_state()

- -
-
- - - - - -
- - - - - - - - -
void LedBlinker::set_state (int new_state)
-
-protected
-
- -

Definition at line 22 of file led_blinker.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - - - - - - - - -
- -
-
- -

◆ set_wifi_connected()

- -
-
- - - - - - - -
void LedBlinker::set_wifi_connected ()
-
- -

Definition at line 41 of file led_blinker.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - -
-
-Here is the caller graph for this function:
-
-
- - - - - - -
- -
-
- -

◆ set_wifi_disconnected()

- -
-
- - - - - - - -
void LedBlinker::set_wifi_disconnected ()
-
- -

Definition at line 31 of file led_blinker.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.md5 b/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.md5 deleted file mode 100644 index a69925dd2..000000000 --- a/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -c3e22dc695fee99c8c6e8d1ba7ba1a5b \ No newline at end of file diff --git a/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.png b/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.png deleted file mode 100644 index 1287780c9..000000000 Binary files a/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.png and /dev/null differ diff --git a/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_icgraph.map b/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_icgraph.map deleted file mode 100644 index ca4fd3e10..000000000 --- a/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_icgraph.md5 b/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_icgraph.md5 deleted file mode 100644 index a90e1a6a6..000000000 --- a/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -aabd814468d0ca306395400a25fcea28 \ No newline at end of file diff --git a/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_icgraph.png b/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_icgraph.png deleted file mode 100644 index 1afabd5d6..000000000 Binary files a/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_icgraph.png and /dev/null differ diff --git a/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.md5 b/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.md5 deleted file mode 100644 index e7dd71c85..000000000 --- a/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -6bbd8d05aa32f11512534754349d8fbb \ No newline at end of file diff --git a/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.png b/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.png deleted file mode 100644 index 692691bc1..000000000 Binary files a/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.png and /dev/null differ diff --git a/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.map b/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.map deleted file mode 100644 index 7e0768092..000000000 --- a/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.md5 b/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.md5 deleted file mode 100644 index efb94fdc4..000000000 --- a/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -5673352729847f653df788a7f31ceb92 \ No newline at end of file diff --git a/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.png b/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.png deleted file mode 100644 index 821df3be3..000000000 Binary files a/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.png and /dev/null differ diff --git a/docs/class_led_blinker_a7e774b60394cf16d0be68cfd38197199_cgraph.md5 b/docs/class_led_blinker_a7e774b60394cf16d0be68cfd38197199_cgraph.md5 deleted file mode 100644 index 3e749fc5e..000000000 --- a/docs/class_led_blinker_a7e774b60394cf16d0be68cfd38197199_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -43550b08cc57cf8516817ff22c4527d2 \ No newline at end of file diff --git a/docs/class_led_blinker_a7e774b60394cf16d0be68cfd38197199_cgraph.png b/docs/class_led_blinker_a7e774b60394cf16d0be68cfd38197199_cgraph.png deleted file mode 100644 index e3b4eedc5..000000000 Binary files a/docs/class_led_blinker_a7e774b60394cf16d0be68cfd38197199_cgraph.png and /dev/null differ diff --git a/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.md5 b/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.md5 deleted file mode 100644 index 9a242823a..000000000 --- a/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -c6b87d9b787181769884eb51dc9a352a \ No newline at end of file diff --git a/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.png b/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.png deleted file mode 100644 index 7f7cef917..000000000 Binary files a/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.png and /dev/null differ diff --git a/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.map b/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.map deleted file mode 100644 index bb9ddb33a..000000000 --- a/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.md5 b/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.md5 deleted file mode 100644 index aa0d16e00..000000000 --- a/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -2539b73ca3ae85d57ea5c3eb215f3bde \ No newline at end of file diff --git a/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.png b/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.png deleted file mode 100644 index eba1b4c71..000000000 Binary files a/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.png and /dev/null differ diff --git a/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.map b/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.map deleted file mode 100644 index 2d7c559c4..000000000 --- a/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.md5 b/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.md5 deleted file mode 100644 index 902a9af0d..000000000 --- a/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -71f43f60b659460d83c633efebf08d72 \ No newline at end of file diff --git a/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.png b/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.png deleted file mode 100644 index fbfa9cece..000000000 Binary files a/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.png and /dev/null differ diff --git a/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.md5 b/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.md5 deleted file mode 100644 index 15ec9966e..000000000 --- a/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -99b7a362c0ca098d16eded9272ebdd91 \ No newline at end of file diff --git a/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.png b/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.png deleted file mode 100644 index 704fc14ff..000000000 Binary files a/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.png and /dev/null differ diff --git a/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_icgraph.map b/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_icgraph.map deleted file mode 100644 index 166c9fa74..000000000 --- a/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_icgraph.md5 b/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_icgraph.md5 deleted file mode 100644 index 165581c50..000000000 --- a/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -556b9f8d8d650688d21a68ce51f85a76 \ No newline at end of file diff --git a/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_icgraph.png b/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_icgraph.png deleted file mode 100644 index 35a4b1359..000000000 Binary files a/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_icgraph.png and /dev/null differ diff --git a/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.md5 b/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.md5 deleted file mode 100644 index 00a1dccb2..000000000 --- a/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -94f03f879cd31f240da0726ff67f515a \ No newline at end of file diff --git a/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.png b/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.png deleted file mode 100644 index ae9265926..000000000 Binary files a/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.png and /dev/null differ diff --git a/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.map b/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.map deleted file mode 100644 index 84262e0f2..000000000 --- a/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.md5 b/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.md5 deleted file mode 100644 index ead6e5fa9..000000000 --- a/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -79e672de635641ecda447524d311cd9e \ No newline at end of file diff --git a/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.png b/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.png deleted file mode 100644 index adfa2d62a..000000000 Binary files a/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.png and /dev/null differ diff --git a/docs/class_linear-members.html b/docs/class_linear-members.html deleted file mode 100644 index 6722fc902..000000000 --- a/docs/class_linear-members.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Linear Member List
-
-
- -

This is the complete list of members for Linear, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)Transform< float, float >inline
ValueConsumer< float >::connectFrom(ValueProducer< float > *pProducer, uint8_t inputChannel=0)ValueConsumer< float >inline
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema() overrideLinearvirtual
get_configuration(JsonBuffer &buf) overrideLinearvirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
Linear(float k, float c, String config_path="")Linear
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< float >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config) overrideLinearvirtual
set_input(float input, uint8_t inputChannel=0) overrideLinearvirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_linear.html b/docs/class_linear.html deleted file mode 100644 index 75358dc76..000000000 --- a/docs/class_linear.html +++ /dev/null @@ -1,402 +0,0 @@ - - - - - - - -SensESP: Linear Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
Linear Class Reference
-
-
- -

#include <linear.h>

-
-Inheritance diagram for Linear:
-
-
Inheritance graph
- - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Linear (float k, float c, String config_path="")
 
virtual void set_input (float input, uint8_t inputChannel=0) override
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< float >
void connectFrom (ValueProducer< float > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
-

Detailed Description

-
-

Definition at line 9 of file linear.h.

-

Constructor & Destructor Documentation

- -

◆ Linear()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
Linear::Linear (float k,
float c,
String config_path = "" 
)
-
- -

Definition at line 5 of file linear.cpp.

- -
-
-

Member Function Documentation

- -

◆ get_config_schema()

- -
-
- - - - - -
- - - - - - - -
String Linear::get_config_schema ()
-
-overridevirtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented from Configurable.

- -

Definition at line 37 of file linear.cpp.

- -
-
- -

◆ get_configuration()

- -
-
- - - - - -
- - - - - - - - -
JsonObject & Linear::get_configuration (JsonBuffer & buf)
-
-overridevirtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented from Configurable.

- -

Definition at line 20 of file linear.cpp.

- -
-
- -

◆ set_configuration()

- -
-
- - - - - -
- - - - - - - - -
bool Linear::set_configuration (const JsonObject & config)
-
-overridevirtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented from Configurable.

- -

Definition at line 41 of file linear.cpp.

- -
-
- -

◆ set_input()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void Linear::set_input (float newValue,
uint8_t inputChannel = 0 
)
-
-overridevirtual
-
-

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
- - - -
newValuethe value of the input
inputChannelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
-
-
- -

Reimplemented from ValueConsumer< float >.

- -

Definition at line 14 of file linear.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_linear.js b/docs/class_linear.js deleted file mode 100644 index 75b2f9d75..000000000 --- a/docs/class_linear.js +++ /dev/null @@ -1,8 +0,0 @@ -var class_linear = -[ - [ "Linear", "class_linear.html#ad9477f54820b5a234339d342836e9869", null ], - [ "get_config_schema", "class_linear.html#afc896eaed1df40409ea3ce17d81929cc", null ], - [ "get_configuration", "class_linear.html#a98f7cf12073c2aa89bbb7f89b13f6299", null ], - [ "set_configuration", "class_linear.html#ab12c626261e763892d4253f48478771a", null ], - [ "set_input", "class_linear.html#a057c8519f6eb7dd28392073010a2cfc3", null ] -]; \ No newline at end of file diff --git a/docs/class_linear__inherit__graph.map b/docs/class_linear__inherit__graph.map deleted file mode 100644 index de03897c3..000000000 --- a/docs/class_linear__inherit__graph.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/docs/class_linear__inherit__graph.md5 b/docs/class_linear__inherit__graph.md5 deleted file mode 100644 index b46cb7039..000000000 --- a/docs/class_linear__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b7de23216120aa9d448314c263d0bbfd \ No newline at end of file diff --git a/docs/class_linear__inherit__graph.png b/docs/class_linear__inherit__graph.png deleted file mode 100644 index afd2839c4..000000000 Binary files a/docs/class_linear__inherit__graph.png and /dev/null differ diff --git a/docs/class_linear_a057c8519f6eb7dd28392073010a2cfc3_cgraph.map b/docs/class_linear_a057c8519f6eb7dd28392073010a2cfc3_cgraph.map deleted file mode 100644 index eb00ceced..000000000 --- a/docs/class_linear_a057c8519f6eb7dd28392073010a2cfc3_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_linear_a057c8519f6eb7dd28392073010a2cfc3_cgraph.md5 b/docs/class_linear_a057c8519f6eb7dd28392073010a2cfc3_cgraph.md5 deleted file mode 100644 index 7ff57560c..000000000 --- a/docs/class_linear_a057c8519f6eb7dd28392073010a2cfc3_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -62f7d8e847e1f55dc576a29ef27b9b76 \ No newline at end of file diff --git a/docs/class_linear_a057c8519f6eb7dd28392073010a2cfc3_cgraph.png b/docs/class_linear_a057c8519f6eb7dd28392073010a2cfc3_cgraph.png deleted file mode 100644 index 4107ec89c..000000000 Binary files a/docs/class_linear_a057c8519f6eb7dd28392073010a2cfc3_cgraph.png and /dev/null differ diff --git a/docs/class_median-members.html b/docs/class_median-members.html deleted file mode 100644 index 97769b2be..000000000 --- a/docs/class_median-members.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Median Member List
-
-
- -

This is the complete list of members for Median, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)Transform< float, float >inline
ValueConsumer< float >::connectFrom(ValueProducer< float > *pProducer, uint8_t inputChannel=0)ValueConsumer< float >inline
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema() overrideMedianvirtual
get_configuration(JsonBuffer &buf) overrideMedianvirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
Median(unsigned int sampleSize=10, String config_path="")Median
notify()Observable
outputValueProducer< float >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config) overrideMedianvirtual
set_input(float input, uint8_t inputChannel=0) overrideMedianvirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_median.html b/docs/class_median.html deleted file mode 100644 index 37285abc1..000000000 --- a/docs/class_median.html +++ /dev/null @@ -1,396 +0,0 @@ - - - - - - - -SensESP: Median Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
Median Class Reference
-
-
- -

#include <median.h>

-
-Inheritance diagram for Median:
-
-
Inheritance graph
- - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Median (unsigned int sampleSize=10, String config_path="")
 
virtual void set_input (float input, uint8_t inputChannel=0) override
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< float >
void connectFrom (ValueProducer< float > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
-

Detailed Description

-

Median collects a list of input values of size sampleSize and outputs the median value (i.e. element number sampleSize / 2 of a sorted sample list).

- -

Definition at line 13 of file median.h.

-

Constructor & Destructor Documentation

- -

◆ Median()

- -
-
- - - - - - - - - - - - - - - - - - -
Median::Median (unsigned int sampleSize = 10,
String config_path = "" 
)
-
- -

Definition at line 4 of file median.cpp.

- -
-
-

Member Function Documentation

- -

◆ get_config_schema()

- -
-
- - - - - -
- - - - - - - -
String Median::get_config_schema ()
-
-overridevirtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented from Configurable.

- -

Definition at line 40 of file median.cpp.

- -
-
- -

◆ get_configuration()

- -
-
- - - - - -
- - - - - - - - -
JsonObject & Median::get_configuration (JsonBuffer & buf)
-
-overridevirtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented from Configurable.

- -

Definition at line 27 of file median.cpp.

- -
-
- -

◆ set_configuration()

- -
-
- - - - - -
- - - - - - - - -
bool Median::set_configuration (const JsonObject & config)
-
-overridevirtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented from Configurable.

- -

Definition at line 45 of file median.cpp.

- -
-
- -

◆ set_input()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void Median::set_input (float newValue,
uint8_t inputChannel = 0 
)
-
-overridevirtual
-
-

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
- - - -
newValuethe value of the input
inputChannelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
-
-
- -

Reimplemented from ValueConsumer< float >.

- -

Definition at line 13 of file median.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_median.js b/docs/class_median.js deleted file mode 100644 index ca772395c..000000000 --- a/docs/class_median.js +++ /dev/null @@ -1,8 +0,0 @@ -var class_median = -[ - [ "Median", "class_median.html#a986e318f167a85623757c0e247f892fd", null ], - [ "get_config_schema", "class_median.html#aa8515edf3b34ee8439bd77dcfc69a93f", null ], - [ "get_configuration", "class_median.html#a2ce826a6b0cc7e467345671b843d7af2", null ], - [ "set_configuration", "class_median.html#ac06073c22b922aceee9f01ddaccfb54a", null ], - [ "set_input", "class_median.html#a012bc8d16c361b38ab01f56898ead20b", null ] -]; \ No newline at end of file diff --git a/docs/class_median__inherit__graph.map b/docs/class_median__inherit__graph.map deleted file mode 100644 index 0a0639383..000000000 --- a/docs/class_median__inherit__graph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/class_median__inherit__graph.md5 b/docs/class_median__inherit__graph.md5 deleted file mode 100644 index e530f7d89..000000000 --- a/docs/class_median__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c89cbbac45650e56cdf540a3bb3283c3 \ No newline at end of file diff --git a/docs/class_median__inherit__graph.png b/docs/class_median__inherit__graph.png deleted file mode 100644 index 2a0b339f1..000000000 Binary files a/docs/class_median__inherit__graph.png and /dev/null differ diff --git a/docs/class_median_a012bc8d16c361b38ab01f56898ead20b_cgraph.map b/docs/class_median_a012bc8d16c361b38ab01f56898ead20b_cgraph.map deleted file mode 100644 index 0c50d682e..000000000 --- a/docs/class_median_a012bc8d16c361b38ab01f56898ead20b_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_median_a012bc8d16c361b38ab01f56898ead20b_cgraph.md5 b/docs/class_median_a012bc8d16c361b38ab01f56898ead20b_cgraph.md5 deleted file mode 100644 index 4dac4b6c4..000000000 --- a/docs/class_median_a012bc8d16c361b38ab01f56898ead20b_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -448011ec120887a2046fef12bd9f2953 \ No newline at end of file diff --git a/docs/class_median_a012bc8d16c361b38ab01f56898ead20b_cgraph.png b/docs/class_median_a012bc8d16c361b38ab01f56898ead20b_cgraph.png deleted file mode 100644 index e2eb57c41..000000000 Binary files a/docs/class_median_a012bc8d16c361b38ab01f56898ead20b_cgraph.png and /dev/null differ diff --git a/docs/class_moving_average-members.html b/docs/class_moving_average-members.html deleted file mode 100644 index c1454b782..000000000 --- a/docs/class_moving_average-members.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
MovingAverage Member List
-
-
- -

This is the complete list of members for MovingAverage, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)Transform< float, float >inline
ValueConsumer< float >::connectFrom(ValueProducer< float > *pProducer, uint8_t inputChannel=0)ValueConsumer< float >inline
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema() overrideMovingAveragevirtual
get_configuration(JsonBuffer &buf) overrideMovingAveragevirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
MovingAverage(int n, float k=1., String config_path="")MovingAverage
notify()Observable
outputValueProducer< float >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config) overrideMovingAveragevirtual
set_input(float input, uint8_t inputChannel=0) overrideMovingAveragevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_moving_average.html b/docs/class_moving_average.html deleted file mode 100644 index 084437b57..000000000 --- a/docs/class_moving_average.html +++ /dev/null @@ -1,409 +0,0 @@ - - - - - - - -SensESP: MovingAverage Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
MovingAverage Class Reference
-
-
- -

#include <moving_average.h>

-
-Inheritance diagram for MovingAverage:
-
-
Inheritance graph
- - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 MovingAverage (int n, float k=1., String config_path="")
 
virtual void set_input (float input, uint8_t inputChannel=0) override
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< float >
void connectFrom (ValueProducer< float > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
-

Detailed Description

-

MovingAverage is used to smooth the output of a value (signal) that has frequent variations. For example, the output of a temperature sensor may vary from 180 to 185 several times over a short period, but you just want to see the average of that. MovingAverage outputs the average of the most recent n values. It also incorporates a "scale" factor, in case you want to increase or decrease your final output by a fixed percentage.

- -

Definition at line 18 of file moving_average.h.

-

Constructor & Destructor Documentation

- -

◆ MovingAverage()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
MovingAverage::MovingAverage (int n,
float k = 1.,
String config_path = "" 
)
-
-
Parameters
- - - -
nis the number of most recent values you want to average for your output
themoving average will be multiplied by k before it is output - make it something other than 1. if you need to scale your output up or down by a fixed percentage
-
-
- -

Definition at line 5 of file moving_average.cpp.

- -
-
-

Member Function Documentation

- -

◆ get_config_schema()

- -
-
- - - - - -
- - - - - - - -
String MovingAverage::get_config_schema ()
-
-overridevirtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented from Configurable.

- -

Definition at line 53 of file moving_average.cpp.

- -
-
- -

◆ get_configuration()

- -
-
- - - - - -
- - - - - - - - -
JsonObject & MovingAverage::get_configuration (JsonBuffer & buf)
-
-overridevirtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented from Configurable.

- -

Definition at line 37 of file moving_average.cpp.

- -
-
- -

◆ set_configuration()

- -
-
- - - - - -
- - - - - - - - -
bool MovingAverage::set_configuration (const JsonObject & config)
-
-overridevirtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented from Configurable.

- -

Definition at line 58 of file moving_average.cpp.

- -
-
- -

◆ set_input()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void MovingAverage::set_input (float newValue,
uint8_t inputChannel = 0 
)
-
-overridevirtual
-
-

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
- - - -
newValuethe value of the input
inputChannelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
-
-
- -

Reimplemented from ValueConsumer< float >.

- -

Definition at line 15 of file moving_average.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_moving_average__inherit__graph.map b/docs/class_moving_average__inherit__graph.map deleted file mode 100644 index 777fc8a0e..000000000 --- a/docs/class_moving_average__inherit__graph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/class_moving_average__inherit__graph.md5 b/docs/class_moving_average__inherit__graph.md5 deleted file mode 100644 index c65b12bbe..000000000 --- a/docs/class_moving_average__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a65c994a7ce55310d6068283d2adbcbc \ No newline at end of file diff --git a/docs/class_moving_average__inherit__graph.png b/docs/class_moving_average__inherit__graph.png deleted file mode 100644 index 38f7bd2b2..000000000 Binary files a/docs/class_moving_average__inherit__graph.png and /dev/null differ diff --git a/docs/class_moving_average_a22a08de98351ed805b49beecb234ab0b_cgraph.map b/docs/class_moving_average_a22a08de98351ed805b49beecb234ab0b_cgraph.map deleted file mode 100644 index 663a2f013..000000000 --- a/docs/class_moving_average_a22a08de98351ed805b49beecb234ab0b_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_moving_average_a22a08de98351ed805b49beecb234ab0b_cgraph.md5 b/docs/class_moving_average_a22a08de98351ed805b49beecb234ab0b_cgraph.md5 deleted file mode 100644 index 3d5165f18..000000000 --- a/docs/class_moving_average_a22a08de98351ed805b49beecb234ab0b_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -da37c05e0e8544f52d56faf8d040c7ee \ No newline at end of file diff --git a/docs/class_moving_average_a22a08de98351ed805b49beecb234ab0b_cgraph.png b/docs/class_moving_average_a22a08de98351ed805b49beecb234ab0b_cgraph.png deleted file mode 100644 index b323f00ff..000000000 Binary files a/docs/class_moving_average_a22a08de98351ed805b49beecb234ab0b_cgraph.png and /dev/null differ diff --git a/docs/class_n_m_e_a_parser_a0f7e6a8f7ee6d7f2ab69a0b05341861b_icgraph.map b/docs/class_n_m_e_a_parser_a0f7e6a8f7ee6d7f2ab69a0b05341861b_icgraph.map deleted file mode 100644 index 25ad60a8b..000000000 --- a/docs/class_n_m_e_a_parser_a0f7e6a8f7ee6d7f2ab69a0b05341861b_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_n_m_e_a_parser_a0f7e6a8f7ee6d7f2ab69a0b05341861b_icgraph.md5 b/docs/class_n_m_e_a_parser_a0f7e6a8f7ee6d7f2ab69a0b05341861b_icgraph.md5 deleted file mode 100644 index 6d8a13594..000000000 --- a/docs/class_n_m_e_a_parser_a0f7e6a8f7ee6d7f2ab69a0b05341861b_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -efe10c745883ddb3ebb4baa2576b8b21 \ No newline at end of file diff --git a/docs/class_n_m_e_a_parser_a0f7e6a8f7ee6d7f2ab69a0b05341861b_icgraph.png b/docs/class_n_m_e_a_parser_a0f7e6a8f7ee6d7f2ab69a0b05341861b_icgraph.png deleted file mode 100644 index 7c0a4dde1..000000000 Binary files a/docs/class_n_m_e_a_parser_a0f7e6a8f7ee6d7f2ab69a0b05341861b_icgraph.png and /dev/null differ diff --git a/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.md5 b/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.md5 deleted file mode 100644 index 675172bfa..000000000 --- a/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -d0e0d99f287cfe758826bbe8bffea211 \ No newline at end of file diff --git a/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.png b/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.png deleted file mode 100644 index efce4209f..000000000 Binary files a/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.png and /dev/null differ diff --git a/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.md5 b/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.md5 deleted file mode 100644 index 0af7a7275..000000000 --- a/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -f2e5ee7e8e218fe7daac79ea04d08d1c \ No newline at end of file diff --git a/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.png b/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.png deleted file mode 100644 index 1f7f99c7e..000000000 Binary files a/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.png and /dev/null differ diff --git a/docs/class_n_m_e_a_parser_a8687b75207c6df0c049721fe5a586913_icgraph.map b/docs/class_n_m_e_a_parser_a8687b75207c6df0c049721fe5a586913_icgraph.map deleted file mode 100644 index aa94df842..000000000 --- a/docs/class_n_m_e_a_parser_a8687b75207c6df0c049721fe5a586913_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_n_m_e_a_parser_a8687b75207c6df0c049721fe5a586913_icgraph.md5 b/docs/class_n_m_e_a_parser_a8687b75207c6df0c049721fe5a586913_icgraph.md5 deleted file mode 100644 index 518151cec..000000000 --- a/docs/class_n_m_e_a_parser_a8687b75207c6df0c049721fe5a586913_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -d23e22573d92a5ad1beca1c90d8ff5dd \ No newline at end of file diff --git a/docs/class_n_m_e_a_parser_a8687b75207c6df0c049721fe5a586913_icgraph.png b/docs/class_n_m_e_a_parser_a8687b75207c6df0c049721fe5a586913_icgraph.png deleted file mode 100644 index 86915b8ee..000000000 Binary files a/docs/class_n_m_e_a_parser_a8687b75207c6df0c049721fe5a586913_icgraph.png and /dev/null differ diff --git a/docs/class_networking.html b/docs/class_networking.html deleted file mode 100644 index a31519e97..000000000 --- a/docs/class_networking.html +++ /dev/null @@ -1,564 +0,0 @@ - - - - - - - -SensESP: Networking Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
Networking Class Reference
-
-
- -

#include <networking.h>

-
-Inheritance diagram for Networking:
-
-
Inheritance graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Networking (String config_path)
 
void setup (std::function< void(bool)> connection_cb)
 
ObservableValue< String > * get_hostname ()
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override final
 
virtual bool set_configuration (const JsonObject &config) override final
 
virtual String get_config_schema () override
 
void set_hostname (String hostname)
 
void reset_settings ()
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- - - - - - - - - - -

-Protected Member Functions

void check_connection ()
 
void setup_saved_ssid (std::function< void(bool)> connection_cb)
 
void setup_wifi_manager (std::function< void(bool)> connection_cb)
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- - - - -

-Additional Inherited Members

- Public Attributes inherited from Configurable
const String config_path
 
-

Detailed Description

-
-

Definition at line 13 of file networking.h.

-

Constructor & Destructor Documentation

- -

◆ Networking()

- -
-
- - - - - - - - -
Networking::Networking (String config_path)
-
- -

Definition at line 20 of file networking.cpp.

- -
-
-

Member Function Documentation

- -

◆ check_connection()

- -
-
- - - - - -
- - - - - - - -
void Networking::check_connection ()
-
-protected
-
- -

Definition at line 29 of file networking.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - - -
- -
-
- -

◆ get_config_schema()

- -
-
- - - - - -
- - - - - - - -
String Networking::get_config_schema ()
-
-overridevirtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented from Configurable.

- -

Definition at line 120 of file networking.cpp.

- -
-
- -

◆ get_configuration()

- -
-
- - - - - -
- - - - - - - - -
JsonObject & Networking::get_configuration (JsonBuffer & buf)
-
-finaloverridevirtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented from Configurable.

- -

Definition at line 124 of file networking.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
- -

◆ get_hostname()

- -
-
- - - - - - - -
ObservableValue< String > * Networking::get_hostname ()
-
- -

Definition at line 102 of file networking.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - - - -
- -
-
- -

◆ reset_settings()

- -
-
- - - - - - - -
void Networking::reset_settings ()
-
- -

Definition at line 143 of file networking.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - - -
-
-Here is the caller graph for this function:
-
-
- - - - - -
- -
-
- -

◆ set_configuration()

- -
-
- - - - - -
- - - - - - - - -
bool Networking::set_configuration (const JsonObject & config)
-
-finaloverridevirtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented from Configurable.

- -

Definition at line 133 of file networking.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
- -

◆ set_hostname()

- -
-
- - - - - - - - -
void Networking::set_hostname (String hostname)
-
- -

Definition at line 106 of file networking.cpp.

- -
-
- -

◆ setup()

- -
-
- - - - - - - - -
void Networking::setup (std::function< void(bool)> connection_cb)
-
- -

Definition at line 37 of file networking.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - - - - - - - -
-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ setup_saved_ssid()

- -
-
- - - - - -
- - - - - - - - -
void Networking::setup_saved_ssid (std::function< void(bool)> connection_cb)
-
-protected
-
- -

Definition at line 47 of file networking.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - - -
- -
-
- -

◆ setup_wifi_manager()

- -
-
- - - - - -
- - - - - - - - -
void Networking::setup_wifi_manager (std::function< void(bool)> connection_cb)
-
-protected
-
- -

Definition at line 66 of file networking.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - - - - -
-
-Here is the caller graph for this function:
-
-
- - - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_networking.js b/docs/class_networking.js deleted file mode 100644 index 999eb299c..000000000 --- a/docs/class_networking.js +++ /dev/null @@ -1,14 +0,0 @@ -var class_networking = -[ - [ "Networking", "class_networking.html#a4b8c4d193f59be9aea6b09fd36b4f956", null ], - [ "check_connection", "class_networking.html#ae4b12924970227730df3377144301a7c", null ], - [ "get_config_schema", "class_networking.html#a253025ed2a3c36eb998e7b900155359e", null ], - [ "get_configuration", "class_networking.html#a2b8f2f52b332dc0af375113a64881a8a", null ], - [ "get_hostname", "class_networking.html#a7a3cac2e878aa2c513451f235c70aff7", null ], - [ "reset_settings", "class_networking.html#a207f306c10b8f65ca0904cc26a9ef15c", null ], - [ "set_configuration", "class_networking.html#a59d475a2f12b88ef8334274a9a0b1cee", null ], - [ "set_hostname", "class_networking.html#a500aa01c7d7da3d823a43c40212353f5", null ], - [ "setup", "class_networking.html#a94815dd34af734e9fc3839cbe6279355", null ], - [ "setup_saved_ssid", "class_networking.html#a91507b52fbc31dd34d143c8a5634027e", null ], - [ "setup_wifi_manager", "class_networking.html#a082fa99914f8f6f277b640667877c85e", null ] -]; \ No newline at end of file diff --git a/docs/class_networking__inherit__graph.md5 b/docs/class_networking__inherit__graph.md5 deleted file mode 100644 index c610ca58b..000000000 --- a/docs/class_networking__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d1e9bb88e14ec7ac16391d425e1cee33 \ No newline at end of file diff --git a/docs/class_networking__inherit__graph.png b/docs/class_networking__inherit__graph.png deleted file mode 100644 index e3229b450..000000000 Binary files a/docs/class_networking__inherit__graph.png and /dev/null differ diff --git a/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.map b/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.map deleted file mode 100644 index fc753ee5f..000000000 --- a/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.md5 b/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.md5 deleted file mode 100644 index 69774db23..000000000 --- a/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -c533148322fb93f73966f3fc7c8e01b2 \ No newline at end of file diff --git a/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.png b/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.png deleted file mode 100644 index 15a6c44cf..000000000 Binary files a/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.png and /dev/null differ diff --git a/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.map b/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.map deleted file mode 100644 index 925fd479c..000000000 --- a/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.md5 b/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.md5 deleted file mode 100644 index 09a7b4bd4..000000000 --- a/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -64a86a889743c33a457be0889a8f02fd \ No newline at end of file diff --git a/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.png b/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.png deleted file mode 100644 index b4a5a9223..000000000 Binary files a/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.png and /dev/null differ diff --git a/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.map b/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.map deleted file mode 100644 index 3e968c600..000000000 --- a/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.md5 b/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.md5 deleted file mode 100644 index 61a436cb0..000000000 --- a/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -a9be3905dbea182f6eeeb873e3a6fce9 \ No newline at end of file diff --git a/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.png b/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.png deleted file mode 100644 index a5cb45248..000000000 Binary files a/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.png and /dev/null differ diff --git a/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.map b/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.map deleted file mode 100644 index 881aa5d3b..000000000 --- a/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.md5 b/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.md5 deleted file mode 100644 index e9e8bd15a..000000000 --- a/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -45c1fec048496a5cc1e29463fe6b2ab3 \ No newline at end of file diff --git a/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.png b/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.png deleted file mode 100644 index 2dfd48c9b..000000000 Binary files a/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.png and /dev/null differ diff --git a/docs/class_networking_a2b8f2f52b332dc0af375113a64881a8a_cgraph.md5 b/docs/class_networking_a2b8f2f52b332dc0af375113a64881a8a_cgraph.md5 deleted file mode 100644 index 7dceb4035..000000000 --- a/docs/class_networking_a2b8f2f52b332dc0af375113a64881a8a_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -ba4eb31678dd3c07970ac9aa328b3212 \ No newline at end of file diff --git a/docs/class_networking_a2b8f2f52b332dc0af375113a64881a8a_cgraph.png b/docs/class_networking_a2b8f2f52b332dc0af375113a64881a8a_cgraph.png deleted file mode 100644 index 41edbbbf2..000000000 Binary files a/docs/class_networking_a2b8f2f52b332dc0af375113a64881a8a_cgraph.png and /dev/null differ diff --git a/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.md5 b/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.md5 deleted file mode 100644 index 0bc17632a..000000000 --- a/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -beb146117dc5325eca94fa3436ddfb47 \ No newline at end of file diff --git a/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.png b/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.png deleted file mode 100644 index 40eca0044..000000000 Binary files a/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.png and /dev/null differ diff --git a/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.map b/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.map deleted file mode 100644 index c11c634d0..000000000 --- a/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.md5 b/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.md5 deleted file mode 100644 index f1970bbbd..000000000 --- a/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -fea4f9f6327e632800b8571617764e98 \ No newline at end of file diff --git a/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.png b/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.png deleted file mode 100644 index 1820a034b..000000000 Binary files a/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.png and /dev/null differ diff --git a/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.map b/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.map deleted file mode 100644 index 32c4751d2..000000000 --- a/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.md5 b/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.md5 deleted file mode 100644 index ac3f0238c..000000000 --- a/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -06cbeeb4a81476a2d29fbdd87ff66d29 \ No newline at end of file diff --git a/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.png b/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.png deleted file mode 100644 index f838212a4..000000000 Binary files a/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.png and /dev/null differ diff --git a/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.map b/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.map deleted file mode 100644 index 9844229e0..000000000 --- a/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.md5 b/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.md5 deleted file mode 100644 index 69c6f4a14..000000000 --- a/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -9f501ed336e58059d32e6ab84541e7ee \ No newline at end of file diff --git a/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.png b/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.png deleted file mode 100644 index 0be970537..000000000 Binary files a/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.png and /dev/null differ diff --git a/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.map b/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.map deleted file mode 100644 index 57ccbba50..000000000 --- a/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.md5 b/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.md5 deleted file mode 100644 index d04fb71fc..000000000 --- a/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -f9eef12e2f1b3057182dd87a6cf1fe85 \ No newline at end of file diff --git a/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.png b/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.png deleted file mode 100644 index 993ff9616..000000000 Binary files a/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.png and /dev/null differ diff --git a/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.map b/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.map deleted file mode 100644 index 111b3657d..000000000 --- a/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.md5 b/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.md5 deleted file mode 100644 index 1622bde06..000000000 --- a/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -fbb54bead0dece201275192ba5ee0726 \ No newline at end of file diff --git a/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.png b/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.png deleted file mode 100644 index 9bbc1b7c8..000000000 Binary files a/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.png and /dev/null differ diff --git a/docs/class_numeric_sensor-members.html b/docs/class_numeric_sensor-members.html deleted file mode 100644 index f7f8833af..000000000 --- a/docs/class_numeric_sensor-members.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
NumericSensor Member List
-
-
- -

This is the complete list of members for NumericSensor, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_sensors()Sensorinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_numeric_sensor__inherit__graph.map b/docs/class_numeric_sensor__inherit__graph.map deleted file mode 100644 index 2c779155f..000000000 --- a/docs/class_numeric_sensor__inherit__graph.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/docs/class_numeric_sensor__inherit__graph.md5 b/docs/class_numeric_sensor__inherit__graph.md5 deleted file mode 100644 index 7a6a93569..000000000 --- a/docs/class_numeric_sensor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3d3ce3918ac6d8dd3a1b1585fc93bac2 \ No newline at end of file diff --git a/docs/class_numeric_sensor__inherit__graph.png b/docs/class_numeric_sensor__inherit__graph.png deleted file mode 100644 index cc41f52c3..000000000 Binary files a/docs/class_numeric_sensor__inherit__graph.png and /dev/null differ diff --git a/docs/class_observable.html b/docs/class_observable.html deleted file mode 100644 index eddc2f9cb..000000000 --- a/docs/class_observable.html +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - - -SensESP: Observable Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
Observable Class Reference
-
-
- -

#include <observable.h>

-
-Inheritance diagram for Observable:
-
-
Inheritance graph
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[legend]
- - - - - - -

-Public Member Functions

void notify ()
 
void attach (std::function< void()> observer)
 
-

Detailed Description

-
-

Definition at line 15 of file observable.h.

-

Member Function Documentation

- -

◆ attach()

- -
-
- - - - - - - - -
void Observable::attach (std::function< void()> observer)
-
- -

Definition at line 9 of file observable.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - - - - -
- -
-
- -

◆ notify()

- -
-
- - - - - - - -
void Observable::notify ()
-
- -

Definition at line 3 of file observable.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - - - - - - - - - - - - - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_observable__inherit__graph.map b/docs/class_observable__inherit__graph.map deleted file mode 100644 index f8c1ba727..000000000 --- a/docs/class_observable__inherit__graph.map +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/class_observable__inherit__graph.md5 b/docs/class_observable__inherit__graph.md5 deleted file mode 100644 index c2de6b22d..000000000 --- a/docs/class_observable__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -5652e601a7834de51b2986c575e6cfdb \ No newline at end of file diff --git a/docs/class_observable__inherit__graph.png b/docs/class_observable__inherit__graph.png deleted file mode 100644 index 3dca56f78..000000000 Binary files a/docs/class_observable__inherit__graph.png and /dev/null differ diff --git a/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.map b/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.map deleted file mode 100644 index 5b38d2074..000000000 --- a/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.map +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.md5 b/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.md5 deleted file mode 100644 index 09d8b54c8..000000000 --- a/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -f34c64ee025a313a00c822a20ae8d237 \ No newline at end of file diff --git a/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.png b/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.png deleted file mode 100644 index 00c625ff1..000000000 Binary files a/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.png and /dev/null differ diff --git a/docs/class_observable_af72ed9c9cf7157a33caad4b930232e69_icgraph.map b/docs/class_observable_af72ed9c9cf7157a33caad4b930232e69_icgraph.map deleted file mode 100644 index 1533ea039..000000000 --- a/docs/class_observable_af72ed9c9cf7157a33caad4b930232e69_icgraph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/class_observable_af72ed9c9cf7157a33caad4b930232e69_icgraph.md5 b/docs/class_observable_af72ed9c9cf7157a33caad4b930232e69_icgraph.md5 deleted file mode 100644 index dee3b78f8..000000000 --- a/docs/class_observable_af72ed9c9cf7157a33caad4b930232e69_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -de4f050b67ab3096d1972087d33f3afc \ No newline at end of file diff --git a/docs/class_observable_af72ed9c9cf7157a33caad4b930232e69_icgraph.png b/docs/class_observable_af72ed9c9cf7157a33caad4b930232e69_icgraph.png deleted file mode 100644 index 98d5e89f7..000000000 Binary files a/docs/class_observable_af72ed9c9cf7157a33caad4b930232e69_icgraph.png and /dev/null differ diff --git a/docs/class_observable_value.html b/docs/class_observable_value.html deleted file mode 100644 index e58087a8d..000000000 --- a/docs/class_observable_value.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - - -SensESP: ObservableValue< T > Class Template Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
ObservableValue< T > Class Template Reference
-
-
- -

#include <observablevalue.h>

-
-Inheritance diagram for ObservableValue< T >:
-
-
Inheritance graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 ObservableValue ()
 
 ObservableValue (const T &value)
 
void set (const T &value)
 
const T & operator= (const T &value)
 
- Public Member Functions inherited from ValueProducer< T >
 ValueProducer ()
 
virtual const T & get ()
 
void connectTo (ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)
 
template<typename T2 >
Transform< T, T2 > * connectTo (Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - -

-Additional Inherited Members

- Protected Attributes inherited from ValueProducer< T >
output
 
-

Detailed Description

-

template<class T>
-class ObservableValue< T >

- - -

Definition at line 12 of file observablevalue.h.

-

Constructor & Destructor Documentation

- -

◆ ObservableValue() [1/2]

- -
-
-
-template<class T>
- - - - - -
- - - - - - - -
ObservableValue< T >::ObservableValue ()
-
-inline
-
- -

Definition at line 14 of file observablevalue.h.

- -
-
- -

◆ ObservableValue() [2/2]

- -
-
-
-template<class T>
- - - - - -
- - - - - - - - -
ObservableValue< T >::ObservableValue (const T & value)
-
-inline
-
- -

Definition at line 16 of file observablevalue.h.

- -
-
-

Member Function Documentation

- -

◆ operator=()

- -
-
-
-template<class T>
- - - - - -
- - - - - - - - -
const T& ObservableValue< T >::operator= (const T & value)
-
-inline
-
- -

Definition at line 25 of file observablevalue.h.

- -
-
- -

◆ set()

- -
-
-
-template<class T>
- - - - - -
- - - - - - - - -
void ObservableValue< T >::set (const T & value)
-
-inline
-
- -

Definition at line 20 of file observablevalue.h.

-
-Here is the caller graph for this function:
-
-
- - - - - - - - - - - - - - - - -
- -
-
-
The documentation for this class was generated from the following file: -
-
- - - - diff --git a/docs/class_observable_value__inherit__graph.map b/docs/class_observable_value__inherit__graph.map deleted file mode 100644 index 3d7242fc6..000000000 --- a/docs/class_observable_value__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_observable_value__inherit__graph.md5 b/docs/class_observable_value__inherit__graph.md5 deleted file mode 100644 index de41bd723..000000000 --- a/docs/class_observable_value__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -497c1e2567b4064880798ca3d69f29f3 \ No newline at end of file diff --git a/docs/class_observable_value__inherit__graph.png b/docs/class_observable_value__inherit__graph.png deleted file mode 100644 index 2ec0b7896..000000000 Binary files a/docs/class_observable_value__inherit__graph.png and /dev/null differ diff --git a/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.map b/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.map deleted file mode 100644 index cea617903..000000000 --- a/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.map +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.md5 b/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.md5 deleted file mode 100644 index 9f6947fd2..000000000 --- a/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -28ce73370ebe8a88507eac1beaedd73b \ No newline at end of file diff --git a/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.png b/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.png deleted file mode 100644 index b66a43ea8..000000000 Binary files a/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.png and /dev/null differ diff --git a/docs/class_one_wire_temperature-members.html b/docs/class_one_wire_temperature-members.html deleted file mode 100644 index cc80803d7..000000000 --- a/docs/class_one_wire_temperature-members.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
OneWireTemperature Member List
-
-
- -

This is the complete list of members for OneWireTemperature, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
enable() override finalOneWireTemperaturevirtual
Enable(uint8_t priority=0)Enable
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema() overrideOneWireTemperaturevirtual
get_configuration(JsonBuffer &buf) override finalOneWireTemperaturevirtual
get_sensors()Sensorinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
OneWireTemperature(DallasTemperatureSensors *dts, String config_path="")OneWireTemperature
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config) override finalOneWireTemperaturevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_one_wire_temperature.js b/docs/class_one_wire_temperature.js deleted file mode 100644 index 2c8c5dd30..000000000 --- a/docs/class_one_wire_temperature.js +++ /dev/null @@ -1,8 +0,0 @@ -var class_one_wire_temperature = -[ - [ "OneWireTemperature", "class_one_wire_temperature.html#a6ceb584282ee0949f76a35ca5ae40a51", null ], - [ "enable", "class_one_wire_temperature.html#a86817f083dfb5e9373b48d8fd1f8d165", null ], - [ "get_config_schema", "class_one_wire_temperature.html#a4331b2b91d6c7d000454e741cdce9d0a", null ], - [ "get_configuration", "class_one_wire_temperature.html#a4a1058669383f507ed70bd46f9f0d2f0", null ], - [ "set_configuration", "class_one_wire_temperature.html#a83bce20a52e396dbd97a43a6e72b2824", null ] -]; \ No newline at end of file diff --git a/docs/class_one_wire_temperature__inherit__graph.map b/docs/class_one_wire_temperature__inherit__graph.map deleted file mode 100644 index a252852eb..000000000 --- a/docs/class_one_wire_temperature__inherit__graph.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/class_one_wire_temperature__inherit__graph.md5 b/docs/class_one_wire_temperature__inherit__graph.md5 deleted file mode 100644 index d17af3e7b..000000000 --- a/docs/class_one_wire_temperature__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -43593ca02d20a643da6839eb3956744d \ No newline at end of file diff --git a/docs/class_one_wire_temperature__inherit__graph.png b/docs/class_one_wire_temperature__inherit__graph.png deleted file mode 100644 index 01f396747..000000000 Binary files a/docs/class_one_wire_temperature__inherit__graph.png and /dev/null differ diff --git a/docs/class_one_wire_temperature_a4a1058669383f507ed70bd46f9f0d2f0_cgraph.md5 b/docs/class_one_wire_temperature_a4a1058669383f507ed70bd46f9f0d2f0_cgraph.md5 deleted file mode 100644 index dbe55d641..000000000 --- a/docs/class_one_wire_temperature_a4a1058669383f507ed70bd46f9f0d2f0_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -ff05a9822f96a1ce2fa244f5ea9ea765 \ No newline at end of file diff --git a/docs/class_one_wire_temperature_a4a1058669383f507ed70bd46f9f0d2f0_cgraph.png b/docs/class_one_wire_temperature_a4a1058669383f507ed70bd46f9f0d2f0_cgraph.png deleted file mode 100644 index a2d52626e..000000000 Binary files a/docs/class_one_wire_temperature_a4a1058669383f507ed70bd46f9f0d2f0_cgraph.png and /dev/null differ diff --git a/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.md5 b/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.md5 deleted file mode 100644 index 04678bc80..000000000 --- a/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -2f026bfc5b9611b51c4224574a37f527 \ No newline at end of file diff --git a/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.png b/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.png deleted file mode 100644 index 0a222e4b9..000000000 Binary files a/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.png and /dev/null differ diff --git a/docs/class_p_s_t_i030_sentence_parser__inherit__graph.md5 b/docs/class_p_s_t_i030_sentence_parser__inherit__graph.md5 deleted file mode 100644 index 787e641c8..000000000 --- a/docs/class_p_s_t_i030_sentence_parser__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -9808dc4077f2a7c153de32f3e94b743c \ No newline at end of file diff --git a/docs/class_p_s_t_i030_sentence_parser__inherit__graph.png b/docs/class_p_s_t_i030_sentence_parser__inherit__graph.png deleted file mode 100644 index 477636ffe..000000000 Binary files a/docs/class_p_s_t_i030_sentence_parser__inherit__graph.png and /dev/null differ diff --git a/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.md5 b/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.md5 deleted file mode 100644 index f369825ea..000000000 --- a/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -a8538cb61cb6fffb07578e01fb549a2b \ No newline at end of file diff --git a/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.png b/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.png deleted file mode 100644 index 45b720874..000000000 Binary files a/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.png and /dev/null differ diff --git a/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.map b/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.map deleted file mode 100644 index d7acd1906..000000000 --- a/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.map +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.md5 b/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.md5 deleted file mode 100644 index 6df48a02f..000000000 --- a/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -86f8c9bd89f57d030a6493f1ee803c85 \ No newline at end of file diff --git a/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.png b/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.png deleted file mode 100644 index a9192d751..000000000 Binary files a/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.png and /dev/null differ diff --git a/docs/class_p_s_t_i032_sentence_parser__inherit__graph.md5 b/docs/class_p_s_t_i032_sentence_parser__inherit__graph.md5 deleted file mode 100644 index 49f6e7288..000000000 --- a/docs/class_p_s_t_i032_sentence_parser__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -782532c7876477aded446cb441d976e0 \ No newline at end of file diff --git a/docs/class_p_s_t_i032_sentence_parser__inherit__graph.png b/docs/class_p_s_t_i032_sentence_parser__inherit__graph.png deleted file mode 100644 index b2df36349..000000000 Binary files a/docs/class_p_s_t_i032_sentence_parser__inherit__graph.png and /dev/null differ diff --git a/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.map b/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.map deleted file mode 100644 index e93fd8ada..000000000 --- a/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.md5 b/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.md5 deleted file mode 100644 index 5dc3e7ce9..000000000 --- a/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -9c477c0019cfaa6b0fa286ff4a014161 \ No newline at end of file diff --git a/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.png b/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.png deleted file mode 100644 index 633f71854..000000000 Binary files a/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.png and /dev/null differ diff --git a/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.md5 b/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.md5 deleted file mode 100644 index c062ec968..000000000 --- a/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -1d02abecaafda5ddf020a0f6427267dd \ No newline at end of file diff --git a/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.png b/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.png deleted file mode 100644 index a72ec8bbd..000000000 Binary files a/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.png and /dev/null differ diff --git a/docs/class_p_s_t_i_sentence_parser__inherit__graph.md5 b/docs/class_p_s_t_i_sentence_parser__inherit__graph.md5 deleted file mode 100644 index 7cb307a85..000000000 --- a/docs/class_p_s_t_i_sentence_parser__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -f5ee29b88e900a7c880e493acab72e66 \ No newline at end of file diff --git a/docs/class_p_s_t_i_sentence_parser__inherit__graph.png b/docs/class_p_s_t_i_sentence_parser__inherit__graph.png deleted file mode 100644 index 471c3e675..000000000 Binary files a/docs/class_p_s_t_i_sentence_parser__inherit__graph.png and /dev/null differ diff --git a/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.md5 b/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.md5 deleted file mode 100644 index 0a38b8941..000000000 --- a/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -438164142174918971428c33ed8f0418 \ No newline at end of file diff --git a/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.png b/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.png deleted file mode 100644 index 14bba510b..000000000 Binary files a/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.png and /dev/null differ diff --git a/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.md5 b/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.md5 deleted file mode 100644 index 7efcff4db..000000000 --- a/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -41f10b631b77fcc5d69d68bcf0376375 \ No newline at end of file diff --git a/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.png b/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.png deleted file mode 100644 index b5bf21eff..000000000 Binary files a/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.png and /dev/null differ diff --git a/docs/class_s_k_delta_a74ab20a661a4f80a336b50fccc4bd9bc_icgraph.map b/docs/class_s_k_delta_a74ab20a661a4f80a336b50fccc4bd9bc_icgraph.map deleted file mode 100644 index 03bfa3c10..000000000 --- a/docs/class_s_k_delta_a74ab20a661a4f80a336b50fccc4bd9bc_icgraph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/class_s_k_delta_a74ab20a661a4f80a336b50fccc4bd9bc_icgraph.md5 b/docs/class_s_k_delta_a74ab20a661a4f80a336b50fccc4bd9bc_icgraph.md5 deleted file mode 100644 index 10a6b86b1..000000000 --- a/docs/class_s_k_delta_a74ab20a661a4f80a336b50fccc4bd9bc_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -b7273a82886b9fb61acc496ff70eae40 \ No newline at end of file diff --git a/docs/class_s_k_delta_a74ab20a661a4f80a336b50fccc4bd9bc_icgraph.png b/docs/class_s_k_delta_a74ab20a661a4f80a336b50fccc4bd9bc_icgraph.png deleted file mode 100644 index 8ffc7307c..000000000 Binary files a/docs/class_s_k_delta_a74ab20a661a4f80a336b50fccc4bd9bc_icgraph.png and /dev/null differ diff --git a/docs/class_s_k_delta_ab1592b494b343964703102a4797d3bbc_icgraph.map b/docs/class_s_k_delta_ab1592b494b343964703102a4797d3bbc_icgraph.map deleted file mode 100644 index de7ac136d..000000000 --- a/docs/class_s_k_delta_ab1592b494b343964703102a4797d3bbc_icgraph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/class_s_k_delta_ab1592b494b343964703102a4797d3bbc_icgraph.md5 b/docs/class_s_k_delta_ab1592b494b343964703102a4797d3bbc_icgraph.md5 deleted file mode 100644 index 063cf83dc..000000000 --- a/docs/class_s_k_delta_ab1592b494b343964703102a4797d3bbc_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -032449b91055741991cbaf90edd34c0b \ No newline at end of file diff --git a/docs/class_s_k_delta_ab1592b494b343964703102a4797d3bbc_icgraph.png b/docs/class_s_k_delta_ab1592b494b343964703102a4797d3bbc_icgraph.png deleted file mode 100644 index ac629a87f..000000000 Binary files a/docs/class_s_k_delta_ab1592b494b343964703102a4797d3bbc_icgraph.png and /dev/null differ diff --git a/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.map b/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.map deleted file mode 100644 index d44e9be15..000000000 --- a/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.md5 b/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.md5 deleted file mode 100644 index 1fa35f9bd..000000000 --- a/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -5aeeb515270d9214a9c70ac710e18b14 \ No newline at end of file diff --git a/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.png b/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.png deleted file mode 100644 index de40d8a52..000000000 Binary files a/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.png and /dev/null differ diff --git a/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.map b/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.map deleted file mode 100644 index b7a4c8503..000000000 --- a/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.md5 b/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.md5 deleted file mode 100644 index 75b62effb..000000000 --- a/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -9e183131672c36b3b25173d8a6758d4e \ No newline at end of file diff --git a/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.png b/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.png deleted file mode 100644 index 085137084..000000000 Binary files a/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.png and /dev/null differ diff --git a/docs/class_s_k_emitter__inherit__graph.md5 b/docs/class_s_k_emitter__inherit__graph.md5 deleted file mode 100644 index e46cbf655..000000000 --- a/docs/class_s_k_emitter__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b7f321761f732409cac3619b5e83fbf0 \ No newline at end of file diff --git a/docs/class_s_k_emitter__inherit__graph.png b/docs/class_s_k_emitter__inherit__graph.png deleted file mode 100644 index 59823fe6b..000000000 Binary files a/docs/class_s_k_emitter__inherit__graph.png and /dev/null differ diff --git a/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.map b/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.map deleted file mode 100644 index 897a29b47..000000000 --- a/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.md5 b/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.md5 deleted file mode 100644 index 29a016874..000000000 --- a/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -f24ca158081c332858f90275a523582b \ No newline at end of file diff --git a/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.png b/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.png deleted file mode 100644 index 2c6f32075..000000000 Binary files a/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.png and /dev/null differ diff --git a/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.md5 b/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.md5 deleted file mode 100644 index 7e2523a04..000000000 --- a/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -1401d965a73878552c8c4f33bd70cf21 \ No newline at end of file diff --git a/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.png b/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.png deleted file mode 100644 index ec1fc3b53..000000000 Binary files a/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.png and /dev/null differ diff --git a/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.map b/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.map deleted file mode 100644 index 449d26bb3..000000000 --- a/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.md5 b/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.md5 deleted file mode 100644 index a41c05c01..000000000 --- a/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -3129c516d1fdf9939fd7a5ede2118e53 \ No newline at end of file diff --git a/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.png b/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.png deleted file mode 100644 index 3b70e2c98..000000000 Binary files a/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.png and /dev/null differ diff --git a/docs/class_s_k_output-members.html b/docs/class_s_k_output-members.html deleted file mode 100644 index 0f4c668c4..000000000 --- a/docs/class_s_k_output-members.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SKOutput< T > Member List
-
-
- -

This is the complete list of members for SKOutput< T >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
as_signalK() overrideSKOutput< T >inlinevirtual
as_signalK()SKOutput< T >virtual
as_signalK()SKOutput< T >virtual
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< T > *pProducer0, ValueProducer< T > *pProducer1=NULL, ValueProducer< T > *pProducer2=NULL, ValueProducer< T > *pProducer3=NULL, ValueProducer< T > *pProducer4=NULL)Transform< T, T >inline
ValueConsumer::connectFrom(ValueProducer< T > *pProducer, uint8_t inputChannel=0)ValueConsumer< T >inline
connectTo(ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)ValueProducer< T >inline
connectTo(Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< T >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< T >inlinevirtual
get_config_schema() overrideSKOutput< T >inlinevirtual
get_configuration(JsonBuffer &buf) overrideSKOutput< T >inlinevirtual
get_sk_path()SKEmitterinline
get_sources()SKEmitterinlinestatic
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< T >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config) overrideSKOutput< T >inlinevirtual
set_input(T newValue, uint8_t inputChannel=0) overrideSKOutput< T >inlinevirtual
set_sk_path(const String &path)SKEmitterinline
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
sk_pathSKEmitterprotected
SKEmitter(String sk_path)SKEmitter
SKOutput()SKOutput< T >inline
SKOutput(String sk_path, String config_path="")SKOutput< T >inline
SymmetricTransform(String config_path="")SymmetricTransform< T >inline
Transform(String config_path="")Transform< T, T >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< T >inline
-
- - - - diff --git a/docs/class_s_k_output.html b/docs/class_s_k_output.html deleted file mode 100644 index 38a768b0a..000000000 --- a/docs/class_s_k_output.html +++ /dev/null @@ -1,599 +0,0 @@ - - - - - - - -SensESP: SKOutput< T > Class Template Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SKOutput< T > Class Template Reference
-
-
- -

#include <signalk_output.h>

-
-Inheritance diagram for SKOutput< T >:
-
-
Inheritance graph
- - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 SKOutput ()
 
 SKOutput (String sk_path, String config_path="")
 
virtual void set_input (T newValue, uint8_t inputChannel=0) override
 
virtual String as_signalK () override
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override
 
String get_config_schema () override
 
virtual bool set_configuration (const JsonObject &config) override
 
template<>
String as_signalK ()
 
template<>
String as_signalK ()
 
- Public Member Functions inherited from SKEmitter
 SKEmitter (String sk_path)
 
String & get_sk_path ()
 
void set_sk_path (const String &path)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from SymmetricTransform< T >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< T, T >
 Transform (String config_path="")
 
Transform< T, T > * connectFrom (ValueProducer< T > *pProducer0, ValueProducer< T > *pProducer1=NULL, ValueProducer< T > *pProducer2=NULL, ValueProducer< T > *pProducer3=NULL, ValueProducer< T > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< T >
void connectFrom (ValueProducer< T > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< T >
 ValueProducer ()
 
virtual const T & get ()
 
void connectTo (ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)
 
template<typename T2 >
Transform< T, T2 > * connectTo (Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from SKEmitter
static const std::vector< SKEmitter * > & get_sources ()
 
- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from SKEmitter
String sk_path
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< T >
output
 
-

Detailed Description

-

template<typename T>
-class SKOutput< T >

- - -

Definition at line 17 of file signalk_output.h.

-

Constructor & Destructor Documentation

- -

◆ SKOutput() [1/2]

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

Definition at line 20 of file signalk_output.h.

- -
-
- -

◆ SKOutput() [2/2]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - -
SKOutput< T >::SKOutput (String sk_path,
String config_path = "" 
)
-
-inline
-
- -

Definition at line 22 of file signalk_output.h.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-

Member Function Documentation

- -

◆ as_signalK() [1/3]

- -
-
-
-template<>
- - - - - -
- - - - - - - -
String SKOutput< Position >::as_signalK ()
-
-virtual
-
-

Returns the data to be reported to the server as a SignalK json string.

- -

Reimplemented from SKEmitter.

- -

Definition at line 5 of file signalk_position.cpp.

- -
-
- -

◆ as_signalK() [2/3]

- -
-
-
-template<>
- - - - - -
- - - - - - - -
String SKOutput< Position >::as_signalK ()
-
-virtual
-
-

Returns the data to be reported to the server as a SignalK json string.

- -

Reimplemented from SKEmitter.

- -
-
- -

◆ as_signalK() [3/3]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - -
virtual String SKOutput< T >::as_signalK ()
-
-inlineoverridevirtual
-
-

Returns the data to be reported to the server as a SignalK json string.

- -

Reimplemented from SKEmitter.

- -

Definition at line 35 of file signalk_output.h.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
- -

◆ get_config_schema()

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - -
String SKOutput< T >::get_config_schema ()
-
-inlineoverridevirtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented from Configurable.

- -

Definition at line 51 of file signalk_output.h.

- -
-
- -

◆ get_configuration()

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
virtual JsonObject& SKOutput< T >::get_configuration (JsonBuffer & buf)
-
-inlineoverridevirtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented from Configurable.

- -

Definition at line 45 of file signalk_output.h.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
- -

◆ set_configuration()

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
virtual bool SKOutput< T >::set_configuration (const JsonObject & config)
-
-inlineoverridevirtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented from Configurable.

- -

Definition at line 55 of file signalk_output.h.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
- -

◆ set_input()

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - -
virtual void SKOutput< T >::set_input (newValue,
uint8_t inputChannel = 0 
)
-
-inlineoverridevirtual
-
-

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
- - - -
newValuethe value of the input
inputChannelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
-
-
- -

Reimplemented from ValueConsumer< T >.

- -

Definition at line 29 of file signalk_output.h.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-
The documentation for this class was generated from the following file: -
-
- - - - diff --git a/docs/class_s_k_output.js b/docs/class_s_k_output.js deleted file mode 100644 index 5fb618024..000000000 --- a/docs/class_s_k_output.js +++ /dev/null @@ -1,12 +0,0 @@ -var class_s_k_output = -[ - [ "SKOutput", "class_s_k_output.html#a88f9638dd4779818b41a62738ba44876", null ], - [ "SKOutput", "class_s_k_output.html#a811a99c30626b6840000b0c152aa1f37", null ], - [ "as_signalK", "class_s_k_output.html#afb74fff00aed31212a5150035ddacd4e", null ], - [ "as_signalK", "class_s_k_output.html#afb74fff00aed31212a5150035ddacd4e", null ], - [ "as_signalK", "class_s_k_output.html#a07b3524ca9ffa1dff03f4bf522d9e3d2", null ], - [ "get_config_schema", "class_s_k_output.html#a0f29018517bcb51943dae1dd7bbace0a", null ], - [ "get_configuration", "class_s_k_output.html#a1020f0eb3e0eb6bc10f57034c7fbc0c6", null ], - [ "set_configuration", "class_s_k_output.html#a406e7e56220dd41bd567c56c0e6b9a4d", null ], - [ "set_input", "class_s_k_output.html#a43d76eef72e8dad90ee13a001c265be8", null ] -]; \ No newline at end of file diff --git a/docs/class_s_k_output__inherit__graph.map b/docs/class_s_k_output__inherit__graph.map deleted file mode 100644 index d609913a7..000000000 --- a/docs/class_s_k_output__inherit__graph.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/docs/class_s_k_output__inherit__graph.md5 b/docs/class_s_k_output__inherit__graph.md5 deleted file mode 100644 index 116324fed..000000000 --- a/docs/class_s_k_output__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -25b88b16246543e526cd2824e739c5b8 \ No newline at end of file diff --git a/docs/class_s_k_output__inherit__graph.png b/docs/class_s_k_output__inherit__graph.png deleted file mode 100644 index e4342b6fc..000000000 Binary files a/docs/class_s_k_output__inherit__graph.png and /dev/null differ diff --git a/docs/class_s_k_output_a07b3524ca9ffa1dff03f4bf522d9e3d2_cgraph.map b/docs/class_s_k_output_a07b3524ca9ffa1dff03f4bf522d9e3d2_cgraph.map deleted file mode 100644 index 55c7ab195..000000000 --- a/docs/class_s_k_output_a07b3524ca9ffa1dff03f4bf522d9e3d2_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_s_k_output_a07b3524ca9ffa1dff03f4bf522d9e3d2_cgraph.md5 b/docs/class_s_k_output_a07b3524ca9ffa1dff03f4bf522d9e3d2_cgraph.md5 deleted file mode 100644 index d24c88e94..000000000 --- a/docs/class_s_k_output_a07b3524ca9ffa1dff03f4bf522d9e3d2_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -4412f00d30eddfda6b3ce1b3ea532305 \ No newline at end of file diff --git a/docs/class_s_k_output_a07b3524ca9ffa1dff03f4bf522d9e3d2_cgraph.png b/docs/class_s_k_output_a07b3524ca9ffa1dff03f4bf522d9e3d2_cgraph.png deleted file mode 100644 index c1429a906..000000000 Binary files a/docs/class_s_k_output_a07b3524ca9ffa1dff03f4bf522d9e3d2_cgraph.png and /dev/null differ diff --git a/docs/class_s_k_output_a1020f0eb3e0eb6bc10f57034c7fbc0c6_cgraph.md5 b/docs/class_s_k_output_a1020f0eb3e0eb6bc10f57034c7fbc0c6_cgraph.md5 deleted file mode 100644 index f439c8a3e..000000000 --- a/docs/class_s_k_output_a1020f0eb3e0eb6bc10f57034c7fbc0c6_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -85a8289106eea86238c1010f9b6b39ee \ No newline at end of file diff --git a/docs/class_s_k_output_a1020f0eb3e0eb6bc10f57034c7fbc0c6_cgraph.png b/docs/class_s_k_output_a1020f0eb3e0eb6bc10f57034c7fbc0c6_cgraph.png deleted file mode 100644 index 79fb6bb53..000000000 Binary files a/docs/class_s_k_output_a1020f0eb3e0eb6bc10f57034c7fbc0c6_cgraph.png and /dev/null differ diff --git a/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.md5 b/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.md5 deleted file mode 100644 index 974a8e476..000000000 --- a/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -311ea074b7d02b9306e687f8d977e1cb \ No newline at end of file diff --git a/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.png b/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.png deleted file mode 100644 index 05460cfbd..000000000 Binary files a/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.png and /dev/null differ diff --git a/docs/class_s_k_output_a43d76eef72e8dad90ee13a001c265be8_cgraph.md5 b/docs/class_s_k_output_a43d76eef72e8dad90ee13a001c265be8_cgraph.md5 deleted file mode 100644 index 1fb61d3d9..000000000 --- a/docs/class_s_k_output_a43d76eef72e8dad90ee13a001c265be8_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -b2d8ffcc048e470b15851ba094ac7295 \ No newline at end of file diff --git a/docs/class_s_k_output_a43d76eef72e8dad90ee13a001c265be8_cgraph.png b/docs/class_s_k_output_a43d76eef72e8dad90ee13a001c265be8_cgraph.png deleted file mode 100644 index af6c289f1..000000000 Binary files a/docs/class_s_k_output_a43d76eef72e8dad90ee13a001c265be8_cgraph.png and /dev/null differ diff --git a/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.map b/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.map deleted file mode 100644 index c39a91147..000000000 --- a/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.md5 b/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.md5 deleted file mode 100644 index 4251c62ed..000000000 --- a/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -513f6d29dc1490132f633097f146b5c2 \ No newline at end of file diff --git a/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.png b/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.png deleted file mode 100644 index 00ab89c71..000000000 Binary files a/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.png and /dev/null differ diff --git a/docs/class_s_k_output_time-members.html b/docs/class_s_k_output_time-members.html deleted file mode 100644 index 9b6b80ae6..000000000 --- a/docs/class_s_k_output_time-members.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SKOutputTime Member List
-
-
- -

This is the complete list of members for SKOutputTime, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
as_signalK() overrideSKOutputTimevirtual
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< String > *pProducer0, ValueProducer< String > *pProducer1=NULL, ValueProducer< String > *pProducer2=NULL, ValueProducer< String > *pProducer3=NULL, ValueProducer< String > *pProducer4=NULL)Transform< time_t, String >inline
ValueConsumer< time_t >::connectFrom(ValueProducer< time_t > *pProducer, uint8_t inputChannel=0)ValueConsumer< time_t >inline
connectTo(ValueConsumer< String > *pConsumer, uint8_t inputChannel=0)ValueProducer< String >inline
connectTo(Transform< String, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< String >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< String >inlinevirtual
get_config_schema() overrideSKOutputTimevirtual
get_configuration(JsonBuffer &buf) overrideSKOutputTimevirtual
get_sk_path()SKEmitterinline
get_sources()SKEmitterinlinestatic
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< String >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config) overrideSKOutputTimevirtual
set_input(time_t input, uint8_t inputChannel=0) overrideTimeStringvirtual
set_sk_path(const String &path)SKEmitterinline
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
sk_pathSKEmitterprotected
SKEmitter(String sk_path)SKEmitter
SKOutputTime(String sk_path, String config_path="")SKOutputTime
TimeString(String config_path="")TimeString
Transform(String config_path="")Transform< time_t, String >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< String >inline
-
- - - - diff --git a/docs/class_s_k_output_time.html b/docs/class_s_k_output_time.html deleted file mode 100644 index 4362646a6..000000000 --- a/docs/class_s_k_output_time.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - - - -SensESP: SKOutputTime Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SKOutputTime Class Reference
-
-
- -

#include <signalk_time.h>

-
-Inheritance diagram for SKOutputTime:
-
-
Inheritance graph
- - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 SKOutputTime (String sk_path, String config_path="")
 
virtual String as_signalK () override
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from TimeString
 TimeString (String config_path="")
 
virtual void set_input (time_t input, uint8_t inputChannel=0) override
 
- Public Member Functions inherited from Transform< time_t, String >
 Transform (String config_path="")
 
Transform< time_t, String > * connectFrom (ValueProducer< String > *pProducer0, ValueProducer< String > *pProducer1=NULL, ValueProducer< String > *pProducer2=NULL, ValueProducer< String > *pProducer3=NULL, ValueProducer< String > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< time_t >
void connectFrom (ValueProducer< time_t > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< String >
 ValueProducer ()
 
virtual const String & get ()
 
void connectTo (ValueConsumer< String > *pConsumer, uint8_t inputChannel=0)
 
Transform< String, T2 > * connectTo (Transform< String, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from SKEmitter
 SKEmitter (String sk_path)
 
String & get_sk_path ()
 
void set_sk_path (const String &path)
 
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Static Public Member Functions inherited from SKEmitter
static const std::vector< SKEmitter * > & get_sources ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< String >
String output
 
- Protected Attributes inherited from SKEmitter
String sk_path
 
-

Detailed Description

-
-

Definition at line 7 of file signalk_time.h.

-

Constructor & Destructor Documentation

- -

◆ SKOutputTime()

- -
-
- - - - - - - - - - - - - - - - - - -
SKOutputTime::SKOutputTime (String sk_path,
String config_path = "" 
)
-
- -

Definition at line 5 of file signalk_time.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - -
- -
-
-

Member Function Documentation

- -

◆ as_signalK()

- -
-
- - - - - -
- - - - - - - -
String SKOutputTime::as_signalK ()
-
-overridevirtual
-
-

Returns the data to be reported to the server as a SignalK json string.

- -

Reimplemented from SKEmitter.

- -

Definition at line 12 of file signalk_time.cpp.

- -
-
- -

◆ get_config_schema()

- -
-
- - - - - -
- - - - - - - -
String SKOutputTime::get_config_schema ()
-
-overridevirtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented from Configurable.

- -

Definition at line 37 of file signalk_time.cpp.

- -
-
- -

◆ get_configuration()

- -
-
- - - - - -
- - - - - - - - -
JsonObject & SKOutputTime::get_configuration (JsonBuffer & buf)
-
-overridevirtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented from Configurable.

- -

Definition at line 22 of file signalk_time.cpp.

- -
-
- -

◆ set_configuration()

- -
-
- - - - - -
- - - - - - - - -
bool SKOutputTime::set_configuration (const JsonObject & config)
-
-overridevirtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented from Configurable.

- -

Definition at line 41 of file signalk_time.cpp.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_s_k_output_time.js b/docs/class_s_k_output_time.js deleted file mode 100644 index 95a3c34fd..000000000 --- a/docs/class_s_k_output_time.js +++ /dev/null @@ -1,8 +0,0 @@ -var class_s_k_output_time = -[ - [ "SKOutputTime", "class_s_k_output_time.html#ab77e9bdfeb69fd37c6fc87ac247146e4", null ], - [ "as_signalK", "class_s_k_output_time.html#a09b9f813788470bd06891f34ba58d84b", null ], - [ "get_config_schema", "class_s_k_output_time.html#aa283f508ef59103626c835cd37b9bfb3", null ], - [ "get_configuration", "class_s_k_output_time.html#a03982e7159ac7e6d44b8f7c6976617c4", null ], - [ "set_configuration", "class_s_k_output_time.html#a41ad61c700a444916873e908612eca63", null ] -]; \ No newline at end of file diff --git a/docs/class_s_k_output_time__inherit__graph.map b/docs/class_s_k_output_time__inherit__graph.map deleted file mode 100644 index c584d0c88..000000000 --- a/docs/class_s_k_output_time__inherit__graph.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/docs/class_s_k_output_time__inherit__graph.md5 b/docs/class_s_k_output_time__inherit__graph.md5 deleted file mode 100644 index ad51620b5..000000000 --- a/docs/class_s_k_output_time__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -1d58892a5dc134f884ba670e0a455984 \ No newline at end of file diff --git a/docs/class_s_k_output_time__inherit__graph.png b/docs/class_s_k_output_time__inherit__graph.png deleted file mode 100644 index 78d7bcbfd..000000000 Binary files a/docs/class_s_k_output_time__inherit__graph.png and /dev/null differ diff --git a/docs/class_s_k_output_time_ab77e9bdfeb69fd37c6fc87ac247146e4_cgraph.map b/docs/class_s_k_output_time_ab77e9bdfeb69fd37c6fc87ac247146e4_cgraph.map deleted file mode 100644 index 9005ac0f7..000000000 --- a/docs/class_s_k_output_time_ab77e9bdfeb69fd37c6fc87ac247146e4_cgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_s_k_output_time_ab77e9bdfeb69fd37c6fc87ac247146e4_cgraph.md5 b/docs/class_s_k_output_time_ab77e9bdfeb69fd37c6fc87ac247146e4_cgraph.md5 deleted file mode 100644 index 926d31351..000000000 --- a/docs/class_s_k_output_time_ab77e9bdfeb69fd37c6fc87ac247146e4_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -bc137772ba198d37243048704a6a8a4e \ No newline at end of file diff --git a/docs/class_s_k_output_time_ab77e9bdfeb69fd37c6fc87ac247146e4_cgraph.png b/docs/class_s_k_output_time_ab77e9bdfeb69fd37c6fc87ac247146e4_cgraph.png deleted file mode 100644 index 2a7eb0f9f..000000000 Binary files a/docs/class_s_k_output_time_ab77e9bdfeb69fd37c6fc87ac247146e4_cgraph.png and /dev/null differ diff --git a/docs/class_sens_e_s_p_app-members.html b/docs/class_sens_e_s_p_app-members.html deleted file mode 100644 index 83026e357..000000000 --- a/docs/class_sens_e_s_p_app-members.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SensESPApp Member List
-
-
- -

This is the complete list of members for SensESPApp, including all inherited members.

- - - - - - - - - -
connect(ValueProducer< T > *pProducer, ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)SensESPAppinline
connect_1to1_h(T *sensor, U *transform, ObservableValue< String > *hostname)SensESPAppinline
enable()SensESPApp
get_hostname()SensESPApp
isSignalKConnected()SensESPAppinline
isWifiConnected()SensESPAppinline
reset()SensESPApp
SensESPApp()SensESPApp
-
- - - - diff --git a/docs/class_sens_e_s_p_app.html b/docs/class_sens_e_s_p_app.html deleted file mode 100644 index 7f4a5b1d1..000000000 --- a/docs/class_sens_e_s_p_app.html +++ /dev/null @@ -1,482 +0,0 @@ - - - - - - - -SensESP: SensESPApp Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SensESPApp Class Reference
-
-
- -

#include <sensesp_app.h>

- - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 SensESPApp ()
 
void enable ()
 
void reset ()
 
String get_hostname ()
 
template<typename T >
void connect (ValueProducer< T > *pProducer, ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)
 
template<typename T , typename U >
void connect_1to1_h (T *sensor, U *transform, ObservableValue< String > *hostname)
 
bool isWifiConnected ()
 
bool isSignalKConnected ()
 
-

Detailed Description

-
-

Definition at line 18 of file sensesp_app.h.

-

Constructor & Destructor Documentation

- -

◆ SensESPApp()

- -
-
- - - - - - - -
SensESPApp::SensESPApp ()
-
- -

Definition at line 24 of file sensesp_app.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - - - - - - - - - - - - - -
- -
-
-

Member Function Documentation

- -

◆ connect()

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void SensESPApp::connect (ValueProducer< T > * pProducer,
ValueConsumer< T > * pConsumer,
uint8_t inputChannel = 0 
)
-
-inline
-
- -

Definition at line 27 of file sensesp_app.h.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
- -

◆ connect_1to1_h()

- -
-
-
-template<typename T , typename U >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void SensESPApp::connect_1to1_h (T * sensor,
U * transform,
ObservableValue< String > * hostname 
)
-
-inline
-
- -

Definition at line 32 of file sensesp_app.h.

-
-Here is the call graph for this function:
-
-
- - - - - -
- -
-
- -

◆ enable()

- -
-
- - - - - - - -
void SensESPApp::enable ()
-
- -

Definition at line 108 of file sensesp_app.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -

◆ get_hostname()

- -
-
- - - - - - - -
String SensESPApp::get_hostname ()
-
- -

Definition at line 169 of file sensesp_app.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - -
- -
-
- -

◆ isSignalKConnected()

- -
-
- - - - - -
- - - - - - - -
bool SensESPApp::isSignalKConnected ()
-
-inline
-
-

Returns true if the host system is connected to a SignalK server

- -

Definition at line 59 of file sensesp_app.h.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
- -

◆ isWifiConnected()

- -
-
- - - - - -
- - - - - - - -
bool SensESPApp::isWifiConnected ()
-
-inline
-
-

Returns true if the host system is connected to Wifi

- -

Definition at line 51 of file sensesp_app.h.

- -
-
- -

◆ reset()

- -
-
- - - - - - - -
void SensESPApp::reset ()
-
- -

Definition at line 162 of file sensesp_app.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - - - -
-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_sens_e_s_p_app.js b/docs/class_sens_e_s_p_app.js deleted file mode 100644 index 67d447950..000000000 --- a/docs/class_sens_e_s_p_app.js +++ /dev/null @@ -1,11 +0,0 @@ -var class_sens_e_s_p_app = -[ - [ "SensESPApp", "class_sens_e_s_p_app.html#a092f600dda1a51189bc2c9fd5de360e8", null ], - [ "connect", "class_sens_e_s_p_app.html#ac53d90429563f50e4aca5224a1e85afd", null ], - [ "connect_1to1_h", "class_sens_e_s_p_app.html#aa6e3bc4bb1c696cc0bef02835ce0f7bf", null ], - [ "enable", "class_sens_e_s_p_app.html#a3d70c22bfd1bf842f6daa83ab2f50f79", null ], - [ "get_hostname", "class_sens_e_s_p_app.html#ac068882b9e9f6092da0818c5e42b48b8", null ], - [ "isSignalKConnected", "class_sens_e_s_p_app.html#adee3f53bc75ae6d5d73a8707dd75600e", null ], - [ "isWifiConnected", "class_sens_e_s_p_app.html#a15f6e0569533b417e9724540d758c884", null ], - [ "reset", "class_sens_e_s_p_app.html#a0f7605a2c63a3ed250e1c742608956b2", null ] -]; \ No newline at end of file diff --git a/docs/class_sens_e_s_p_app_a092f600dda1a51189bc2c9fd5de360e8_cgraph.map b/docs/class_sens_e_s_p_app_a092f600dda1a51189bc2c9fd5de360e8_cgraph.map deleted file mode 100644 index 442181f6b..000000000 --- a/docs/class_sens_e_s_p_app_a092f600dda1a51189bc2c9fd5de360e8_cgraph.map +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/docs/class_sens_e_s_p_app_a092f600dda1a51189bc2c9fd5de360e8_cgraph.md5 b/docs/class_sens_e_s_p_app_a092f600dda1a51189bc2c9fd5de360e8_cgraph.md5 deleted file mode 100644 index 3833223ea..000000000 --- a/docs/class_sens_e_s_p_app_a092f600dda1a51189bc2c9fd5de360e8_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -ebaeb0b7991ad0969ca0f685a45d614a \ No newline at end of file diff --git a/docs/class_sens_e_s_p_app_a092f600dda1a51189bc2c9fd5de360e8_cgraph.png b/docs/class_sens_e_s_p_app_a092f600dda1a51189bc2c9fd5de360e8_cgraph.png deleted file mode 100644 index 014986959..000000000 Binary files a/docs/class_sens_e_s_p_app_a092f600dda1a51189bc2c9fd5de360e8_cgraph.png and /dev/null differ diff --git a/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.map b/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.map deleted file mode 100644 index eb2b9df48..000000000 --- a/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.md5 b/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.md5 deleted file mode 100644 index 64b987778..000000000 --- a/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -34155e58db063da01c9272143824e849 \ No newline at end of file diff --git a/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.png b/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.png deleted file mode 100644 index 6a7b47ec1..000000000 Binary files a/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.png and /dev/null differ diff --git a/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_icgraph.map b/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_icgraph.map deleted file mode 100644 index efa140493..000000000 --- a/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_icgraph.md5 b/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_icgraph.md5 deleted file mode 100644 index d0490b662..000000000 --- a/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -5c31268001574a6c1b4d30f71391db6a \ No newline at end of file diff --git a/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_icgraph.png b/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_icgraph.png deleted file mode 100644 index 72094da92..000000000 Binary files a/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_icgraph.png and /dev/null differ diff --git a/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.map b/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.map deleted file mode 100644 index 5757f4f83..000000000 --- a/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.map +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.md5 b/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.md5 deleted file mode 100644 index 453a7800d..000000000 --- a/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -bb2145d25503df4da71e6acc23c814ab \ No newline at end of file diff --git a/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.png b/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.png deleted file mode 100644 index 9c9e8f0eb..000000000 Binary files a/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.png and /dev/null differ diff --git a/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.map b/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.map deleted file mode 100644 index 73edb6d6e..000000000 --- a/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.md5 b/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.md5 deleted file mode 100644 index ff4c7ddd8..000000000 --- a/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -c4c38fdebf317723270a06b484e09e58 \ No newline at end of file diff --git a/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.png b/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.png deleted file mode 100644 index 6016d1341..000000000 Binary files a/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.png and /dev/null differ diff --git a/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.map b/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.map deleted file mode 100644 index 0fb8f2ed7..000000000 --- a/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.md5 b/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.md5 deleted file mode 100644 index 48fb08e3f..000000000 --- a/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -f116716e0108dc861b8f5dd781e9b13b \ No newline at end of file diff --git a/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.png b/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.png deleted file mode 100644 index 43c37033f..000000000 Binary files a/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.png and /dev/null differ diff --git a/docs/class_sens_e_s_p_app_ac53d90429563f50e4aca5224a1e85afd_cgraph.map b/docs/class_sens_e_s_p_app_ac53d90429563f50e4aca5224a1e85afd_cgraph.map deleted file mode 100644 index f7bfe3884..000000000 --- a/docs/class_sens_e_s_p_app_ac53d90429563f50e4aca5224a1e85afd_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_sens_e_s_p_app_ac53d90429563f50e4aca5224a1e85afd_cgraph.md5 b/docs/class_sens_e_s_p_app_ac53d90429563f50e4aca5224a1e85afd_cgraph.md5 deleted file mode 100644 index e348ec8b6..000000000 --- a/docs/class_sens_e_s_p_app_ac53d90429563f50e4aca5224a1e85afd_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -28aa1a7df4b2f9e9479a5f8787333750 \ No newline at end of file diff --git a/docs/class_sens_e_s_p_app_ac53d90429563f50e4aca5224a1e85afd_cgraph.png b/docs/class_sens_e_s_p_app_ac53d90429563f50e4aca5224a1e85afd_cgraph.png deleted file mode 100644 index 38a0e714c..000000000 Binary files a/docs/class_sens_e_s_p_app_ac53d90429563f50e4aca5224a1e85afd_cgraph.png and /dev/null differ diff --git a/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.md5 b/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.md5 deleted file mode 100644 index 45459f33f..000000000 --- a/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -0a52e8e6d54992a41e30922aeac9c608 \ No newline at end of file diff --git a/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.png b/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.png deleted file mode 100644 index dc10cbcb7..000000000 Binary files a/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.png and /dev/null differ diff --git a/docs/class_sensor-members.html b/docs/class_sensor-members.html deleted file mode 100644 index b200951e9..000000000 --- a/docs/class_sensor-members.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Sensor Member List
-
-
- -

This is the complete list of members for Sensor, including all inherited members.

- - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_sensors()Sensorinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
-
- - - - diff --git a/docs/class_sensor__inherit__graph.map b/docs/class_sensor__inherit__graph.map deleted file mode 100644 index b28e9ac64..000000000 --- a/docs/class_sensor__inherit__graph.map +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/docs/class_sensor__inherit__graph.md5 b/docs/class_sensor__inherit__graph.md5 deleted file mode 100644 index 6d7b24757..000000000 --- a/docs/class_sensor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -66555e1b1750c734cb25cebfdcb42ac4 \ No newline at end of file diff --git a/docs/class_sensor__inherit__graph.png b/docs/class_sensor__inherit__graph.png deleted file mode 100644 index c6aced108..000000000 Binary files a/docs/class_sensor__inherit__graph.png and /dev/null differ diff --git a/docs/class_sentence_parser__inherit__graph.md5 b/docs/class_sentence_parser__inherit__graph.md5 deleted file mode 100644 index 8720387f3..000000000 --- a/docs/class_sentence_parser__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -33a952cfcd4a7cfe66d3af81605f4cd3 \ No newline at end of file diff --git a/docs/class_sentence_parser__inherit__graph.png b/docs/class_sentence_parser__inherit__graph.png deleted file mode 100644 index e94e7d10d..000000000 Binary files a/docs/class_sentence_parser__inherit__graph.png and /dev/null differ diff --git a/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.md5 b/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.md5 deleted file mode 100644 index d1a964b91..000000000 --- a/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -22dec926fac6cb6bc00f913ee0639616 \ No newline at end of file diff --git a/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.png b/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.png deleted file mode 100644 index 59186ebdd..000000000 Binary files a/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.png and /dev/null differ diff --git a/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.md5 b/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.md5 deleted file mode 100644 index 72e74138c..000000000 --- a/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -0d9dd4852bd46bf98b5cde4693727e93 \ No newline at end of file diff --git a/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.png b/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.png deleted file mode 100644 index 89abbd8cb..000000000 Binary files a/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.png and /dev/null differ diff --git a/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.md5 b/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.md5 deleted file mode 100644 index e5da102f2..000000000 --- a/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -fb63a0e7e5337ae3d15024fca122fee6 \ No newline at end of file diff --git a/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.png b/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.png deleted file mode 100644 index 6c2bb75ca..000000000 Binary files a/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.png and /dev/null differ diff --git a/docs/class_string_sensor-members.html b/docs/class_string_sensor-members.html deleted file mode 100644 index a809e3618..000000000 --- a/docs/class_string_sensor-members.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
StringSensor Member List
-
-
- -

This is the complete list of members for StringSensor, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectTo(ValueConsumer< String > *pConsumer, uint8_t inputChannel=0)ValueProducer< String >inline
connectTo(Transform< String, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< String >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< String >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_sensors()Sensorinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< String >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
StringSensor(String config_path="")StringSensor
ValueProducer()ValueProducer< String >inline
-
- - - - diff --git a/docs/class_string_sensor__inherit__graph.map b/docs/class_string_sensor__inherit__graph.map deleted file mode 100644 index 86fffe7d7..000000000 --- a/docs/class_string_sensor__inherit__graph.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/class_string_sensor__inherit__graph.md5 b/docs/class_string_sensor__inherit__graph.md5 deleted file mode 100644 index a8c0a6dac..000000000 --- a/docs/class_string_sensor__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -38fe8e2c69933afbe1621e8010f879e1 \ No newline at end of file diff --git a/docs/class_string_sensor__inherit__graph.png b/docs/class_string_sensor__inherit__graph.png deleted file mode 100644 index 084bb0bc8..000000000 Binary files a/docs/class_string_sensor__inherit__graph.png and /dev/null differ diff --git a/docs/class_symmetric_transform-members.html b/docs/class_symmetric_transform-members.html deleted file mode 100644 index 551b8f67e..000000000 --- a/docs/class_symmetric_transform-members.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SymmetricTransform< T > Member List
-
-
- -

This is the complete list of members for SymmetricTransform< T >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< T > *pProducer0, ValueProducer< T > *pProducer1=NULL, ValueProducer< T > *pProducer2=NULL, ValueProducer< T > *pProducer3=NULL, ValueProducer< T > *pProducer4=NULL)Transform< T, T >inline
ValueConsumer::connectFrom(ValueProducer< T > *pProducer, uint8_t inputChannel=0)ValueConsumer< T >inline
connectTo(ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)ValueProducer< T >inline
connectTo(Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< T >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< T >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< T >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config)Configurablevirtual
set_input(T newValue, uint8_t inputChannel=0)ValueConsumer< T >inlinevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
SymmetricTransform(String config_path="")SymmetricTransform< T >inline
Transform(String config_path="")Transform< T, T >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< T >inline
-
- - - - diff --git a/docs/class_symmetric_transform.html b/docs/class_symmetric_transform.html deleted file mode 100644 index 381184ac2..000000000 --- a/docs/class_symmetric_transform.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - - -SensESP: SymmetricTransform< T > Class Template Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
SymmetricTransform< T > Class Template Reference
-
-
- -

#include <transform.h>

-
-Inheritance diagram for SymmetricTransform< T >:
-
-
Inheritance graph
- - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< T, T >
 Transform (String config_path="")
 
Transform< T, T > * connectFrom (ValueProducer< T > *pProducer0, ValueProducer< T > *pProducer1=NULL, ValueProducer< T > *pProducer2=NULL, ValueProducer< T > *pProducer3=NULL, ValueProducer< T > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< T >
virtual void set_input (T newValue, uint8_t inputChannel=0)
 
void connectFrom (ValueProducer< T > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< T >
 ValueProducer ()
 
virtual const T & get ()
 
void connectTo (ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)
 
template<typename T2 >
Transform< T, T2 > * connectTo (Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< T >
output
 
-

Detailed Description

-

template<typename T>
-class SymmetricTransform< T >

- -

A SymmetricTransform is a common type of transform that consumes, transforms, then outputs values of the same data type.

- -

Definition at line 104 of file transform.h.

-

Constructor & Destructor Documentation

- -

◆ SymmetricTransform()

- -
-
-
-template<typename T>
- - - - - -
- - - - - - - - -
SymmetricTransform< T >::SymmetricTransform (String config_path = "")
-
-inline
-
- -

Definition at line 107 of file transform.h.

- -
-
-
The documentation for this class was generated from the following file: -
-
- - - - diff --git a/docs/class_symmetric_transform__inherit__graph.map b/docs/class_symmetric_transform__inherit__graph.map deleted file mode 100644 index 92e630015..000000000 --- a/docs/class_symmetric_transform__inherit__graph.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/docs/class_symmetric_transform__inherit__graph.md5 b/docs/class_symmetric_transform__inherit__graph.md5 deleted file mode 100644 index 25344f1f8..000000000 --- a/docs/class_symmetric_transform__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e75d9e672eee68b14eea4607f9f83dad \ No newline at end of file diff --git a/docs/class_symmetric_transform__inherit__graph.png b/docs/class_symmetric_transform__inherit__graph.png deleted file mode 100644 index 17436488a..000000000 Binary files a/docs/class_symmetric_transform__inherit__graph.png and /dev/null differ diff --git a/docs/class_system_hz-members.html b/docs/class_system_hz-members.html deleted file mode 100644 index c6623e9ad..000000000 --- a/docs/class_system_hz-members.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
SystemHz Member List
-
-
- -

This is the complete list of members for SystemHz, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
enable() override finalSystemHzvirtual
Enable(uint8_t priority=0)Enable
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_sensors()Sensorinlinestatic
get_value_name()SystemHzinline
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
SystemHz()SystemHzinline
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_system_hz__inherit__graph.map b/docs/class_system_hz__inherit__graph.map deleted file mode 100644 index f55b587c6..000000000 --- a/docs/class_system_hz__inherit__graph.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/class_system_hz__inherit__graph.md5 b/docs/class_system_hz__inherit__graph.md5 deleted file mode 100644 index f56c57475..000000000 --- a/docs/class_system_hz__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -58226b0050de267dc6ebf682b43c2eae \ No newline at end of file diff --git a/docs/class_system_hz__inherit__graph.png b/docs/class_system_hz__inherit__graph.png deleted file mode 100644 index df60e9e6e..000000000 Binary files a/docs/class_system_hz__inherit__graph.png and /dev/null differ diff --git a/docs/class_time_string-members.html b/docs/class_time_string-members.html deleted file mode 100644 index 5eb387393..000000000 --- a/docs/class_time_string-members.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
TimeString Member List
-
-
- -

This is the complete list of members for TimeString, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< String > *pProducer0, ValueProducer< String > *pProducer1=NULL, ValueProducer< String > *pProducer2=NULL, ValueProducer< String > *pProducer3=NULL, ValueProducer< String > *pProducer4=NULL)Transform< time_t, String >inline
ValueConsumer< time_t >::connectFrom(ValueProducer< time_t > *pProducer, uint8_t inputChannel=0)ValueConsumer< time_t >inline
connectTo(ValueConsumer< String > *pConsumer, uint8_t inputChannel=0)ValueProducer< String >inline
connectTo(Transform< String, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< String >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< String >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< String >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config)Configurablevirtual
set_input(time_t input, uint8_t inputChannel=0) overrideTimeStringvirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
TimeString(String config_path="")TimeString
Transform(String config_path="")Transform< time_t, String >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< String >inline
-
- - - - diff --git a/docs/class_time_string.html b/docs/class_time_string.html deleted file mode 100644 index 89d936fb3..000000000 --- a/docs/class_time_string.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - - -SensESP: TimeString Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
TimeString Class Reference
-
-
- -

#include <timestring.h>

-
-Inheritance diagram for TimeString:
-
-
Inheritance graph
- - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 TimeString (String config_path="")
 
virtual void set_input (time_t input, uint8_t inputChannel=0) override
 
- Public Member Functions inherited from Transform< time_t, String >
 Transform (String config_path="")
 
Transform< time_t, String > * connectFrom (ValueProducer< String > *pProducer0, ValueProducer< String > *pProducer1=NULL, ValueProducer< String > *pProducer2=NULL, ValueProducer< String > *pProducer3=NULL, ValueProducer< String > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< time_t >
void connectFrom (ValueProducer< time_t > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< String >
 ValueProducer ()
 
virtual const String & get ()
 
void connectTo (ValueConsumer< String > *pConsumer, uint8_t inputChannel=0)
 
Transform< String, T2 > * connectTo (Transform< String, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< String >
String output
 
-

Detailed Description

-

TimeString consumes a time_t time object and produces a human readable string of the time for UTC in ISO 8601 format.

- -

Definition at line 13 of file timestring.h.

-

Constructor & Destructor Documentation

- -

◆ TimeString()

- -
-
- - - - - - - - -
TimeString::TimeString (String config_path = "")
-
- -

Definition at line 5 of file timestring.cpp.

- -
-
-

Member Function Documentation

- -

◆ set_input()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void TimeString::set_input (time_t newValue,
uint8_t inputChannel = 0 
)
-
-overridevirtual
-
-

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
- - - -
newValuethe value of the input
inputChannelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
-
-
- -

Reimplemented from ValueConsumer< time_t >.

- -

Definition at line 10 of file timestring.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_time_string.js b/docs/class_time_string.js deleted file mode 100644 index ca6058c04..000000000 --- a/docs/class_time_string.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_time_string = -[ - [ "TimeString", "class_time_string.html#adc18ed47c4b6d88acceec81741aab5c3", null ], - [ "set_input", "class_time_string.html#a631583475f42183fdc5cd02914a26320", null ] -]; \ No newline at end of file diff --git a/docs/class_time_string__inherit__graph.map b/docs/class_time_string__inherit__graph.map deleted file mode 100644 index 53fdfaed8..000000000 --- a/docs/class_time_string__inherit__graph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/class_time_string__inherit__graph.md5 b/docs/class_time_string__inherit__graph.md5 deleted file mode 100644 index 9925b6eed..000000000 --- a/docs/class_time_string__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -cd12ccda328f283d9835d96244a73389 \ No newline at end of file diff --git a/docs/class_time_string__inherit__graph.png b/docs/class_time_string__inherit__graph.png deleted file mode 100644 index 8801baf84..000000000 Binary files a/docs/class_time_string__inherit__graph.png and /dev/null differ diff --git a/docs/class_time_string_a631583475f42183fdc5cd02914a26320_cgraph.map b/docs/class_time_string_a631583475f42183fdc5cd02914a26320_cgraph.map deleted file mode 100644 index 49d40cc0a..000000000 --- a/docs/class_time_string_a631583475f42183fdc5cd02914a26320_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_time_string_a631583475f42183fdc5cd02914a26320_cgraph.md5 b/docs/class_time_string_a631583475f42183fdc5cd02914a26320_cgraph.md5 deleted file mode 100644 index dbc4f54d6..000000000 --- a/docs/class_time_string_a631583475f42183fdc5cd02914a26320_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -c73dced3fd6cccc4880a2505703cd571 \ No newline at end of file diff --git a/docs/class_time_string_a631583475f42183fdc5cd02914a26320_cgraph.png b/docs/class_time_string_a631583475f42183fdc5cd02914a26320_cgraph.png deleted file mode 100644 index da133a70f..000000000 Binary files a/docs/class_time_string_a631583475f42183fdc5cd02914a26320_cgraph.png and /dev/null differ diff --git a/docs/class_transform-members.html b/docs/class_transform-members.html deleted file mode 100644 index 909fc8d61..000000000 --- a/docs/class_transform-members.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Transform< C, P > Member List
-
-
- -

This is the complete list of members for Transform< C, P >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< P > *pProducer0, ValueProducer< P > *pProducer1=NULL, ValueProducer< P > *pProducer2=NULL, ValueProducer< P > *pProducer3=NULL, ValueProducer< P > *pProducer4=NULL)Transform< C, P >inline
ValueConsumer< C >::connectFrom(ValueProducer< C > *pProducer, uint8_t inputChannel=0)ValueConsumer< C >inline
connectTo(ValueConsumer< P > *pConsumer, uint8_t inputChannel=0)ValueProducer< P >inline
connectTo(Transform< P, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< P >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< P >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< P >protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config)Configurablevirtual
set_input(C newValue, uint8_t inputChannel=0)ValueConsumer< C >inlinevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
Transform(String config_path="")Transform< C, P >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< P >inline
-
- - - - diff --git a/docs/class_transform.html b/docs/class_transform.html deleted file mode 100644 index c4528ba45..000000000 --- a/docs/class_transform.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - - - -SensESP: Transform< C, P > Class Template Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
Transform< C, P > Class Template Reference
-
-
- -

#include <valueproducer.h>

-
-Inheritance diagram for Transform< C, P >:
-
-
Inheritance graph
- - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Transform (String config_path="")
 
Transform< C, P > * connectFrom (ValueProducer< P > *pProducer0, ValueProducer< P > *pProducer1=NULL, ValueProducer< P > *pProducer2=NULL, ValueProducer< P > *pProducer3=NULL, ValueProducer< P > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< C >
virtual void set_input (C newValue, uint8_t inputChannel=0)
 
void connectFrom (ValueProducer< C > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< P >
 ValueProducer ()
 
virtual const P & get ()
 
void connectTo (ValueConsumer< P > *pConsumer, uint8_t inputChannel=0)
 
Transform< P, T2 > * connectTo (Transform< P, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< P >
output
 
-

Detailed Description

-

template<typename C, typename P>
-class Transform< C, P >

- -

The main Transform class. A transform is identified primarily by the type of value that is produces (i.e. a Transform<float> is a ValueProducer<float> that generates float values)

- -

Definition at line 10 of file valueproducer.h.

-

Constructor & Destructor Documentation

- -

◆ Transform()

- -
-
-
-template<typename C, typename P>
- - - - - -
- - - - - - - - -
Transform< C, P >::Transform (String config_path = "")
-
-inline
-
- -

Definition at line 56 of file transform.h.

- -
-
-

Member Function Documentation

- -

◆ connectFrom()

- -
-
-
-template<typename C, typename P>
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Transform<C, P>* Transform< C, P >::connectFrom (ValueProducer< P > * pProducer0,
ValueProducer< P > * pProducer1 = NULL,
ValueProducer< P > * pProducer2 = NULL,
ValueProducer< P > * pProducer3 = NULL,
ValueProducer< P > * pProducer4 = NULL 
)
-
-inline
-
-

A convenience method that allows up to five producers to be quickly connected to the input of the ValueConsumer side of this transform. The first producer will be connected to input channel zero, the second one to input channel 1, etc. "this" is returned, which allows the ValueProducer side of this transform to then be wired to other transforms via a call to connectTo().

- -

Definition at line 73 of file transform.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_transform.js b/docs/class_transform.js deleted file mode 100644 index c669d3d3e..000000000 --- a/docs/class_transform.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_transform = -[ - [ "Transform", "class_transform.html#a764037842596e71f15621e3732dac75a", null ], - [ "connectFrom", "class_transform.html#a7721846cbfe5b3d95c6f1f40cb387c5d", null ] -]; \ No newline at end of file diff --git a/docs/class_transform__inherit__graph.map b/docs/class_transform__inherit__graph.map deleted file mode 100644 index 38c9716d5..000000000 --- a/docs/class_transform__inherit__graph.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/class_transform__inherit__graph.md5 b/docs/class_transform__inherit__graph.md5 deleted file mode 100644 index 70c11e60f..000000000 --- a/docs/class_transform__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c14de503ff7c13d321f11108e2c46fbd \ No newline at end of file diff --git a/docs/class_transform__inherit__graph.png b/docs/class_transform__inherit__graph.png deleted file mode 100644 index d4209bfad..000000000 Binary files a/docs/class_transform__inherit__graph.png and /dev/null differ diff --git a/docs/class_transform_base-members.html b/docs/class_transform_base-members.html deleted file mode 100644 index fe4688071..000000000 --- a/docs/class_transform_base-members.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
TransformBase Member List
-
-
- -

This is the complete list of members for TransformBase, including all inherited members.

- - - - - - - - - - - - - - - - - - -
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config)Configurablevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
TransformBase(String config_path="")TransformBase
-
- - - - diff --git a/docs/class_transform_base.html b/docs/class_transform_base.html deleted file mode 100644 index ecbcaee50..000000000 --- a/docs/class_transform_base.html +++ /dev/null @@ -1,251 +0,0 @@ - - - - - - - -SensESP: TransformBase Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
TransformBase Class Reference
-
-
- -

#include <transform.h>

-
-Inheritance diagram for TransformBase:
-
-
Inheritance graph
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- - - - - - -

-Static Public Member Functions

static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- - - - - - - - - - -

-Additional Inherited Members

- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
-

Detailed Description

-

The base class for all transforms. All transforms are can be subscribed to by calling attach() (inherited from Observable). They can have an optional persistence configuration by specifying an "id" to save the configuration data in.

- -

Definition at line 28 of file transform.h.

-

Constructor & Destructor Documentation

- -

◆ TransformBase()

- -
-
- - - - - - - - -
TransformBase::TransformBase (String config_path = "")
-
- -

Definition at line 11 of file transform.cpp.

- -
-
-

Member Function Documentation

- -

◆ get_transforms()

- -
-
- - - - - -
- - - - - - - -
static const std::set<TransformBase*>& TransformBase::get_transforms ()
-
-inlinestatic
-
- -

Definition at line 37 of file transform.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_transform_base__inherit__graph.map b/docs/class_transform_base__inherit__graph.map deleted file mode 100644 index c1504b8c4..000000000 --- a/docs/class_transform_base__inherit__graph.map +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/class_transform_base__inherit__graph.md5 b/docs/class_transform_base__inherit__graph.md5 deleted file mode 100644 index ee11b123e..000000000 --- a/docs/class_transform_base__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e9ffc4d78f414ed563c800e2c93739fa \ No newline at end of file diff --git a/docs/class_transform_base__inherit__graph.png b/docs/class_transform_base__inherit__graph.png deleted file mode 100644 index 680efc052..000000000 Binary files a/docs/class_transform_base__inherit__graph.png and /dev/null differ diff --git a/docs/class_uptime-members.html b/docs/class_uptime-members.html deleted file mode 100644 index 847adbeea..000000000 --- a/docs/class_uptime-members.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Uptime Member List
-
-
- -

This is the complete list of members for Uptime, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
enable() override finalUptimevirtual
Enable(uint8_t priority=0)Enable
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonBuffer &buf)Configurablevirtual
get_sensors()Sensorinlinestatic
get_value_name()Uptimeinline
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
Uptime()Uptimeinline
ValueProducer()ValueProducer< float >inline
-
- - - - diff --git a/docs/class_uptime__inherit__graph.map b/docs/class_uptime__inherit__graph.map deleted file mode 100644 index a6878e3a9..000000000 --- a/docs/class_uptime__inherit__graph.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/class_uptime__inherit__graph.md5 b/docs/class_uptime__inherit__graph.md5 deleted file mode 100644 index af0ce3743..000000000 --- a/docs/class_uptime__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d45029b31e2c4201ad5467c87f108624 \ No newline at end of file diff --git a/docs/class_uptime__inherit__graph.png b/docs/class_uptime__inherit__graph.png deleted file mode 100644 index e5d7cf367..000000000 Binary files a/docs/class_uptime__inherit__graph.png and /dev/null differ diff --git a/docs/class_value_consumer.html b/docs/class_value_consumer.html deleted file mode 100644 index ea07febd5..000000000 --- a/docs/class_value_consumer.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - - - - -SensESP: ValueConsumer< T > Class Template Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
ValueConsumer< T > Class Template Reference
-
-
- -

#include <valueconsumer.h>

-
-Inheritance diagram for ValueConsumer< T >:
-
-
Inheritance graph
- - - - - - - -
[legend]
- - - - - - -

-Public Member Functions

virtual void set_input (T newValue, uint8_t inputChannel=0)
 
void connectFrom (ValueProducer< T > *pProducer, uint8_t inputChannel=0)
 
-

Detailed Description

-

template<typename T>
-class ValueConsumer< T >

- -

A ValueConsumer is any piece of code (like a transformation) that accepts data for input. They can accept one or more input values via the set_input() method. They are connected to ValueProducers via the connectTo() method.

See also
ValueProducer::connectTo()
- -

Definition at line 17 of file valueconsumer.h.

-

Member Function Documentation

- -

◆ connectFrom()

- -
-
-
-template<typename T>
- - - - - -
- - - - - - - - - - - - - - - - - - -
void ValueConsumer< T >::connectFrom (ValueProducer< T > * pProducer,
uint8_t inputChannel = 0 
)
-
-inline
-
-

Registers this consumer with the specified producer, letting it know that this consumer would like to receive notifications whenever its value changes.

Parameters
- - -
inputChannelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
-
-
- -

Definition at line 39 of file valueconsumer.h.

-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ set_input()

- -
-
-
-template<typename T>
- - - - - -
- - - - - - - - - - - - - - - - - - -
virtual void ValueConsumer< T >::set_input (newValue,
uint8_t inputChannel = 0 
)
-
-inlinevirtual
-
-

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
- - - -
newValuethe value of the input
inputChannelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
-
-
- -

Reimplemented in CurveInterpolator, MovingAverage, SKOutput< T >, VoltageDividerR2, ChangeFilter, Median, TimeString, Frequency, AngleCorrection, Linear, Integrator, and Difference.

- -

Definition at line 28 of file valueconsumer.h.

-
-Here is the caller graph for this function:
-
-
- - - - - -
- -
-
-
The documentation for this class was generated from the following file: -
-
- - - - diff --git a/docs/class_value_consumer.js b/docs/class_value_consumer.js deleted file mode 100644 index 35fad9d9a..000000000 --- a/docs/class_value_consumer.js +++ /dev/null @@ -1,5 +0,0 @@ -var class_value_consumer = -[ - [ "connectFrom", "class_value_consumer.html#a6adf62d8d87ffa3ce70bb85379a68715", null ], - [ "set_input", "class_value_consumer.html#a7bf920e5ad5f171ec6e2aeda056ff01f", null ] -]; \ No newline at end of file diff --git a/docs/class_value_consumer__inherit__graph.map b/docs/class_value_consumer__inherit__graph.map deleted file mode 100644 index 91051d512..000000000 --- a/docs/class_value_consumer__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/class_value_consumer__inherit__graph.md5 b/docs/class_value_consumer__inherit__graph.md5 deleted file mode 100644 index b7db27039..000000000 --- a/docs/class_value_consumer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -774f68a2a58ace0bb2a522e207f56755 \ No newline at end of file diff --git a/docs/class_value_consumer__inherit__graph.png b/docs/class_value_consumer__inherit__graph.png deleted file mode 100644 index 03bedfc1d..000000000 Binary files a/docs/class_value_consumer__inherit__graph.png and /dev/null differ diff --git a/docs/class_value_consumer_a6adf62d8d87ffa3ce70bb85379a68715_icgraph.map b/docs/class_value_consumer_a6adf62d8d87ffa3ce70bb85379a68715_icgraph.map deleted file mode 100644 index 67c297cb5..000000000 --- a/docs/class_value_consumer_a6adf62d8d87ffa3ce70bb85379a68715_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_value_consumer_a6adf62d8d87ffa3ce70bb85379a68715_icgraph.md5 b/docs/class_value_consumer_a6adf62d8d87ffa3ce70bb85379a68715_icgraph.md5 deleted file mode 100644 index 5f85da57d..000000000 --- a/docs/class_value_consumer_a6adf62d8d87ffa3ce70bb85379a68715_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -c04c155a1181bc43ae1bbdc514123cf4 \ No newline at end of file diff --git a/docs/class_value_consumer_a6adf62d8d87ffa3ce70bb85379a68715_icgraph.png b/docs/class_value_consumer_a6adf62d8d87ffa3ce70bb85379a68715_icgraph.png deleted file mode 100644 index 19ea7c2ea..000000000 Binary files a/docs/class_value_consumer_a6adf62d8d87ffa3ce70bb85379a68715_icgraph.png and /dev/null differ diff --git a/docs/class_value_consumer_a7bf920e5ad5f171ec6e2aeda056ff01f_icgraph.map b/docs/class_value_consumer_a7bf920e5ad5f171ec6e2aeda056ff01f_icgraph.map deleted file mode 100644 index 0d3111b4d..000000000 --- a/docs/class_value_consumer_a7bf920e5ad5f171ec6e2aeda056ff01f_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_value_consumer_a7bf920e5ad5f171ec6e2aeda056ff01f_icgraph.md5 b/docs/class_value_consumer_a7bf920e5ad5f171ec6e2aeda056ff01f_icgraph.md5 deleted file mode 100644 index 8c2eb2aa2..000000000 --- a/docs/class_value_consumer_a7bf920e5ad5f171ec6e2aeda056ff01f_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -ac9e5a312281367a4edefea1ce169e6f \ No newline at end of file diff --git a/docs/class_value_consumer_a7bf920e5ad5f171ec6e2aeda056ff01f_icgraph.png b/docs/class_value_consumer_a7bf920e5ad5f171ec6e2aeda056ff01f_icgraph.png deleted file mode 100644 index bc0749fcd..000000000 Binary files a/docs/class_value_consumer_a7bf920e5ad5f171ec6e2aeda056ff01f_icgraph.png and /dev/null differ diff --git a/docs/class_value_producer-members.html b/docs/class_value_producer-members.html deleted file mode 100644 index 204c985a9..000000000 --- a/docs/class_value_producer-members.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
ValueProducer< T > Member List
-
-
- -

This is the complete list of members for ValueProducer< T >, including all inherited members.

- - - - - - - - -
attach(std::function< void()> observer)Observable
connectTo(ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)ValueProducer< T >inline
connectTo(Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< T >inline
get()ValueProducer< T >inlinevirtual
notify()Observable
outputValueProducer< T >protected
ValueProducer()ValueProducer< T >inline
-
- - - - diff --git a/docs/class_value_producer.html b/docs/class_value_producer.html deleted file mode 100644 index 181392b23..000000000 --- a/docs/class_value_producer.html +++ /dev/null @@ -1,374 +0,0 @@ - - - - - - - -SensESP: ValueProducer< T > Class Template Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
ValueProducer< T > Class Template Reference
-
-
- -

#include <valueconsumer.h>

-
-Inheritance diagram for ValueProducer< T >:
-
-
Inheritance graph
- - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - -

-Public Member Functions

 ValueProducer ()
 
virtual const T & get ()
 
void connectTo (ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)
 
template<typename T2 >
Transform< T, T2 > * connectTo (Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - -

-Protected Attributes

output
 
-

Detailed Description

-

template<typename T>
-class ValueProducer< T >

- -

A ValueProducer<> is any sensor or piece of code that outputs a value for consumption elsewhere. They are Observable, allowing code to be notified whenever a new value is available. They can be connected directly to ValueConsumers of the same type using the connectTo() method.

- -

Definition at line 7 of file valueconsumer.h.

-

Constructor & Destructor Documentation

- -

◆ ValueProducer()

- -
-
-
-template<typename T>
- - - - - -
- - - - - - - -
ValueProducer< T >::ValueProducer ()
-
-inline
-
- -

Definition at line 23 of file valueproducer.h.

- -
-
-

Member Function Documentation

- -

◆ connectTo() [1/2]

- -
-
-
-template<typename T>
- - - - - -
- - - - - - - - - - - - - - - - - - -
void ValueProducer< T >::connectTo (ValueConsumer< T > * pConsumer,
uint8_t inputChannel = 0 
)
-
-inline
-
-

Connects this producer to the specified consumer, registering that consumer for notifications to when this producer's value changes

Parameters
- - -
inputChannelConsumers can have one or more inputs feeding them This parameter allows you to specify which input number this producer is connecting to. For single input consumers, leave the index at zero.
-
-
-
See also
ValueConsumer::set_input()
- -

Definition at line 42 of file valueproducer.h.

-
-Here is the caller graph for this function:
-
-
- - - - - - -
- -
-
- -

◆ connectTo() [2/2]

- -
-
-
-template<typename T>
-
-template<typename T2 >
- - - - - -
- - - - - - - - - - - - - - - - - - -
Transform<T, T2>* ValueProducer< T >::connectTo (Transform< T, T2 > * pConsumerProducer,
uint8_t inputChannel = 0 
)
-
-inline
-
-

If the consumer this producer is connecting to is ALSO a producer of values of the same type, connectTo() calls can be chained together, as this specialized version returns the producer/consumer being conencted to so connectTo() can be called on THAT object.

Parameters
- - -
inputChannelConsumers can have one or more inputs feeding them This parameter allows you to specify which input number this producer is connecting to. For single input consumers, leave the index at zero.
-
-
-
See also
ValueConsumer::set_input()
- -

Definition at line 62 of file valueproducer.h.

- -
-
- -

◆ get()

- -
-
-
-template<typename T>
- - - - - -
- - - - - - - -
virtual const T& ValueProducer< T >::get ()
-
-inlinevirtual
-
-

Returns the current value of this producer

- -

Definition at line 29 of file valueproducer.h.

-
-Here is the caller graph for this function:
-
-
- - - - - - - - - - - - -
- -
-
-

Member Data Documentation

- -

◆ output

- -
-
-
-template<typename T>
- - - - - -
- - - - -
T ValueProducer< T >::output
-
-protected
-
-

The current value of this producer is stored here in this output member (unless descendant classes override ValueProducer::get())

- -

Definition at line 74 of file valueproducer.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_value_producer.js b/docs/class_value_producer.js deleted file mode 100644 index 43c63d96b..000000000 --- a/docs/class_value_producer.js +++ /dev/null @@ -1,8 +0,0 @@ -var class_value_producer = -[ - [ "ValueProducer", "class_value_producer.html#a0ef05992883120f7202c14fd8e577103", null ], - [ "connectTo", "class_value_producer.html#a1669282467997608ce6164fe4d729bb2", null ], - [ "connectTo", "class_value_producer.html#adfb3d9679b80c9fae0951ca13911344f", null ], - [ "get", "class_value_producer.html#adaf30ea1027efa0c83c75dfe3afc0c1a", null ], - [ "output", "class_value_producer.html#a9d3882f6de7ef8b05e78947cf9df2697", null ] -]; \ No newline at end of file diff --git a/docs/class_value_producer__inherit__graph.map b/docs/class_value_producer__inherit__graph.map deleted file mode 100644 index 65dd7ab5b..000000000 --- a/docs/class_value_producer__inherit__graph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/class_value_producer__inherit__graph.md5 b/docs/class_value_producer__inherit__graph.md5 deleted file mode 100644 index 324ee9f6c..000000000 --- a/docs/class_value_producer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -1cd347a31e5bd65ba91348b6feeeb4cf \ No newline at end of file diff --git a/docs/class_value_producer__inherit__graph.png b/docs/class_value_producer__inherit__graph.png deleted file mode 100644 index bdf5a4f8b..000000000 Binary files a/docs/class_value_producer__inherit__graph.png and /dev/null differ diff --git a/docs/class_value_producer_a1669282467997608ce6164fe4d729bb2_icgraph.map b/docs/class_value_producer_a1669282467997608ce6164fe4d729bb2_icgraph.map deleted file mode 100644 index 78bfee903..000000000 --- a/docs/class_value_producer_a1669282467997608ce6164fe4d729bb2_icgraph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/class_value_producer_a1669282467997608ce6164fe4d729bb2_icgraph.md5 b/docs/class_value_producer_a1669282467997608ce6164fe4d729bb2_icgraph.md5 deleted file mode 100644 index 4dfbf798d..000000000 --- a/docs/class_value_producer_a1669282467997608ce6164fe4d729bb2_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -4dc67688f79d1959bdfc4477e3e2a966 \ No newline at end of file diff --git a/docs/class_value_producer_a1669282467997608ce6164fe4d729bb2_icgraph.png b/docs/class_value_producer_a1669282467997608ce6164fe4d729bb2_icgraph.png deleted file mode 100644 index 044c78d19..000000000 Binary files a/docs/class_value_producer_a1669282467997608ce6164fe4d729bb2_icgraph.png and /dev/null differ diff --git a/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.map b/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.map deleted file mode 100644 index 96ff35bd0..000000000 --- a/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.md5 b/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.md5 deleted file mode 100644 index a1d026aa6..000000000 --- a/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -f9335a53fd602595ac856026e1c9bcd1 \ No newline at end of file diff --git a/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.png b/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.png deleted file mode 100644 index 0d8635ec1..000000000 Binary files a/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.png and /dev/null differ diff --git a/docs/class_voltage_divider_r2-members.html b/docs/class_voltage_divider_r2-members.html deleted file mode 100644 index 749f2ac5d..000000000 --- a/docs/class_voltage_divider_r2-members.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - -SensESP: Member List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
VoltageDividerR2 Member List
-
-
- -

This is the complete list of members for VoltageDividerR2, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
attach(std::function< void()> observer)Observable
classNameEnableprotected
config_pathConfigurable
Configurable(String config_path)Configurable
connectFrom(ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)Transform< float, float >inline
ValueConsumer< float >::connectFrom(ValueProducer< float > *pProducer, uint8_t inputChannel=0)ValueConsumer< float >inline
connectTo(ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enableAll()Enablestatic
get()ValueProducer< float >inlinevirtual
get_config_schema() overrideVoltageDividerR2virtual
get_configuration(JsonBuffer &buf) overrideVoltageDividerR2virtual
get_transforms()TransformBaseinlinestatic
getClassName()Enableinlinevirtual
getEnablePriority()Enableinline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< float >protected
R1VoltageDividerR2protected
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config) overrideVoltageDividerR2virtual
set_input(float Vout, uint8_t ignored=0) overrideVoltageDividerR2virtual
setClassName(const char *newClassName)Enableinline
setPriority(uint8_t priority)Enableinline
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
TransformBase(String config_path="")TransformBase
ValueProducer()ValueProducer< float >inline
VinVoltageDividerR2protected
VoltageDividerR2(float R1, float Vin=3.3, String config_path="")VoltageDividerR2
-
- - - - diff --git a/docs/class_voltage_divider_r2.html b/docs/class_voltage_divider_r2.html deleted file mode 100644 index 26449bbd3..000000000 --- a/docs/class_voltage_divider_r2.html +++ /dev/null @@ -1,459 +0,0 @@ - - - - - - - -SensESP: VoltageDividerR2 Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
VoltageDividerR2 Class Reference
-
-
- -

#include <voltagedividerR2.h>

-
-Inheritance diagram for VoltageDividerR2:
-
-
Inheritance graph
- - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 VoltageDividerR2 (float R1, float Vin=3.3, String config_path="")
 
virtual void set_input (float Vout, uint8_t ignored=0) override
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *pProducer0, ValueProducer< float > *pProducer1=NULL, ValueProducer< float > *pProducer2=NULL, ValueProducer< float > *pProducer3=NULL, ValueProducer< float > *pProducer4=NULL)
 
- Public Member Functions inherited from TransformBase
 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
- Public Member Functions inherited from ValueConsumer< float >
void connectFrom (ValueProducer< float > *pProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- - - - - - - - - - - -

-Protected Attributes

float R1
 
float Vin
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
- - - - - - - - - - - - - -

-Additional Inherited Members

- Static Public Member Functions inherited from TransformBase
static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
-

Detailed Description

-

A transform that uses the voltage divider formula to resolve the resistance of R2 in the circuit, given a fixed voltage sent into the divider (Vin), a known resistance an the junction of the two resistors (R1), and the output of the divider (Vout). This is the typical way a sensor such as a temperature sender or oil pressure sender is wired up: the sender's resistance varies based on temperature or pressure, so it is usually "R2" in a voltage divider. R1 and/or Vin is selected in such a way to ensure Vout (the value read by the MCU's analog input) does not exceed 3.3 volts.

- -

Definition at line 17 of file voltagedividerR2.h.

-

Constructor & Destructor Documentation

- -

◆ VoltageDividerR2()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
VoltageDividerR2::VoltageDividerR2 (float R1,
float Vin = 3.3,
String config_path = "" 
)
-
- -

Definition at line 3 of file voltagedividerR2.cpp.

- -
-
-

Member Function Documentation

- -

◆ get_config_schema()

- -
-
- - - - - -
- - - - - - - -
String VoltageDividerR2::get_config_schema ()
-
-overridevirtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented from Configurable.

- -

Definition at line 29 of file voltagedividerR2.cpp.

- -
-
- -

◆ get_configuration()

- -
-
- - - - - -
- - - - - - - - -
JsonObject & VoltageDividerR2::get_configuration (JsonBuffer & buf)
-
-overridevirtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented from Configurable.

- -

Definition at line 14 of file voltagedividerR2.cpp.

- -
-
- -

◆ set_configuration()

- -
-
- - - - - -
- - - - - - - - -
bool VoltageDividerR2::set_configuration (const JsonObject & config)
-
-overridevirtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented from Configurable.

- -

Definition at line 33 of file voltagedividerR2.cpp.

- -
-
- -

◆ set_input()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void VoltageDividerR2::set_input (float newValue,
uint8_t inputChannel = 0 
)
-
-overridevirtual
-
-

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
- - - -
newValuethe value of the input
inputChannelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
-
-
- -

Reimplemented from ValueConsumer< float >.

- -

Definition at line 8 of file voltagedividerR2.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
- -
-
-

Member Data Documentation

- -

◆ R1

- -
-
- - - - - -
- - - - -
float VoltageDividerR2::R1
-
-protected
-
- -

Definition at line 30 of file voltagedividerR2.h.

- -
-
- -

◆ Vin

- -
-
- - - - - -
- - - - -
float VoltageDividerR2::Vin
-
-protected
-
- -

Definition at line 31 of file voltagedividerR2.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_voltage_divider_r2__inherit__graph.map b/docs/class_voltage_divider_r2__inherit__graph.map deleted file mode 100644 index 59fdb44b5..000000000 --- a/docs/class_voltage_divider_r2__inherit__graph.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/class_voltage_divider_r2__inherit__graph.md5 b/docs/class_voltage_divider_r2__inherit__graph.md5 deleted file mode 100644 index 571361a7a..000000000 --- a/docs/class_voltage_divider_r2__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c362edfa2d41f9999d2b6b89003f95c2 \ No newline at end of file diff --git a/docs/class_voltage_divider_r2__inherit__graph.png b/docs/class_voltage_divider_r2__inherit__graph.png deleted file mode 100644 index 446fb1f3a..000000000 Binary files a/docs/class_voltage_divider_r2__inherit__graph.png and /dev/null differ diff --git a/docs/class_voltage_divider_r2_a43fa7bb9dc49c50de247aac272d7f697_cgraph.map b/docs/class_voltage_divider_r2_a43fa7bb9dc49c50de247aac272d7f697_cgraph.map deleted file mode 100644 index af33892eb..000000000 --- a/docs/class_voltage_divider_r2_a43fa7bb9dc49c50de247aac272d7f697_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_voltage_divider_r2_a43fa7bb9dc49c50de247aac272d7f697_cgraph.md5 b/docs/class_voltage_divider_r2_a43fa7bb9dc49c50de247aac272d7f697_cgraph.md5 deleted file mode 100644 index 3829621ee..000000000 --- a/docs/class_voltage_divider_r2_a43fa7bb9dc49c50de247aac272d7f697_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -e860cda13a3611398f4eadb6bbd2e031 \ No newline at end of file diff --git a/docs/class_voltage_divider_r2_a43fa7bb9dc49c50de247aac272d7f697_cgraph.png b/docs/class_voltage_divider_r2_a43fa7bb9dc49c50de247aac272d7f697_cgraph.png deleted file mode 100644 index 8805bd9cb..000000000 Binary files a/docs/class_voltage_divider_r2_a43fa7bb9dc49c50de247aac272d7f697_cgraph.png and /dev/null differ diff --git a/docs/class_w_s_client.html b/docs/class_w_s_client.html deleted file mode 100644 index f494369b7..000000000 --- a/docs/class_w_s_client.html +++ /dev/null @@ -1,608 +0,0 @@ - - - - - - - -SensESP: WSClient Class Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
WSClient Class Reference
-
-
- -

#include <ws_client.h>

-
-Inheritance diagram for WSClient:
-
-
Inheritance graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 WSClient (String config_path, SKDelta *sk_delta, std::function< void(bool)> connected_cb, void_cb_func delta_cb)
 
void enable ()
 
void on_disconnected ()
 
void on_error ()
 
void on_connected (uint8_t *payload)
 
void on_receive_delta (uint8_t *payload)
 
void connect ()
 
void loop ()
 
bool is_connected ()
 
void restart ()
 
void send_delta ()
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override final
 
virtual bool set_configuration (const JsonObject &config) override final
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- - - - - - - -

-Additional Inherited Members

- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
-

Detailed Description

-
-

Definition at line 16 of file ws_client.h.

-

Constructor & Destructor Documentation

- -

◆ WSClient()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
WSClient::WSClient (String config_path,
SKDeltask_delta,
std::function< void(bool)> connected_cb,
void_cb_func delta_cb 
)
-
- -

Definition at line 41 of file ws_client.cpp.

- -
-
-

Member Function Documentation

- -

◆ connect()

- -
-
- - - - - - - -
void WSClient::connect ()
-
- -

Definition at line 111 of file ws_client.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - - -
- -
-
- -

◆ enable()

- -
-
- - - - - - - -
void WSClient::enable ()
-
- -

Definition at line 54 of file ws_client.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - - - - -
-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ get_config_schema()

- -
-
- - - - - -
- - - - - - - -
String WSClient::get_config_schema ()
-
-overridevirtual
-
-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
- -

Reimplemented from Configurable.

- -

Definition at line 364 of file ws_client.cpp.

- -
-
- -

◆ get_configuration()

- -
-
- - - - - -
- - - - - - - - -
JsonObject & WSClient::get_configuration (JsonBuffer & buf)
-
-finaloverridevirtual
-
-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

- -

Reimplemented from Configurable.

- -

Definition at line 343 of file ws_client.cpp.

- -
-
- -

◆ is_connected()

- -
-
- - - - - - - -
bool WSClient::is_connected ()
-
- -

Definition at line 321 of file ws_client.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ loop()

- -
-
- - - - - - - -
void WSClient::loop ()
-
- -

Definition at line 317 of file ws_client.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - - -
- -
-
- -

◆ on_connected()

- -
-
- - - - - - - - -
void WSClient::on_connected (uint8_t * payload)
-
- -

Definition at line 87 of file ws_client.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ on_disconnected()

- -
-
- - - - - - - -
void WSClient::on_disconnected ()
-
- -

Definition at line 67 of file ws_client.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ on_error()

- -
-
- - - - - - - -
void WSClient::on_error ()
-
- -

Definition at line 81 of file ws_client.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ on_receive_delta()

- -
-
- - - - - - - - -
void WSClient::on_receive_delta (uint8_t * payload)
-
- -

Definition at line 93 of file ws_client.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - -
- -
-
- -

◆ restart()

- -
-
- - - - - - - -
void WSClient::restart ()
-
- -

Definition at line 325 of file ws_client.cpp.

- -
-
- -

◆ send_delta()

- -
-
- - - - - - - -
void WSClient::send_delta ()
-
- -

Definition at line 332 of file ws_client.cpp.

-
-Here is the call graph for this function:
-
-
- - - - - -
-
-Here is the caller graph for this function:
-
-
- - - - - -
- -
-
- -

◆ set_configuration()

- -
-
- - - - - -
- - - - - - - - -
bool WSClient::set_configuration (const JsonObject & config)
-
-finaloverridevirtual
-
-

Sets the current state of local member variables using the data stored in config.

- -

Reimplemented from Configurable.

- -

Definition at line 369 of file ws_client.cpp.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/class_w_s_client.js b/docs/class_w_s_client.js deleted file mode 100644 index 34cf882fc..000000000 --- a/docs/class_w_s_client.js +++ /dev/null @@ -1,17 +0,0 @@ -var class_w_s_client = -[ - [ "WSClient", "class_w_s_client.html#a46394a4855cdb0d9587fde318574b6e4", null ], - [ "connect", "class_w_s_client.html#a1612670a5dccbc8a39518ae972fbae90", null ], - [ "enable", "class_w_s_client.html#a1313d063fd61739f7e3ca9b2c126b048", null ], - [ "get_config_schema", "class_w_s_client.html#a78fbe2ccf0f84423abbf9d1047aff0bc", null ], - [ "get_configuration", "class_w_s_client.html#a2a41e313d8d3be52cd7bb53e6bbf3117", null ], - [ "is_connected", "class_w_s_client.html#a6ae43b80f511194b43b0dff2763d68b1", null ], - [ "loop", "class_w_s_client.html#ae23657a7da08a9413a09e9054495904e", null ], - [ "on_connected", "class_w_s_client.html#a262d41693fab15daa3acac9de78fbf35", null ], - [ "on_disconnected", "class_w_s_client.html#ae110b10f209f55a82e2d700c8c9149a7", null ], - [ "on_error", "class_w_s_client.html#af921852d17f75f46999c2cc1442c4723", null ], - [ "on_receive_delta", "class_w_s_client.html#a2b235f3e62668b6e7923cbbcba00e5c1", null ], - [ "restart", "class_w_s_client.html#a478877d14e5a303c24ea60a4cc4f8752", null ], - [ "send_delta", "class_w_s_client.html#ab6bcc3fb4cfe71aff3929480fab9bd5a", null ], - [ "set_configuration", "class_w_s_client.html#ad099870379ee102fa4f5b3b584b50658", null ] -]; \ No newline at end of file diff --git a/docs/class_w_s_client__inherit__graph.md5 b/docs/class_w_s_client__inherit__graph.md5 deleted file mode 100644 index 48a06487a..000000000 --- a/docs/class_w_s_client__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -9451bccdac7856323f18bd70fb9b1ef5 \ No newline at end of file diff --git a/docs/class_w_s_client__inherit__graph.png b/docs/class_w_s_client__inherit__graph.png deleted file mode 100644 index 6b1a11f27..000000000 Binary files a/docs/class_w_s_client__inherit__graph.png and /dev/null differ diff --git a/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.map b/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.map deleted file mode 100644 index 0d0534cfa..000000000 --- a/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.md5 b/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.md5 deleted file mode 100644 index 712adace3..000000000 --- a/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -83aac312cbc0346c5f1d3f36363b6f85 \ No newline at end of file diff --git a/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.png b/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.png deleted file mode 100644 index aa92c6bf0..000000000 Binary files a/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.png and /dev/null differ diff --git a/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.map b/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.map deleted file mode 100644 index 4c6f12a02..000000000 --- a/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.md5 b/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.md5 deleted file mode 100644 index c3e07a9fb..000000000 --- a/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -a4211d3326198085070953905c14f463 \ No newline at end of file diff --git a/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.png b/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.png deleted file mode 100644 index 6c10adeb6..000000000 Binary files a/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.png and /dev/null differ diff --git a/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.map b/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.map deleted file mode 100644 index f73c39426..000000000 --- a/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.md5 b/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.md5 deleted file mode 100644 index fe46ea49c..000000000 --- a/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -5094c964f2c8668f3b6cb437f128425f \ No newline at end of file diff --git a/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.png b/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.png deleted file mode 100644 index 42e026876..000000000 Binary files a/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.png and /dev/null differ diff --git a/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.md5 b/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.md5 deleted file mode 100644 index 803700e37..000000000 --- a/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -3a37a2b492824f47d00172baf4433156 \ No newline at end of file diff --git a/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.png b/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.png deleted file mode 100644 index 5f3346caa..000000000 Binary files a/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.png and /dev/null differ diff --git a/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.md5 b/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.md5 deleted file mode 100644 index 78f10f53a..000000000 --- a/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -4b297e570d6e6252e1b26c24df1303a8 \ No newline at end of file diff --git a/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.png b/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.png deleted file mode 100644 index fda28a353..000000000 Binary files a/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.png and /dev/null differ diff --git a/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.md5 b/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.md5 deleted file mode 100644 index 808092099..000000000 --- a/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -d9d3b557804182ecf6dbc8d6e5157756 \ No newline at end of file diff --git a/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.png b/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.png deleted file mode 100644 index 0fa41f189..000000000 Binary files a/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.png and /dev/null differ diff --git a/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_cgraph.map b/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_cgraph.map deleted file mode 100644 index dc4a691e0..000000000 --- a/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_cgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_cgraph.md5 b/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_cgraph.md5 deleted file mode 100644 index 621577e4c..000000000 --- a/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -e98822f315c5e7d594a7b2e6903a4c7d \ No newline at end of file diff --git a/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_cgraph.png b/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_cgraph.png deleted file mode 100644 index b26faf631..000000000 Binary files a/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_cgraph.png and /dev/null differ diff --git a/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.map b/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.map deleted file mode 100644 index 7830c90bf..000000000 --- a/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.md5 b/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.md5 deleted file mode 100644 index 75aa484b7..000000000 --- a/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -f8aba38c59f1faf2186980633ce547a1 \ No newline at end of file diff --git a/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.png b/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.png deleted file mode 100644 index 6968aa33d..000000000 Binary files a/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.png and /dev/null differ diff --git a/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.md5 b/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.md5 deleted file mode 100644 index a3f135c89..000000000 --- a/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -2ff9ac099b5d63286ebdd4acf952236d \ No newline at end of file diff --git a/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.png b/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.png deleted file mode 100644 index c7a7ef11c..000000000 Binary files a/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.png and /dev/null differ diff --git a/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.map b/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.map deleted file mode 100644 index d496338db..000000000 --- a/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.md5 b/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.md5 deleted file mode 100644 index 8868c9869..000000000 --- a/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -d3a9148a3fd8e2aac7b28c75cd394009 \ No newline at end of file diff --git a/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.png b/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.png deleted file mode 100644 index 4e39eea8d..000000000 Binary files a/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.png and /dev/null differ diff --git a/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.md5 b/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.md5 deleted file mode 100644 index f670262bb..000000000 --- a/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -3f6e27a7e5d8a3267dfc5162e3056d8f \ No newline at end of file diff --git a/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.png b/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.png deleted file mode 100644 index 31d20b80c..000000000 Binary files a/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.png and /dev/null differ diff --git a/docs/classes.html b/docs/classes.html deleted file mode 100644 index 51f0e35ee..000000000 --- a/docs/classes.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - -SensESP: Class Index - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
Class Index
-
-
-
a | c | d | e | f | g | h | i | l | m | n | o | p | s | t | u | v | w
- - - - - - - - - - - - - - - - - - - - - - - -
  a  
-
ENUVector   
  l  
-
  p  
-
  t  
-
  f  
-
AnalogInput   LedBlinker   Position   TimeString   
AnalogVoltage   FreeMem   Linear   PSTI030SentenceParser   Transform   
AngleCorrection   Frequency   
  m  
-
PSTI032SentenceParser   TransformBase   
  c  
-
  g  
-
PSTISentenceParser   
  u  
-
Median   
  s  
-
ChangeFilter   GPGGASentenceParser   MovingAverage   Uptime   
Configurable   GPGLLSentenceParser   
  n  
-
CurveInterpolator::Sample   
  v  
-
CurveInterpolator   GPRMCSentenceParser   SensESPApp   
  d  
-
GPSInput   Networking   Sensor   ValueConsumer   
  h  
-
NMEAData   SentenceParser   ValueProducer   
DallasTemperatureSensors   NMEAParser   SKDelta   VoltageDividerR2   
Debounce   HTTPServer   NumericSensor   SKEmitter   
  w  
-
Difference   
  i  
-
  o  
-
SKOutput   
DigitalInput   SKOutputTime   WSClient   
DigitalInputCounter   IntegerSensor   Observable   StringSensor   
DigitalInputValue   Integrator   ObservableValue   SymmetricTransform   
  e  
-
IPAddrDev   OneWireTemperature   SystemHz   
Enable   
-
a | c | d | e | f | g | h | i | l | m | n | o | p | s | t | u | v | w
-
-
- - - - diff --git a/docs/configurable_8cpp__incl.map b/docs/configurable_8cpp__incl.map deleted file mode 100644 index 7caba6c1c..000000000 --- a/docs/configurable_8cpp__incl.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/configurable_8cpp__incl.md5 b/docs/configurable_8cpp__incl.md5 deleted file mode 100644 index d90e93f0f..000000000 --- a/docs/configurable_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -b5a4b71e51d2bc983ab0466b79cd0247 \ No newline at end of file diff --git a/docs/configurable_8cpp__incl.png b/docs/configurable_8cpp__incl.png deleted file mode 100644 index 2d12c2c94..000000000 Binary files a/docs/configurable_8cpp__incl.png and /dev/null differ diff --git a/docs/configurable_8cpp_source.html b/docs/configurable_8cpp_source.html deleted file mode 100644 index 3821acb1c..000000000 --- a/docs/configurable_8cpp_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SensESP: src/system/configurable.cpp Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
configurable.cpp
-
-
-Go to the documentation of this file.
1 #include "sensesp.h"
2 
3 #include "configurable.h"
4 
5 #include "FS.h"
6 
7 // Define a global configurable map. Rationale for a global variable:
8 // Every Configurable with an id gets registered, and carrying an object
9 // reference around would unnecessarily reduce readability of the code.
10 std::map<String, Configurable*> configurables;
11 
12 Configurable::Configurable(String config_path="")
13  : config_path{config_path} {
14  if (config_path != "") {
15  auto it = configurables.find(config_path);
16  if (it != configurables.end()) {
17  debugW("WARNING: Overriding id %s", config_path.c_str());
18  }
19  configurables[config_path] = this;
20  }
21 }
22 
23 JsonObject& Configurable::get_configuration(JsonBuffer& buf) {
24  debugW("WARNING: get_configuration not defined");
25  return buf.createObject();
26 }
27 
28 // Sets and saves the configuration
29 bool Configurable::set_configuration(const JsonObject& config) {
30  debugW("WARNING: set_configuration not defined");
31  return false;
32 }
33 
34 
36  return "{}";
37 }
38 
40  if (config_path=="" || !SPIFFS.exists(config_path)) {
41  // nothing to load from
42  debugI(
43  "Not loading configuration, config_path empty or file does not exist: %s",
44  config_path.c_str());
45  return;
46  }
47 
48  File f = SPIFFS.open(config_path, "r");
49  DynamicJsonBuffer jsonBuffer;
50  JsonObject& obj = jsonBuffer.parse(f);
51  if (!obj.success()) {
52  debugW(
53  "WARNING: Could not parse configuration for %s",
54  config_path.c_str());
55  }
56  if (!set_configuration(obj)) {
57  debugW(
58  "WARNING: Could not set configuration for %s",
59  config_path.c_str());
60  }
61  f.close();
62 }
63 
65  if (config_path=="") {
66  debugI("WARNING: Could not save configuration (config_path not set)");
67  }
68  DynamicJsonBuffer jsonBuffer;
69  JsonObject& obj = get_configuration(jsonBuffer);
70  File f = SPIFFS.open(config_path, "w");
71  obj.printTo(f);
72  f.close();
73 }
virtual bool set_configuration(const JsonObject &config)
-
Configurable(String config_path)
-
virtual JsonObject & get_configuration(JsonBuffer &buf)
-
virtual void load_configuration()
-
virtual void save_configuration()
-
std::map< String, Configurable * > configurables
-
virtual String get_config_schema()
-
const String config_path
Definition: configurable.h:29
- - -
-
- - - - diff --git a/docs/configurable_8h.html b/docs/configurable_8h.html deleted file mode 100644 index 834da5a4c..000000000 --- a/docs/configurable_8h.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - -SensESP: src/system/configurable.h File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
configurable.h File Reference
-
-
-
#include <map>
-#include "Arduino.h"
-#include <ArduinoJson.h>
-
-Include dependency graph for configurable.h:
-
-
- - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

- - - - -

-Classes

class  Configurable
 
- - - -

-Variables

std::map< String, Configurable * > configurables
 
-

Variable Documentation

- -

◆ configurables

- -
-
- - - - -
std::map<String, Configurable*> configurables
-
- -

Definition at line 10 of file configurable.cpp.

- -
-
-
-
- - - - diff --git a/docs/configurable_8h__dep__incl.map b/docs/configurable_8h__dep__incl.map deleted file mode 100644 index 736b9192b..000000000 --- a/docs/configurable_8h__dep__incl.map +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/configurable_8h__dep__incl.md5 b/docs/configurable_8h__dep__incl.md5 deleted file mode 100644 index e0bccd72f..000000000 --- a/docs/configurable_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -f0fa9529dac4aded948d76179285cb50 \ No newline at end of file diff --git a/docs/configurable_8h__dep__incl.png b/docs/configurable_8h__dep__incl.png deleted file mode 100644 index ade49870e..000000000 Binary files a/docs/configurable_8h__dep__incl.png and /dev/null differ diff --git a/docs/configurable_8h__incl.map b/docs/configurable_8h__incl.map deleted file mode 100644 index 0c1b72971..000000000 --- a/docs/configurable_8h__incl.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/configurable_8h__incl.md5 b/docs/configurable_8h__incl.md5 deleted file mode 100644 index 880c80eb9..000000000 --- a/docs/configurable_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -c565045ce3999da22e32e7611247d42c \ No newline at end of file diff --git a/docs/configurable_8h__incl.png b/docs/configurable_8h__incl.png deleted file mode 100644 index 9b45de317..000000000 Binary files a/docs/configurable_8h__incl.png and /dev/null differ diff --git a/docs/configurable_8h_source.html b/docs/configurable_8h_source.html deleted file mode 100644 index 29e84df3f..000000000 --- a/docs/configurable_8h_source.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -SensESP: src/system/configurable.h Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
configurable.h
-
-
-Go to the documentation of this file.
1 #ifndef _configurable_H_
2 #define _configurable_H_
3 
4 #include <map>
5 
6 #include "Arduino.h"
7 #include <ArduinoJson.h>
8 
9 
15 class Configurable {
16  public:
27  Configurable(String config_path);
28 
29  const String config_path;
30 
31 
38  virtual JsonObject& get_configuration(JsonBuffer& buf);
39 
40 
41 
46  virtual bool set_configuration(const JsonObject& config);
47 
48 
56  virtual String get_config_schema();
57 
58 
63  virtual void save_configuration();
64 
65  protected:
70  virtual void load_configuration();
71 
72  };
73 
74 extern std::map<String, Configurable*> configurables;
75 
76 #endif
virtual bool set_configuration(const JsonObject &config)
-
Configurable(String config_path)
-
virtual JsonObject & get_configuration(JsonBuffer &buf)
-
virtual void load_configuration()
-
virtual void save_configuration()
-
virtual String get_config_schema()
-
std::map< String, Configurable * > configurables
-
const String config_path
Definition: configurable.h:29
- -
-
- - - - diff --git a/docs/curveinterpolator_8cpp.html b/docs/curveinterpolator_8cpp.html deleted file mode 100644 index 93be5c719..000000000 --- a/docs/curveinterpolator_8cpp.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -SensESP: src/transforms/curveinterpolator.cpp File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
curveinterpolator.cpp File Reference
-
-
-
#include "curveinterpolator.h"
-#include <RemoteDebug.h>
-
-Include dependency graph for curveinterpolator.cpp:
-
-
- - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

-
-
- - - - diff --git a/docs/curveinterpolator_8cpp__incl.map b/docs/curveinterpolator_8cpp__incl.map deleted file mode 100644 index 0c10e377d..000000000 --- a/docs/curveinterpolator_8cpp__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/curveinterpolator_8cpp__incl.md5 b/docs/curveinterpolator_8cpp__incl.md5 deleted file mode 100644 index 83a53fad4..000000000 --- a/docs/curveinterpolator_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -e0f77b64f54d9e8f96c201bd35be796c \ No newline at end of file diff --git a/docs/curveinterpolator_8cpp__incl.png b/docs/curveinterpolator_8cpp__incl.png deleted file mode 100644 index e6d46a4e9..000000000 Binary files a/docs/curveinterpolator_8cpp__incl.png and /dev/null differ diff --git a/docs/curveinterpolator_8cpp_source.html b/docs/curveinterpolator_8cpp_source.html deleted file mode 100644 index 8521c4f31..000000000 --- a/docs/curveinterpolator_8cpp_source.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - -SensESP: src/transforms/curveinterpolator.cpp Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
curveinterpolator.cpp
-
-
-Go to the documentation of this file.
1 #include "curveinterpolator.h"
2 
3 #include <RemoteDebug.h>
4 
6 }
7 
8 CurveInterpolator::Sample::Sample(float input, float output) : input{input}, output{output} {
9 }
10 
11 CurveInterpolator::Sample::Sample(JsonObject& obj) : input{obj["input"]}, output{obj["output"]} {
12 
13 }
14 
15 
16 CurveInterpolator::CurveInterpolator(std::set<Sample>* defaults, String config_path)
18 
19  className = "CurveInterpolator";
20 
21  // Load default values if no configuration present...
22  if (defaults != NULL) {
23  samples.clear();
24  samples = *defaults;
25  }
26 
28 
29 }
30 
31 
32 void CurveInterpolator::set_input(float input, uint8_t inputChannel) {
33 
34  float x0 = 0.0;
35  float y0 = 0.0;
36 
37  std::set<Sample>::iterator it = samples.begin();
38 
39  while (it != samples.end()) {
40  auto& sample = *it;
41 
42  if (input > sample.input) {
43  x0 = sample.input;
44  y0 = sample.output;
45  }
46  else {
47  break;
48  }
49 
50  it++;
51  }
52 
53  if (it != samples.end()) {
54  // We found our range. "input" is between
55  // minInput and it->input. CurveInterpolator the result
56  Sample max = *it;
57  float x1 = max.input;
58  float y1 = max.output;
59 
60  output = (y0 * (x1 - input) + y1 * (input - x0)) / (x1 - x0);
61  }
62  else {
63  // Hit the end of the table with no match.
64  output = 9999.9;
65 // debugW("Could not find sample interval for input %0f", input);
66  }
67 
68  notify();
69 }
70 
71 
72 JsonObject& CurveInterpolator::get_configuration(JsonBuffer& buf) {
73  JsonObject& root = buf.createObject();
74 
75  JsonArray& jSamples = root.createNestedArray("samples");
76  for (auto& sample : samples) {
77  JsonObject& entry = buf.createObject();
78  entry["input"] = sample.input;
79  entry["output"] = sample.output;
80  jSamples.add(entry);
81  }
82  return root;
83 }
84 
85 static const char SCHEMA[] PROGMEM = R"({
86  "type": "object",
87  "properties": {
88  "samples": { "title": "Sample values",
89  "type": "array",
90  "items": { "title": "Sample",
91  "type": "object",
92  "properties": {
93  "input": { "type": "number" },
94  "output": { "type": "number" }
95  }}}
96  }
97  })";
98 
100  return FPSTR(SCHEMA);
101 }
102 
103 bool CurveInterpolator::set_configuration(const JsonObject& config) {
104 
105  String expected[] = { "samples" };
106  for (auto str : expected) {
107  if (!config.containsKey(str)) {
108  debugE("Can not set CurveInterpolator configuration: missing json field %s\n", str.c_str());
109  return false;
110  }
111  }
112 
113  JsonArray& arr = config["samples"];
114  if (arr.size() > 0) {
115  samples.clear();
116  for (auto& jentry : arr) {
117  Sample sample(jentry.as<JsonObject>());
118  samples.insert(sample);
119  }
120 
121  }
122 
123  return true;
124 
125 }
126 
128  samples.clear();
129 }
130 
132  Sample* pSampleCopy = new Sample(sample);
133  samples.insert(*pSampleCopy);
134 }
void addSample(const Sample &newSample)
-
void notify()
Definition: observable.cpp:3
-
virtual JsonObject & get_configuration(JsonBuffer &buf) override
-
virtual bool set_configuration(const JsonObject &config) override
-
virtual void load_configuration()
- - - - - - -
const String config_path
Definition: configurable.h:29
-
void set_input(float input, uint8_t inputChannel=0) override final
- - -
CurveInterpolator(std::set< Sample > *defaults=NULL, String config_path="")
-
virtual String get_config_schema() override
-
const char * className
Definition: enable.h:55
-
const char PAGE_index [] PROGMEM
Definition: index.h:2
-
-
- - - - diff --git a/docs/curveinterpolator_8h.html b/docs/curveinterpolator_8h.html deleted file mode 100644 index efca17275..000000000 --- a/docs/curveinterpolator_8h.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - -SensESP: src/transforms/curveinterpolator.h File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
curveinterpolator.h File Reference
-
-
-
-Include dependency graph for curveinterpolator.h:
-
-
- - - - - - - - - - - - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - -
-
-

Go to the source code of this file.

- - - - - - -

-Classes

class  CurveInterpolator
 
class  CurveInterpolator::Sample
 
-
-
- - - - diff --git a/docs/curveinterpolator_8h__dep__incl.md5 b/docs/curveinterpolator_8h__dep__incl.md5 deleted file mode 100644 index 656ec8a25..000000000 --- a/docs/curveinterpolator_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -108cd7c430b37f09d0db56b5af8f44b8 \ No newline at end of file diff --git a/docs/curveinterpolator_8h__dep__incl.png b/docs/curveinterpolator_8h__dep__incl.png deleted file mode 100644 index 636712946..000000000 Binary files a/docs/curveinterpolator_8h__dep__incl.png and /dev/null differ diff --git a/docs/curveinterpolator_8h__incl.map b/docs/curveinterpolator_8h__incl.map deleted file mode 100644 index dc3b2570d..000000000 --- a/docs/curveinterpolator_8h__incl.map +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/curveinterpolator_8h__incl.md5 b/docs/curveinterpolator_8h__incl.md5 deleted file mode 100644 index 80bbeb34c..000000000 --- a/docs/curveinterpolator_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -46c2ac4ec9ca780108da72763252b3ec \ No newline at end of file diff --git a/docs/curveinterpolator_8h__incl.png b/docs/curveinterpolator_8h__incl.png deleted file mode 100644 index d7ef99226..000000000 Binary files a/docs/curveinterpolator_8h__incl.png and /dev/null differ diff --git a/docs/curveinterpolator_8h_source.html b/docs/curveinterpolator_8h_source.html deleted file mode 100644 index 39d6a096b..000000000 --- a/docs/curveinterpolator_8h_source.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -SensESP: src/transforms/curveinterpolator.h Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
curveinterpolator.h
-
-
-Go to the documentation of this file.
1 #ifndef _CurveInterpolator_H_
2 #define _CurveInterpolator_H_
3 
4 #include "transforms/transform.h"
5 
14 
15  public:
16  class Sample {
17  public:
18  float input;
19  float output;
20 
21  Sample();
22  Sample(float input, float output);
23  Sample(JsonObject& obj);
24 
25  friend bool operator<(const Sample& lhs, const Sample& rhs) { return lhs.input < rhs.input; }
26  };
27 
28  public:
29  CurveInterpolator(std::set<Sample>* defaults = NULL, String config_path="");
30 
31  // Set and retrieve the transformed value
32  void set_input(float input, uint8_t inputChannel = 0) override final;
33 
34 
35  // For reading and writing the configuration of this transformation
36  virtual JsonObject& get_configuration(JsonBuffer& buf) override;
37  virtual bool set_configuration(const JsonObject& config) override;
38  virtual String get_config_schema() override;
39 
40  // For manually adding sample points
41  void clearSamples();
42  void addSample(const Sample& newSample);
43 
44  private:
45  std::set<Sample> samples;
46 
47 };
48 
49 #endif
-
void addSample(const Sample &newSample)
-
virtual JsonObject & get_configuration(JsonBuffer &buf) override
-
virtual bool set_configuration(const JsonObject &config) override
- - - - - - - -
const String config_path
Definition: configurable.h:29
-
void set_input(float input, uint8_t inputChannel=0) override final
-
CurveInterpolator(std::set< Sample > *defaults=NULL, String config_path="")
-
virtual String get_config_schema() override
-
friend bool operator<(const Sample &lhs, const Sample &rhs)
-
-
- - - - diff --git a/docs/debounce_8cpp.html b/docs/debounce_8cpp.html deleted file mode 100644 index 4441bdf5d..000000000 --- a/docs/debounce_8cpp.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SensESP: src/transforms/debounce.cpp File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
debounce.cpp File Reference
-
-
-
#include "debounce.h"
-
-Include dependency graph for debounce.cpp:
-
-
- - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

-
-
- - - - diff --git a/docs/debounce_8cpp__incl.map b/docs/debounce_8cpp__incl.map deleted file mode 100644 index 6f04c5a88..000000000 --- a/docs/debounce_8cpp__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/debounce_8cpp__incl.md5 b/docs/debounce_8cpp__incl.md5 deleted file mode 100644 index 75f5a0f2d..000000000 --- a/docs/debounce_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -d85c668bc9ade47ff34984a5db2a860b \ No newline at end of file diff --git a/docs/debounce_8cpp__incl.png b/docs/debounce_8cpp__incl.png deleted file mode 100644 index 98be50114..000000000 Binary files a/docs/debounce_8cpp__incl.png and /dev/null differ diff --git a/docs/debounce_8cpp_source.html b/docs/debounce_8cpp_source.html deleted file mode 100644 index 658781035..000000000 --- a/docs/debounce_8cpp_source.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -SensESP: src/transforms/debounce.cpp Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
debounce.cpp
-
-
-Go to the documentation of this file.
1 #include "debounce.h"
2 
3 Debounce::Debounce(int msMinDelay, String config_path) :
4  BooleanTransform(config_path), msMinDelay{msMinDelay} {
5  className = "Debounce";
6  lastTime = millis();
7 }
8 
9 
10 void Debounce::set_input(bool newValue, uint8_t inputChannel) {
11 
12  int elapsed = millis() - lastTime;
13  if (newValue != output || elapsed > msMinDelay) {
14  output = newValue;
15  lastTime = millis();
16  notify();
17  }
18 }
Debounce(int msMinDelay=200, String config_path="")
Definition: debounce.cpp:3
-
void notify()
Definition: observable.cpp:3
-
int msMinDelay
Definition: debounce.h:21
-
virtual void set_input(bool newValue, uint8_t inputChannel=0) override
Definition: debounce.cpp:10
-
unsigned long lastTime
Definition: debounce.h:20
- - - -
-
- - - - diff --git a/docs/debounce_8h.html b/docs/debounce_8h.html deleted file mode 100644 index d0d676f6b..000000000 --- a/docs/debounce_8h.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - -SensESP: src/transforms/debounce.h File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
debounce.h File Reference
-
-
-
-Include dependency graph for debounce.h:
-
-
- - - - - - - - - - - - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - -
-
-

Go to the source code of this file.

- - - - -

-Classes

class  Debounce
 
-
-
- - - - diff --git a/docs/debounce_8h__dep__incl.md5 b/docs/debounce_8h__dep__incl.md5 deleted file mode 100644 index a47d81de2..000000000 --- a/docs/debounce_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -fa6f864f394d04ed88ff91c09d6a5fc6 \ No newline at end of file diff --git a/docs/debounce_8h__dep__incl.png b/docs/debounce_8h__dep__incl.png deleted file mode 100644 index ca8c54ca6..000000000 Binary files a/docs/debounce_8h__dep__incl.png and /dev/null differ diff --git a/docs/debounce_8h__incl.map b/docs/debounce_8h__incl.map deleted file mode 100644 index edfcd0802..000000000 --- a/docs/debounce_8h__incl.map +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/debounce_8h__incl.md5 b/docs/debounce_8h__incl.md5 deleted file mode 100644 index bc771b028..000000000 --- a/docs/debounce_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -999dc3ab387ed9c0a860c4421585a0e7 \ No newline at end of file diff --git a/docs/debounce_8h__incl.png b/docs/debounce_8h__incl.png deleted file mode 100644 index f378a0072..000000000 Binary files a/docs/debounce_8h__incl.png and /dev/null differ diff --git a/docs/debounce_8h_source.html b/docs/debounce_8h_source.html deleted file mode 100644 index a2501260d..000000000 --- a/docs/debounce_8h_source.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -SensESP: src/transforms/debounce.h Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
debounce.h
-
-
-Go to the documentation of this file.
1 #ifndef debounce_H
2 #define debounce_H
3 
4 
5 #include "transforms/transform.h"
6 
12 class Debounce : public BooleanTransform {
13 
14  public:
15  Debounce(int msMinDelay = 200, String config_path="");
16 
17  virtual void set_input(bool newValue, uint8_t inputChannel = 0) override;
18 
19  protected:
20  unsigned long lastTime;
22 };
23 
24 #endif
Debounce(int msMinDelay=200, String config_path="")
Definition: debounce.cpp:3
-
int msMinDelay
Definition: debounce.h:21
-
virtual void set_input(bool newValue, uint8_t inputChannel=0) override
Definition: debounce.cpp:10
- -
unsigned long lastTime
Definition: debounce.h:20
- -
const String config_path
Definition: configurable.h:29
- -
-
- - - - diff --git a/docs/difference_8cpp.html b/docs/difference_8cpp.html deleted file mode 100644 index 116b87ce1..000000000 --- a/docs/difference_8cpp.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SensESP: src/transforms/difference.cpp File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
difference.cpp File Reference
-
-
-
#include "difference.h"
-
-Include dependency graph for difference.cpp:
-
-
- - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

-
-
- - - - diff --git a/docs/difference_8cpp__incl.map b/docs/difference_8cpp__incl.map deleted file mode 100644 index 63f7747ef..000000000 --- a/docs/difference_8cpp__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/difference_8cpp__incl.md5 b/docs/difference_8cpp__incl.md5 deleted file mode 100644 index e8682f9de..000000000 --- a/docs/difference_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -e1f625960c1cbd23e473674718baea66 \ No newline at end of file diff --git a/docs/difference_8cpp__incl.png b/docs/difference_8cpp__incl.png deleted file mode 100644 index 46b6f91a0..000000000 Binary files a/docs/difference_8cpp__incl.png and /dev/null differ diff --git a/docs/difference_8cpp_source.html b/docs/difference_8cpp_source.html deleted file mode 100644 index 452897834..000000000 --- a/docs/difference_8cpp_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SensESP: src/transforms/difference.cpp Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
difference.cpp
-
-
-Go to the documentation of this file.
1 #include "difference.h"
2 
3 // Difference
4 
5 Difference::Difference(float k1, float k2, String config_path)
6  : NumericTransform(config_path),
7  k1{ k1 },
8  k2{ k2 } {
9  className = "Difference";
10  load_configuration();
11 }
12 
13 void Difference::set_input(float input, uint8_t inputChannel) {
14  inputs[inputChannel] = input;
15  received |= 1<<inputChannel;
16  if (received==0b11) {
17  output = k1 * inputs[0] - k2 * inputs[1];
18  received = 0;
19  notify();
20  }
21 }
22 
23 
24 JsonObject& Difference::get_configuration(JsonBuffer& buf) {
25  JsonObject& root = buf.createObject();
26  root["k1"] = k1;
27  root["k2"] = k2;
28  root["value"] = output;
29  return root;
30 }
31 
32 static const char SCHEMA[] PROGMEM = R"({
33  "type": "object",
34  "properties": {
35  "k1": { "title": "Input #1 multiplier", "type": "number" },
36  "k2": { "title": "Input #2 multiplier", "type": "number" },
37  "value": { "title": "Last value", "type" : "number", "readOnly": true }
38  }
39  })";
40 
42  return FPSTR(SCHEMA);
43 }
44 
45 bool Difference::set_configuration(const JsonObject& config) {
46  String expected[] = {"k1", "k2" };
47  for (auto str : expected) {
48  if (!config.containsKey(str)) {
49  return false;
50  }
51  }
52  k1 = config["k1"];
53  k2 = config["k2"];
54  return true;
55 }
virtual bool set_configuration(const JsonObject &config) override
Definition: difference.cpp:45
-
void notify()
Definition: observable.cpp:3
-
virtual void set_input(float input, uint8_t inputChannel) override
Definition: difference.cpp:13
- - -
virtual JsonObject & get_configuration(JsonBuffer &buf) override
Definition: difference.cpp:24
- -
Difference(float k1, float k2, String config_path="")
Definition: difference.cpp:5
-
const char PAGE_index [] PROGMEM
Definition: index.h:2
-
virtual String get_config_schema() override
Definition: difference.cpp:41
-
-
- - - - diff --git a/docs/difference_8h.html b/docs/difference_8h.html deleted file mode 100644 index e61ca7327..000000000 --- a/docs/difference_8h.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - -SensESP: src/transforms/difference.h File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
difference.h File Reference
-
-
-
#include "transform.h"
-
-Include dependency graph for difference.h:
-
-
- - - - - - - - - - - - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - -
-
-

Go to the source code of this file.

- - - - -

-Classes

class  Difference
 
-
-
- - - - diff --git a/docs/difference_8h__dep__incl.md5 b/docs/difference_8h__dep__incl.md5 deleted file mode 100644 index a14bbf82b..000000000 --- a/docs/difference_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -53bff41c743ffa5c2592408d6d94e56d \ No newline at end of file diff --git a/docs/difference_8h__dep__incl.png b/docs/difference_8h__dep__incl.png deleted file mode 100644 index df3cc950c..000000000 Binary files a/docs/difference_8h__dep__incl.png and /dev/null differ diff --git a/docs/difference_8h__incl.map b/docs/difference_8h__incl.map deleted file mode 100644 index cd621481c..000000000 --- a/docs/difference_8h__incl.map +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/difference_8h__incl.md5 b/docs/difference_8h__incl.md5 deleted file mode 100644 index 039180dca..000000000 --- a/docs/difference_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -953c8bce602b464e7119e0461d9157f7 \ No newline at end of file diff --git a/docs/difference_8h__incl.png b/docs/difference_8h__incl.png deleted file mode 100644 index fb0c63332..000000000 Binary files a/docs/difference_8h__incl.png and /dev/null differ diff --git a/docs/difference_8h_source.html b/docs/difference_8h_source.html deleted file mode 100644 index 6746250b5..000000000 --- a/docs/difference_8h_source.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -SensESP: src/transforms/difference.h Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
difference.h
-
-
-Go to the documentation of this file.
1 #ifndef _difference_H_
2 #define _difference_H_
3 
4 #include "transform.h"
5 
6 // y = k1 * x1 - k2 * x2
7 class Difference : public NumericTransform {
8  public:
9  Difference(float k1, float k2, String config_path="");
10  virtual void set_input(float input, uint8_t inputChannel) override;
11  virtual JsonObject& get_configuration(JsonBuffer& buf) override;
12  virtual bool set_configuration(const JsonObject& config) override;
13  virtual String get_config_schema() override;
14 
15  private:
16  uint8_t received = 0;
17  float inputs[2];
18  float k1;
19  float k2;
20 };
21 
22 #endif
virtual bool set_configuration(const JsonObject &config) override
Definition: difference.cpp:45
- -
virtual void set_input(float input, uint8_t inputChannel) override
Definition: difference.cpp:13
- - -
const String config_path
Definition: configurable.h:29
-
virtual JsonObject & get_configuration(JsonBuffer &buf) override
Definition: difference.cpp:24
-
Difference(float k1, float k2, String config_path="")
Definition: difference.cpp:5
-
virtual String get_config_schema() override
Definition: difference.cpp:41
-
-
- - - - diff --git a/docs/digital__input_8cpp.html b/docs/digital__input_8cpp.html deleted file mode 100644 index e6bee3077..000000000 --- a/docs/digital__input_8cpp.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - -SensESP: src/sensors/digital_input.cpp File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
digital_input.cpp File Reference
-
-
-
#include "digital_input.h"
-#include <FunctionalInterrupt.h>
-#include "sensesp.h"
-
-Include dependency graph for digital_input.cpp:
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

-
-
- - - - diff --git a/docs/digital__input_8cpp__incl.map b/docs/digital__input_8cpp__incl.map deleted file mode 100644 index 86486bb88..000000000 --- a/docs/digital__input_8cpp__incl.map +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/digital__input_8cpp__incl.md5 b/docs/digital__input_8cpp__incl.md5 deleted file mode 100644 index cc7d292a6..000000000 --- a/docs/digital__input_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -84c5d0d51bf3cd8ce59d7f493e9a55a8 \ No newline at end of file diff --git a/docs/digital__input_8cpp__incl.png b/docs/digital__input_8cpp__incl.png deleted file mode 100644 index 8725ef834..000000000 Binary files a/docs/digital__input_8cpp__incl.png and /dev/null differ diff --git a/docs/digital__input_8cpp_source.html b/docs/digital__input_8cpp_source.html deleted file mode 100644 index c7a91c92b..000000000 --- a/docs/digital__input_8cpp_source.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -SensESP: src/sensors/digital_input.cpp Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
digital_input.cpp
-
-
-Go to the documentation of this file.
1 #include "digital_input.h"
2 
3 #include <FunctionalInterrupt.h>
4 
5 #include "sensesp.h"
6 
8  uint8_t pin, int pin_mode, int interrupt_type,
9  String config_path)
10  : Sensor(config_path), pin{pin}, interrupt_type{interrupt_type} {
11  className = "DigitalInput";
12  pinMode(pin, pin_mode);
13 }
14 
16  uint8_t pin, int pin_mode, int interrupt_type,
17  String config_path) :
19  BooleanProducer() {
20  className = "DigitalInputValue";
21  }
22 
24  app.onInterrupt(
26  [this](){
27  output = digitalRead(pin);
28  triggered = true;
29  });
30  app.onTick(
31  [this](){
32  if (triggered) {
33  triggered = false;
34  notify();
35  }
36  }
37  );
38 }
39 
40 
42  uint8_t pin, int pin_mode, int interrupt_type,
43  uint read_delay,
44  String config_path) :
47  read_delay{read_delay} {
48  className = "DigitalInputCounter";
49  }
50 
52  app.onInterrupt(pin, interrupt_type,
53  [this](){
54  this->counter++;
55  });
56 
57  app.onRepeat(read_delay, [this](){
58  noInterrupts();
59  output = counter;
60  counter = 0;
61  interrupts();
62  notify();
63  });
64  }
65 
66  JsonObject& DigitalInputCounter::get_configuration(JsonBuffer& buf) {
67  JsonObject& root = buf.createObject();
68  root["read_delay"] = read_delay;
69  root["value"] = output;
70  return root;
71  };
72 
73  static const char SCHEMA[] PROGMEM = R"###({
74  "type": "object",
75  "properties": {
76  "read_delay": { "title": "Read delay", "type": "number", "description": "The time, in milliseconds, between each read of the input" },
77  "value": { "title": "Last value", "type" : "number", "readOnly": true }
78  }
79  })###";
80 
81  String DigitalInputCounter::get_config_schema() {
82  return FPSTR(SCHEMA);
83 }
84 
85 bool DigitalInputCounter::set_configuration(const JsonObject& config) {
86  String expected[] = {"read_delay"};
87  for (auto str : expected) {
88  if (!config.containsKey(str)) {
89  return false;
90  }
91  }
92  read_delay = config["read_delay"];
93  return true;
94 }
Definition: sensor.h:15
-
ValueProducer< bool > BooleanProducer
Definition: valueproducer.h:80
-
void notify()
Definition: observable.cpp:3
- -
DigitalInputCounter(uint8_t pin, int pin_mode, int interrupt_type, uint read_delay, String config_path="")
- -
DigitalInputValue(uint8_t pin, int pin_mode, int interrupt_type, String config_path="")
- -
DigitalInput(uint8_t pin, int pin_mode, int interrupt_type, String config_path="")
-
void enable() override final
- -
const String config_path
Definition: configurable.h:29
-
virtual void enable() override final
- -
const char PAGE_index [] PROGMEM
Definition: index.h:2
- -
ValueProducer< int > IntegerProducer
Definition: valueproducer.h:79
-
ReactESP app
-
-
- - - - diff --git a/docs/digital__input_8h.html b/docs/digital__input_8h.html deleted file mode 100644 index 7e00f40a5..000000000 --- a/docs/digital__input_8h.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - -SensESP: src/sensors/digital_input.h File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
digital_input.h File Reference
-
-
-
#include "sensor.h"
-
-Include dependency graph for digital_input.h:
-
-
- - - - - - - - - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - -
-
-

Go to the source code of this file.

- - - - - - - - -

-Classes

class  DigitalInput
 
class  DigitalInputValue
 
class  DigitalInputCounter
 
-
-
- - - - diff --git a/docs/digital__input_8h__dep__incl.md5 b/docs/digital__input_8h__dep__incl.md5 deleted file mode 100644 index 98c7bf962..000000000 --- a/docs/digital__input_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -e382d8bdb1f586317b90c5db79971b5c \ No newline at end of file diff --git a/docs/digital__input_8h__dep__incl.png b/docs/digital__input_8h__dep__incl.png deleted file mode 100644 index e81565dd4..000000000 Binary files a/docs/digital__input_8h__dep__incl.png and /dev/null differ diff --git a/docs/digital__input_8h__incl.map b/docs/digital__input_8h__incl.map deleted file mode 100644 index 08493a886..000000000 --- a/docs/digital__input_8h__incl.map +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/docs/digital__input_8h__incl.md5 b/docs/digital__input_8h__incl.md5 deleted file mode 100644 index aa2a992fb..000000000 --- a/docs/digital__input_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -e38d11b7295feb6f25855ca5d78dad1d \ No newline at end of file diff --git a/docs/digital__input_8h__incl.png b/docs/digital__input_8h__incl.png deleted file mode 100644 index eeca84cdd..000000000 Binary files a/docs/digital__input_8h__incl.png and /dev/null differ diff --git a/docs/digital__input_8h_source.html b/docs/digital__input_8h_source.html deleted file mode 100644 index 90cef4d25..000000000 --- a/docs/digital__input_8h_source.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -SensESP: src/sensors/digital_input.h Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
digital_input.h
-
-
-Go to the documentation of this file.
1 #ifndef _digital_input_H_
2 #define _digital_input_H_
3 
4 #include "sensor.h"
5 
6 class DigitalInput : public Sensor {
7  public:
8  DigitalInput(uint8_t pin, int pin_mode, int interrupt_type,
9  String config_path="");
10 
11  protected:
12  uint8_t pin;
14 };
15 
16 
17 // DigitalInputValue is meant to report directly the state of
18 // a slowly changing signal
20  public:
21  DigitalInputValue(uint8_t pin, int pin_mode, int interrupt_type,
22  String config_path="");
23 
24  virtual void enable() override final;
25 
26  private:
27  bool triggered = false;
28 };
29 
30 // DigitalInputCounter tracks rapidly changing digital inputs
32  public:
33  DigitalInputCounter(uint8_t pin, int pin_mode, int interrupt_type,
34  uint read_delay,
35  String config_path="");
36 
37  void enable() override final;
38 
39  private:
40  uint read_delay;
41  volatile uint counter = 0;
42  virtual JsonObject& get_configuration(JsonBuffer& buf) override;
43  virtual bool set_configuration(const JsonObject& config) override;
44  virtual String get_config_schema() override;
45 };
46 
47 #endif
Definition: sensor.h:15
- - - - -
DigitalInputCounter(uint8_t pin, int pin_mode, int interrupt_type, uint read_delay, String config_path="")
- - -
DigitalInputValue(uint8_t pin, int pin_mode, int interrupt_type, String config_path="")
-
DigitalInput(uint8_t pin, int pin_mode, int interrupt_type, String config_path="")
-
void enable() override final
- -
const String config_path
Definition: configurable.h:29
-
virtual void enable() override final
-
-
- - - - diff --git a/docs/dir_000003_000005.html b/docs/dir_000003_000005.html deleted file mode 100644 index 49e84b764..000000000 --- a/docs/dir_000003_000005.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -SensESP: src/sensors -> system Relation - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-

sensors → system Relation

File in src/sensorsIncludes file in src/system
gps.hnmea_parser.h
sensor.hconfigurable.h
sensor.henable.h
sensor.hobservable.h
sensor.hvalueproducer.h
-
- - - - diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html deleted file mode 100644 index 454329fbb..000000000 --- a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - -SensESP: src Directory Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
src Directory Reference
-
-
-
-Directory dependency graph for src:
-
-
src
- - - - - - - - - - - - - - - -
- - - - - - - - - - - - -

-Directories

directory  net
 
directory  sensors
 
directory  signalk
 
directory  system
 
directory  transforms
 
- - - - - - - - - - - -

-Files

file  sensesp.h [code]
 
file  sensesp_app.cpp [code]
 
file  sensesp_app.h [code]
 
file  wiring_helpers.cpp [code]
 
file  wiring_helpers.h [code]
 
-
-
- - - - diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 deleted file mode 100644 index 894245e94..000000000 --- a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 +++ /dev/null @@ -1 +0,0 @@ -6fb729950014808a2cd12191eb2cc20e \ No newline at end of file diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png deleted file mode 100644 index a9c157e07..000000000 Binary files a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png and /dev/null differ diff --git a/docs/dir_7349e89ef19c117195f8e371603e1b1f.html b/docs/dir_7349e89ef19c117195f8e371603e1b1f.html deleted file mode 100644 index fefd9cea9..000000000 --- a/docs/dir_7349e89ef19c117195f8e371603e1b1f.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -SensESP: src/sensors Directory Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
sensors Directory Reference
-
-
-
-Directory dependency graph for sensors:
-
-
src/sensors
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  analog_input.cpp [code]
 
file  analog_input.h [code]
 
file  digital_input.cpp [code]
 
file  digital_input.h [code]
 
file  gps.cpp [code]
 
file  gps.h [code]
 
file  onewire_temperature.cpp [code]
 
file  onewire_temperature.h [code]
 
file  sensor.cpp [code]
 
file  sensor.h [code]
 
file  system_info.cpp [code]
 
file  system_info.h [code]
 
-
-
- - - - diff --git a/docs/dir_7349e89ef19c117195f8e371603e1b1f.js b/docs/dir_7349e89ef19c117195f8e371603e1b1f.js deleted file mode 100644 index 3b3385aba..000000000 --- a/docs/dir_7349e89ef19c117195f8e371603e1b1f.js +++ /dev/null @@ -1,33 +0,0 @@ -var dir_7349e89ef19c117195f8e371603e1b1f = -[ - [ "analog_input.cpp", "analog__input_8cpp.html", null ], - [ "analog_input.h", "analog__input_8h.html", [ - [ "AnalogInput", "class_analog_input.html", "class_analog_input" ] - ] ], - [ "digital_input.cpp", "digital__input_8cpp.html", null ], - [ "digital_input.h", "digital__input_8h.html", [ - [ "DigitalInput", "class_digital_input.html", "class_digital_input" ], - [ "DigitalInputValue", "class_digital_input_value.html", "class_digital_input_value" ], - [ "DigitalInputCounter", "class_digital_input_counter.html", "class_digital_input_counter" ] - ] ], - [ "gps.cpp", "gps_8cpp.html", null ], - [ "gps.h", "gps_8h.html", [ - [ "GPSInput", "class_g_p_s_input.html", "class_g_p_s_input" ] - ] ], - [ "onewire_temperature.cpp", "onewire__temperature_8cpp.html", "onewire__temperature_8cpp" ], - [ "onewire_temperature.h", "onewire__temperature_8h.html", "onewire__temperature_8h" ], - [ "sensor.cpp", "sensor_8cpp.html", null ], - [ "sensor.h", "sensor_8h.html", [ - [ "Sensor", "class_sensor.html", "class_sensor" ], - [ "NumericSensor", "class_numeric_sensor.html", "class_numeric_sensor" ], - [ "IntegerSensor", "class_integer_sensor.html", "class_integer_sensor" ], - [ "StringSensor", "class_string_sensor.html", "class_string_sensor" ] - ] ], - [ "system_info.cpp", "system__info_8cpp.html", null ], - [ "system_info.h", "system__info_8h.html", [ - [ "SystemHz", "class_system_hz.html", "class_system_hz" ], - [ "FreeMem", "class_free_mem.html", "class_free_mem" ], - [ "Uptime", "class_uptime.html", "class_uptime" ], - [ "IPAddrDev", "class_i_p_addr_dev.html", "class_i_p_addr_dev" ] - ] ] -]; \ No newline at end of file diff --git a/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.md5 b/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.md5 deleted file mode 100644 index 10d6706f8..000000000 --- a/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.md5 +++ /dev/null @@ -1 +0,0 @@ -b75472bbc32881f2eff75d971574dced \ No newline at end of file diff --git a/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.png b/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.png deleted file mode 100644 index e12048c59..000000000 Binary files a/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.png and /dev/null differ diff --git a/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f.html b/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f.html deleted file mode 100644 index 09adeb1f4..000000000 --- a/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -SensESP: src/signalk Directory Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
signalk Directory Reference
-
-
-
-Directory dependency graph for signalk:
-
-
src/signalk
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -

-Files

file  signalk_delta.cpp [code]
 
file  signalk_delta.h [code]
 
file  signalk_emitter.cpp [code]
 
file  signalk_emitter.h [code]
 
file  signalk_output.h [code]
 
file  signalk_position.cpp [code]
 
file  signalk_position.h [code]
 
file  signalk_time.cpp [code]
 
file  signalk_time.h [code]
 
-
-
- - - - diff --git a/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f.js b/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f.js deleted file mode 100644 index e533ba426..000000000 --- a/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f.js +++ /dev/null @@ -1,18 +0,0 @@ -var dir_846aa835ffd15ea225ad18b5b4aa0d4f = -[ - [ "signalk_delta.cpp", "signalk__delta_8cpp.html", null ], - [ "signalk_delta.h", "signalk__delta_8h.html", [ - [ "SKDelta", "class_s_k_delta.html", "class_s_k_delta" ] - ] ], - [ "signalk_emitter.cpp", "signalk__emitter_8cpp.html", null ], - [ "signalk_emitter.h", "signalk__emitter_8h.html", [ - [ "SKEmitter", "class_s_k_emitter.html", "class_s_k_emitter" ] - ] ], - [ "signalk_output.h", "signalk__output_8h.html", "signalk__output_8h" ], - [ "signalk_position.cpp", "signalk__position_8cpp.html", null ], - [ "signalk_position.h", "signalk__position_8h.html", "signalk__position_8h" ], - [ "signalk_time.cpp", "signalk__time_8cpp.html", null ], - [ "signalk_time.h", "signalk__time_8h.html", [ - [ "SKOutputTime", "class_s_k_output_time.html", "class_s_k_output_time" ] - ] ] -]; \ No newline at end of file diff --git a/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.md5 b/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.md5 deleted file mode 100644 index b2e790acb..000000000 --- a/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.md5 +++ /dev/null @@ -1 +0,0 @@ -e34a91d63b0adeb7541665c4839267b6 \ No newline at end of file diff --git a/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.png b/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.png deleted file mode 100644 index 4c90c1d41..000000000 Binary files a/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.png and /dev/null differ diff --git a/docs/dir_859cad99e661c8c6c06da42378c04432.html b/docs/dir_859cad99e661c8c6c06da42378c04432.html deleted file mode 100644 index 32ce32176..000000000 --- a/docs/dir_859cad99e661c8c6c06da42378c04432.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - -SensESP: src/transforms Directory Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
transforms Directory Reference
-
-
-
-Directory dependency graph for transforms:
-
-
src/transforms
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  analogvoltage.h [code]
 
file  angle_correction.cpp [code]
 
file  angle_correction.h [code]
 
file  change_filter.cpp [code]
 
file  change_filter.h [code]
 
file  curveinterpolator.cpp [code]
 
file  curveinterpolator.h [code]
 
file  debounce.cpp [code]
 
file  debounce.h [code]
 
file  difference.cpp [code]
 
file  difference.h [code]
 
file  frequency.cpp [code]
 
file  frequency.h [code]
 
file  integrator.cpp [code]
 
file  integrator.h [code]
 
file  linear.cpp [code]
 
file  linear.h [code]
 
file  median.cpp [code]
 
file  median.h [code]
 
file  moving_average.cpp [code]
 
file  moving_average.h [code]
 
file  timestring.cpp [code]
 
file  timestring.h [code]
 
file  transform.cpp [code]
 
file  transform.h [code]
 
file  voltagedividerR2.cpp [code]
 
file  voltagedividerR2.h [code]
 
-
-
- - - - diff --git a/docs/dir_859cad99e661c8c6c06da42378c04432.js b/docs/dir_859cad99e661c8c6c06da42378c04432.js deleted file mode 100644 index 478351ebe..000000000 --- a/docs/dir_859cad99e661c8c6c06da42378c04432.js +++ /dev/null @@ -1,57 +0,0 @@ -var dir_859cad99e661c8c6c06da42378c04432 = -[ - [ "analogvoltage.h", "analogvoltage_8h.html", [ - [ "AnalogVoltage", "class_analog_voltage.html", "class_analog_voltage" ] - ] ], - [ "angle_correction.cpp", "angle__correction_8cpp.html", null ], - [ "angle_correction.h", "angle__correction_8h.html", [ - [ "AngleCorrection", "class_angle_correction.html", "class_angle_correction" ] - ] ], - [ "change_filter.cpp", "change__filter_8cpp.html", null ], - [ "change_filter.h", "change__filter_8h.html", [ - [ "ChangeFilter", "class_change_filter.html", "class_change_filter" ] - ] ], - [ "curveinterpolator.cpp", "curveinterpolator_8cpp.html", null ], - [ "curveinterpolator.h", "curveinterpolator_8h.html", [ - [ "CurveInterpolator", "class_curve_interpolator.html", "class_curve_interpolator" ], - [ "Sample", "class_curve_interpolator_1_1_sample.html", "class_curve_interpolator_1_1_sample" ] - ] ], - [ "debounce.cpp", "debounce_8cpp.html", null ], - [ "debounce.h", "debounce_8h.html", [ - [ "Debounce", "class_debounce.html", "class_debounce" ] - ] ], - [ "difference.cpp", "difference_8cpp.html", null ], - [ "difference.h", "difference_8h.html", [ - [ "Difference", "class_difference.html", "class_difference" ] - ] ], - [ "frequency.cpp", "frequency_8cpp.html", null ], - [ "frequency.h", "frequency_8h.html", [ - [ "Frequency", "class_frequency.html", "class_frequency" ] - ] ], - [ "integrator.cpp", "integrator_8cpp.html", null ], - [ "integrator.h", "integrator_8h.html", [ - [ "Integrator", "class_integrator.html", "class_integrator" ] - ] ], - [ "linear.cpp", "linear_8cpp.html", null ], - [ "linear.h", "linear_8h.html", [ - [ "Linear", "class_linear.html", "class_linear" ] - ] ], - [ "median.cpp", "median_8cpp.html", null ], - [ "median.h", "median_8h.html", [ - [ "Median", "class_median.html", "class_median" ] - ] ], - [ "moving_average.cpp", "moving__average_8cpp.html", null ], - [ "moving_average.h", "moving__average_8h.html", [ - [ "MovingAverage", "class_moving_average.html", "class_moving_average" ] - ] ], - [ "timestring.cpp", "timestring_8cpp.html", null ], - [ "timestring.h", "timestring_8h.html", [ - [ "TimeString", "class_time_string.html", "class_time_string" ] - ] ], - [ "transform.cpp", "transform_8cpp.html", null ], - [ "transform.h", "transform_8h.html", "transform_8h" ], - [ "voltagedividerR2.cpp", "voltagedivider_r2_8cpp.html", null ], - [ "voltagedividerR2.h", "voltagedivider_r2_8h.html", [ - [ "VoltageDividerR2", "class_voltage_divider_r2.html", "class_voltage_divider_r2" ] - ] ] -]; \ No newline at end of file diff --git a/docs/dir_859cad99e661c8c6c06da42378c04432_dep.png b/docs/dir_859cad99e661c8c6c06da42378c04432_dep.png deleted file mode 100644 index 0c50613a3..000000000 Binary files a/docs/dir_859cad99e661c8c6c06da42378c04432_dep.png and /dev/null differ diff --git a/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.md5 b/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.md5 deleted file mode 100644 index 9dbd0fab8..000000000 --- a/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.md5 +++ /dev/null @@ -1 +0,0 @@ -958e62cb6f10afcc9d69e481d8d85632 \ No newline at end of file diff --git a/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.png b/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.png deleted file mode 100644 index 0a90d7bdd..000000000 Binary files a/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.png and /dev/null differ diff --git a/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87_dep.png b/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87_dep.png deleted file mode 100644 index e39e4d55a..000000000 Binary files a/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87_dep.png and /dev/null differ diff --git a/docs/discovery_8cpp__incl.md5 b/docs/discovery_8cpp__incl.md5 deleted file mode 100644 index d4dd81642..000000000 --- a/docs/discovery_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -9a02cc19511ed34a9113d9173bf82ddb \ No newline at end of file diff --git a/docs/discovery_8cpp__incl.png b/docs/discovery_8cpp__incl.png deleted file mode 100644 index c1e073e4c..000000000 Binary files a/docs/discovery_8cpp__incl.png and /dev/null differ diff --git a/docs/discovery_8cpp_source.html b/docs/discovery_8cpp_source.html deleted file mode 100644 index 8b088366c..000000000 --- a/docs/discovery_8cpp_source.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -SensESP: src/net/discovery.cpp Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
discovery.cpp
-
-
-Go to the documentation of this file.
1 #include "sensesp.h"
2 
3 #ifdef ESP8266
4  #include <ESP8266mDNS.h> // Include the mDNS library
5 #elif defined(ESP32)
6  #include <ESPmDNS.h>
7 #endif
8 
9 
10 void setup_discovery(const char* hostname) {
11  if (!MDNS.begin(hostname)) { // Start the mDNS responder for esp8266.local
12  debugW("Error setting up mDNS responder");
13  } else {
14  debugI("mDNS responder started at %s", hostname);
15  }
16  MDNS.addService("http", "tcp", 80);
17  MDNS.addService("signalk-sensesp", "tcp", 80);
18 }
void setup_discovery(const char *hostname)
Definition: discovery.cpp:10
- -
-
- - - - diff --git a/docs/discovery_8h__dep__incl.png b/docs/discovery_8h__dep__incl.png deleted file mode 100644 index febca864e..000000000 Binary files a/docs/discovery_8h__dep__incl.png and /dev/null differ diff --git a/docs/discovery_8h_source.html b/docs/discovery_8h_source.html deleted file mode 100644 index ed914804b..000000000 --- a/docs/discovery_8h_source.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - -SensESP: src/net/discovery.h Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
discovery.h
-
-
-Go to the documentation of this file.
1 #ifndef _discovery_H_
2 #define _discovery_H_
3 
4 void setup_discovery(const char* hostname);
5 
6 #endif
void setup_discovery(const char *hostname)
Definition: discovery.cpp:10
-
-
- - - - diff --git a/docs/doxygen.png b/docs/doxygen.png deleted file mode 100644 index 3ff17d807..000000000 Binary files a/docs/doxygen.png and /dev/null differ diff --git a/docs/dynsections.js b/docs/dynsections.js deleted file mode 100644 index 9bff51b8b..000000000 --- a/docs/dynsections.js +++ /dev/null @@ -1,127 +0,0 @@ -/* - @licstart The following is the entire license notice for the - JavaScript code in this file. - - Copyright (C) 1997-2017 by Dimitri van Heesch - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - @licend The above is the entire license notice - for the JavaScript code in this file - */ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l - - - - - - -SensESP: src/system/enable.cpp File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
enable.cpp File Reference
-
-
-
#include "enable.h"
-#include "sensesp_app.h"
-
-Include dependency graph for enable.cpp:
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

-
-
- - - - diff --git a/docs/enable_8cpp__incl.map b/docs/enable_8cpp__incl.map deleted file mode 100644 index c76971c58..000000000 --- a/docs/enable_8cpp__incl.map +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/enable_8cpp__incl.md5 b/docs/enable_8cpp__incl.md5 deleted file mode 100644 index 9dee7a827..000000000 --- a/docs/enable_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -721e32e6e506f6ef2d1d0cede545e6dc \ No newline at end of file diff --git a/docs/enable_8cpp__incl.png b/docs/enable_8cpp__incl.png deleted file mode 100644 index 540e9a2cc..000000000 Binary files a/docs/enable_8cpp__incl.png and /dev/null differ diff --git a/docs/enable_8cpp_source.html b/docs/enable_8cpp_source.html deleted file mode 100644 index f5a8dd4bd..000000000 --- a/docs/enable_8cpp_source.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - -SensESP: src/system/enable.cpp Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
enable.cpp
-
-
-Go to the documentation of this file.
1 #include "enable.h"
2 #include "sensesp_app.h"
3 
4 std::priority_queue<Enable*> Enable::enableList;
5 
6 
7 Enable::Enable(uint8_t priority) : priority{priority} {
8  Enable::enableList.push(this);
9 }
10 
11 
13  debugD("Enabling all required sensors and transforms");
14  while (!enableList.empty()) {
15  auto& obj = *enableList.top();
16  debugD("Enabling sensor or transform: %s", obj.getClassName());
17  obj.enable();
18  enableList.pop();
19  } // while
20 }
static void enableAll()
Definition: enable.cpp:12
- -
Enable(uint8_t priority=0)
Definition: enable.cpp:7
- -
-
- - - - diff --git a/docs/enable_8h.html b/docs/enable_8h.html deleted file mode 100644 index 8a6bd2c15..000000000 --- a/docs/enable_8h.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - -SensESP: src/system/enable.h File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
enable.h File Reference
-
-
-
#include <queue>
-#include <stdint.h>
-
-Include dependency graph for enable.h:
-
-
- - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

- - - - -

-Classes

class  Enable
 
-
-
- - - - diff --git a/docs/enable_8h__dep__incl.map b/docs/enable_8h__dep__incl.map deleted file mode 100644 index ccdb11e39..000000000 --- a/docs/enable_8h__dep__incl.map +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/enable_8h__dep__incl.md5 b/docs/enable_8h__dep__incl.md5 deleted file mode 100644 index 041244453..000000000 --- a/docs/enable_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -55a1eec326c81779452c4ad01e856636 \ No newline at end of file diff --git a/docs/enable_8h__dep__incl.png b/docs/enable_8h__dep__incl.png deleted file mode 100644 index ada8f0761..000000000 Binary files a/docs/enable_8h__dep__incl.png and /dev/null differ diff --git a/docs/enable_8h__incl.map b/docs/enable_8h__incl.map deleted file mode 100644 index 8cacbadeb..000000000 --- a/docs/enable_8h__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/enable_8h__incl.md5 b/docs/enable_8h__incl.md5 deleted file mode 100644 index 358a46a28..000000000 --- a/docs/enable_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -6a25216ed88b5092c0d9e0710976b469 \ No newline at end of file diff --git a/docs/enable_8h__incl.png b/docs/enable_8h__incl.png deleted file mode 100644 index 68bd83950..000000000 Binary files a/docs/enable_8h__incl.png and /dev/null differ diff --git a/docs/enable_8h_source.html b/docs/enable_8h_source.html deleted file mode 100644 index 184473cb8..000000000 --- a/docs/enable_8h_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SensESP: src/system/enable.h Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
enable.h
-
-
-Go to the documentation of this file.
1 #ifndef _enable_H_
2 #define _enable_H_
3 
4 #include <queue>
5 #include <stdint.h>
6 
15 class Enable {
16 
17  public:
18  Enable(uint8_t priority = 0);
19 
24  virtual void enable() {}
25 
26 
27  void setClassName(const char* newClassName) { className = newClassName; }
28 
29 
30  virtual const char* getClassName() { return className; };
31 
32 
33  const uint8_t getEnablePriority() { return priority; }
34 
35 
36  void setPriority(uint8_t priority) { this-> priority = priority; }
37 
38 
48  static void enableAll();
49 
50 
51  friend bool operator<(const Enable& lhs, const Enable& rhs) { return lhs.priority < rhs.priority; }
52 
53 
54  protected:
55  const char* className = "Enable";
56 
57 
58  private:
59  uint8_t priority;
60 
61  static std::priority_queue<Enable*> enableList;
62 };
63 
64 
65 #endif
static void enableAll()
Definition: enable.cpp:12
-
const uint8_t getEnablePriority()
Definition: enable.h:33
-
void setPriority(uint8_t priority)
Definition: enable.h:36
-
virtual void enable()
Definition: enable.h:24
-
virtual const char * getClassName()
Definition: enable.h:30
-
friend bool operator<(const Enable &lhs, const Enable &rhs)
Definition: enable.h:51
-
Definition: enable.h:15
-
void setClassName(const char *newClassName)
Definition: enable.h:27
-
Enable(uint8_t priority=0)
Definition: enable.cpp:7
-
const char * className
Definition: enable.h:55
-
-
- - - - diff --git a/docs/files.html b/docs/files.html deleted file mode 100644 index 12ebb93c8..000000000 --- a/docs/files.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - -SensESP: File List - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
File List
-
-
-
Here is a list of all files with brief descriptions:
-
[detail level 1234]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  src
  net
  web
 index.h
 js_jsoneditor.h
 js_sensesp.h
 setup.h
 discovery.cpp
 discovery.h
 http.cpp
 http.h
 networking.cpp
 networking.h
 ota.cpp
 ota.h
 ws_client.cpp
 ws_client.h
  sensors
 analog_input.cpp
 analog_input.h
 digital_input.cpp
 digital_input.h
 gps.cpp
 gps.h
 onewire_temperature.cpp
 onewire_temperature.h
 sensor.cpp
 sensor.h
 system_info.cpp
 system_info.h
  signalk
 signalk_delta.cpp
 signalk_delta.h
 signalk_emitter.cpp
 signalk_emitter.h
 signalk_output.h
 signalk_position.cpp
 signalk_position.h
 signalk_time.cpp
 signalk_time.h
  system
 configurable.cpp
 configurable.h
 enable.cpp
 enable.h
 led_blinker.cpp
 led_blinker.h
 nmea_parser.cpp
 nmea_parser.h
 observable.cpp
 observable.h
 observablevalue.h
 spiffs_storage.cpp
 spiffs_storage.h
 valueconsumer.h
 valueproducer.h
  transforms
 analogvoltage.h
 angle_correction.cpp
 angle_correction.h
 change_filter.cpp
 change_filter.h
 curveinterpolator.cpp
 curveinterpolator.h
 debounce.cpp
 debounce.h
 difference.cpp
 difference.h
 frequency.cpp
 frequency.h
 integrator.cpp
 integrator.h
 linear.cpp
 linear.h
 median.cpp
 median.h
 moving_average.cpp
 moving_average.h
 timestring.cpp
 timestring.h
 transform.cpp
 transform.h
 voltagedividerR2.cpp
 voltagedividerR2.h
 sensesp.h
 sensesp_app.cpp
 sensesp_app.h
 wiring_helpers.cpp
 wiring_helpers.h
-
-
-
- - - - diff --git a/docs/frequency_8cpp.html b/docs/frequency_8cpp.html deleted file mode 100644 index 7572ab73b..000000000 --- a/docs/frequency_8cpp.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SensESP: src/transforms/frequency.cpp File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
frequency.cpp File Reference
-
-
-
#include "frequency.h"
-
-Include dependency graph for frequency.cpp:
-
-
- - - - - - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

-
-
- - - - diff --git a/docs/frequency_8cpp__incl.map b/docs/frequency_8cpp__incl.map deleted file mode 100644 index af5197ce1..000000000 --- a/docs/frequency_8cpp__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/frequency_8cpp__incl.md5 b/docs/frequency_8cpp__incl.md5 deleted file mode 100644 index 204156748..000000000 --- a/docs/frequency_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -5ce4b2b3c9fcf9aa441156ea19392400 \ No newline at end of file diff --git a/docs/frequency_8cpp__incl.png b/docs/frequency_8cpp__incl.png deleted file mode 100644 index 0a281dc5b..000000000 Binary files a/docs/frequency_8cpp__incl.png and /dev/null differ diff --git a/docs/frequency_8cpp_source.html b/docs/frequency_8cpp_source.html deleted file mode 100644 index 284fed963..000000000 --- a/docs/frequency_8cpp_source.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -SensESP: src/transforms/frequency.cpp Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
frequency.cpp
-
-
-Go to the documentation of this file.
1 #include "frequency.h"
2 
3 // Frequency
4 
5 Frequency::Frequency(float k, String config_path) :
6  Transform<int, float>(config_path), k{k} {
7  className = "Frequency";
8  load_configuration();
9 }
10 
12  last_update = millis();
13 }
14 
15 void Frequency::set_input(int input, uint8_t inputChannel) {
16  unsigned long cur_millis = millis();
17  unsigned long elapsed_millis = cur_millis - last_update;
18  output = k * input / (elapsed_millis / 1000.);
19  last_update = cur_millis;
20  notify();
21 }
22 
23 
24 JsonObject& Frequency::get_configuration(JsonBuffer& buf) {
25  JsonObject& root = buf.createObject();
26  root["k"] = k;
27  root["value"] = output;
28  return root;
29 }
30 
31 static const char SCHEMA[] PROGMEM = R"###({
32  "type": "object",
33  "properties": {
34  "k": { "title": "Multiplier", "type": "number" },
35  "value": { "title": "Last value", "type" : "number", "readOnly": true }
36  }
37  })###";
38 
40  return FPSTR(SCHEMA);
41 }
42 
43 bool Frequency::set_configuration(const JsonObject& config) {
44  String expected[] = {"k"};
45  for (auto str : expected) {
46  if (!config.containsKey(str)) {
47  return false;
48  }
49  }
50  k = config["k"];
51  return true;
52 }
-
virtual void set_input(int input, uint8_t inputChannel=0) override
Definition: frequency.cpp:15
-
void notify()
Definition: observable.cpp:3
-
virtual void enable() override
Definition: frequency.cpp:11
- -
virtual String get_config_schema() override
Definition: frequency.cpp:39
-
virtual bool set_configuration(const JsonObject &config) override
Definition: frequency.cpp:43
-
virtual JsonObject & get_configuration(JsonBuffer &buf) override
Definition: frequency.cpp:24
- -
const char PAGE_index [] PROGMEM
Definition: index.h:2
-
Frequency(float k=1, String config_path="")
Definition: frequency.cpp:5
-
-
- - - - diff --git a/docs/frequency_8h.html b/docs/frequency_8h.html deleted file mode 100644 index db8762a43..000000000 --- a/docs/frequency_8h.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - -SensESP: src/transforms/frequency.h File Reference - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
-
frequency.h File Reference
-
-
-
#include "transform.h"
-
-Include dependency graph for frequency.h:
-
-
- - - - - - - - - - - - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - -
-
-

Go to the source code of this file.

- - - - -

-Classes

class  Frequency
 
-
-
- - - - diff --git a/docs/frequency_8h__dep__incl.md5 b/docs/frequency_8h__dep__incl.md5 deleted file mode 100644 index 17a855585..000000000 --- a/docs/frequency_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -0830279be0132f287c2c74ad07061dd4 \ No newline at end of file diff --git a/docs/frequency_8h__dep__incl.png b/docs/frequency_8h__dep__incl.png deleted file mode 100644 index 138c13536..000000000 Binary files a/docs/frequency_8h__dep__incl.png and /dev/null differ diff --git a/docs/frequency_8h__incl.map b/docs/frequency_8h__incl.map deleted file mode 100644 index 1862a8372..000000000 --- a/docs/frequency_8h__incl.map +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/frequency_8h__incl.md5 b/docs/frequency_8h__incl.md5 deleted file mode 100644 index 7232d67d7..000000000 --- a/docs/frequency_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -b345fcd6f6cbb3452f4966eae000682a \ No newline at end of file diff --git a/docs/frequency_8h__incl.png b/docs/frequency_8h__incl.png deleted file mode 100644 index 518645bac..000000000 Binary files a/docs/frequency_8h__incl.png and /dev/null differ diff --git a/docs/frequency_8h_source.html b/docs/frequency_8h_source.html deleted file mode 100644 index 7b51fa7be..000000000 --- a/docs/frequency_8h_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SensESP: src/transforms/frequency.h Source File - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
-
frequency.h
-
-
-Go to the documentation of this file.
1 #ifndef _frequency_H_
2 #define _frequency_H_
3 
4 #include "transform.h"
5 
6 
7 // Frequency transform divides its input value by the time elapsed since
8 // the last reading
9 class Frequency : public Transform<int, float> {
10 
11  public:
12  Frequency(float k=1, String config_path="");
13  virtual void set_input(int input, uint8_t inputChannel = 0) override;
14  virtual void enable() override;
15  virtual JsonObject& get_configuration(JsonBuffer& buf) override;
16  virtual bool set_configuration(const JsonObject& config) override;
17  virtual String get_config_schema() override;
18 
19  private:
20  float k;
21  int ticks = 0;
22  uint last_update = 0;
23 };
24 
25 #endif
virtual void set_input(int input, uint8_t inputChannel=0) override
Definition: frequency.cpp:15
-
virtual void enable() override
Definition: frequency.cpp:11
- -
virtual String get_config_schema() override
Definition: frequency.cpp:39
- -
virtual bool set_configuration(const JsonObject &config) override
Definition: frequency.cpp:43
-
virtual JsonObject & get_configuration(JsonBuffer &buf) override
Definition: frequency.cpp:24
-
const String config_path
Definition: configurable.h:29
- -
Frequency(float k=1, String config_path="")
Definition: frequency.cpp:5
-
-
- - - - diff --git a/docs/functions.html b/docs/functions.html deleted file mode 100644 index 2b0718bad..000000000 --- a/docs/functions.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -SensESP: Class Members - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- a -

-
-
- - - - diff --git a/docs/functions_b.html b/docs/functions_b.html deleted file mode 100644 index 73c65cba9..000000000 --- a/docs/functions_b.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -SensESP: Class Members - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- b -

-
-
- - - - diff --git a/docs/functions_c.html b/docs/functions_c.html deleted file mode 100644 index 207b92e64..000000000 --- a/docs/functions_c.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - -SensESP: Class Members - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- c -

-
-
- - - - diff --git a/docs/functions_d.html b/docs/functions_d.html deleted file mode 100644 index bdc97be34..000000000 --- a/docs/functions_d.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - -SensESP: Class Members - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- d -

-
-
- - - - diff --git a/docs/functions_e.html b/docs/functions_e.html deleted file mode 100644 index f7f4c4247..000000000 --- a/docs/functions_e.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -SensESP: Class Members - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- e -

-
-
- - - - diff --git a/docs/functions_f.html b/docs/functions_f.html deleted file mode 100644 index 0ebeca929..000000000 --- a/docs/functions_f.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -SensESP: Class Members - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- f -

-
-
- - - - diff --git a/docs/functions_func.html b/docs/functions_func.html deleted file mode 100644 index c71d8f31f..000000000 --- a/docs/functions_func.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - -SensESP: Class Members - Functions - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-  - -

- a -

-
-
- - - - diff --git a/docs/functions_func_c.html b/docs/functions_func_c.html deleted file mode 100644 index 2f67b0e6e..000000000 --- a/docs/functions_func_c.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -SensESP: Class Members - Functions - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-  - -

- c -

-
-
- - - - diff --git a/docs/functions_func_e.html b/docs/functions_func_e.html deleted file mode 100644 index cf2b24414..000000000 --- a/docs/functions_func_e.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - -SensESP: Class Members - Functions - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-  - -

- e -

-
-
- - - - diff --git a/docs/functions_func_g.html b/docs/functions_func_g.html deleted file mode 100644 index 48e0e7c1c..000000000 --- a/docs/functions_func_g.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - -SensESP: Class Members - Functions - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-  - -

- g -

-
-
- - - - diff --git a/docs/functions_func_s.html b/docs/functions_func_s.html deleted file mode 100644 index 5df624e07..000000000 --- a/docs/functions_func_s.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - - -SensESP: Class Members - Functions - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-  - -

- s -

-
-
- - - - diff --git a/docs/functions_g.html b/docs/functions_g.html deleted file mode 100644 index afafef314..000000000 --- a/docs/functions_g.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - -SensESP: Class Members - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- g -

-
-
- - - - diff --git a/docs/functions_m.html b/docs/functions_m.html deleted file mode 100644 index 85bc3a040..000000000 --- a/docs/functions_m.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -SensESP: Class Members - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- m -

-
-
- - - - diff --git a/docs/functions_s.html b/docs/functions_s.html deleted file mode 100644 index 3ed7243e7..000000000 --- a/docs/functions_s.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - - -SensESP: Class Members - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- s -

-
-
- - - - diff --git a/docs/functions_vars.html b/docs/functions_vars.html deleted file mode 100644 index a89992a4c..000000000 --- a/docs/functions_vars.html +++ /dev/null @@ -1,295 +0,0 @@ - - - - - - - -SensESP: Class Members - Variables - - - - - - - - - - - - - - -
-
- - - - - - -
-
SensESP -  0.4.3 -
-
Universal Signal K sensor framework for ESP8266 and ESP32
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-  - -

- a -

- - -

- b -

- - -

- c -

- - -

- d -

- - -

- e -

- - -

- g -

- - -

- h -

- - -

- i -

- - -

- l -

- - -

- m -

- - -

- n -

- - -

- o -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- u -

- - -

- v -

-
-
- - - - diff --git a/docs/generated/docs/_formulas.tex b/docs/generated/docs/_formulas.tex new file mode 100644 index 000000000..a766a47b5 --- /dev/null +++ b/docs/generated/docs/_formulas.tex @@ -0,0 +1,15 @@ +\documentclass{article} +\usepackage{ifthen} +\usepackage{epsfig} +\usepackage[utf8]{inputenc} +\usepackage{newunicodechar} + \newunicodechar{⁻}{${}^{-}$}% Superscript minus + \newunicodechar{²}{${}^{2}$}% Superscript two + \newunicodechar{³}{${}^{3}$}% Superscript three + +\pagestyle{empty} +\begin{document} +$y = k * x + c$ +\pagebreak + +\end{document} diff --git a/docs/generated/docs/ads1x15_8cpp.html b/docs/generated/docs/ads1x15_8cpp.html new file mode 100644 index 000000000..5fa52b744 --- /dev/null +++ b/docs/generated/docs/ads1x15_8cpp.html @@ -0,0 +1,133 @@ + + + + + + + +SensESP: src/sensors/ads1x15.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ads1x15.cpp File Reference
+
+
+
#include "ads1x15.h"
+#include "sensesp.h"
+
+Include dependency graph for ads1x15.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/generated/docs/ads1x15_8cpp__incl.map b/docs/generated/docs/ads1x15_8cpp__incl.map new file mode 100644 index 000000000..265647793 --- /dev/null +++ b/docs/generated/docs/ads1x15_8cpp__incl.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/ads1x15_8cpp__incl.md5 b/docs/generated/docs/ads1x15_8cpp__incl.md5 new file mode 100644 index 000000000..5ee970960 --- /dev/null +++ b/docs/generated/docs/ads1x15_8cpp__incl.md5 @@ -0,0 +1 @@ +bc7c5cd49f181cc1cdf4e7e50aadd6d2 \ No newline at end of file diff --git a/docs/generated/docs/ads1x15_8cpp__incl.png b/docs/generated/docs/ads1x15_8cpp__incl.png new file mode 100644 index 000000000..db8851a0e Binary files /dev/null and b/docs/generated/docs/ads1x15_8cpp__incl.png differ diff --git a/docs/generated/docs/ads1x15_8cpp_source.html b/docs/generated/docs/ads1x15_8cpp_source.html new file mode 100644 index 000000000..b40c14172 --- /dev/null +++ b/docs/generated/docs/ads1x15_8cpp_source.html @@ -0,0 +1,195 @@ + + + + + + + +SensESP: src/sensors/ads1x15.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ads1x15.cpp
+
+
+Go to the documentation of this file.
1 #include "ads1x15.h"
+
2 
+
3 #include "sensesp.h"
+
4 
+
5 template <class T_Ada_1x15>
+
6 ADS1x15<T_Ada_1x15>::ADS1x15(uint8_t addr, adsGain_t gain, String config_path)
+
7  : Sensor(config_path) {
+
8  ads = new T_Ada_1x15(addr);
+
9  ads->begin();
+
10  ads->setGain(gain);
+
11 }
+
12 
+
13 // define all possible instances of an ADS1x15
+
14 template class ADS1x15<Adafruit_ADS1015>;
+
15 template class ADS1x15<Adafruit_ADS1115>;
+
16 
+
17 template <class T_ads_1x15>
+
18 ADS1x15Value<T_ads_1x15>::ADS1x15Value(T_ads_1x15* ads1x15, uint8_t channel,
+
19  uint read_delay, String config_path)
+
20  : NumericSensor(config_path),
+
21  ads1x15{ads1x15},
+
22  channel{channel},
+
23  read_delay{read_delay} {
+
24  load_configuration();
+
25 }
+
26 
+
27 template <class T_ads_1x15>
+ +
29  app.onRepeat(read_delay, [this]() {
+
30  switch (channel) {
+
31  case 0:
+
32  case 1:
+
33  case 2:
+
34  case 3:
+
35  output = ads1x15->ads->readADC_SingleEnded(channel);
+
36  break;
+
37  case 10:
+
38  output = ads1x15->ads->readADC_Differential_0_1();
+
39  break;
+
40  case 23:
+
41  output = ads1x15->ads->readADC_Differential_2_3();
+
42  break;
+
43  default:
+
44  debugE("FATAL: invalid channel - must be 0, 1, 2, 3, 10, or 23");
+
45  }
+
46  notify();
+
47  });
+
48 }
+
49 
+
50 template <class T_ads_1x15>
+
51 void ADS1x15Value<T_ads_1x15>::get_configuration(JsonObject& root) {
+
52  root["read_delay"] = read_delay;
+
53  root["value"] = output;
+
54 };
+
55 
+
56 static const char SCHEMA[] PROGMEM = R"###({
+
57  "type": "object",
+
58  "properties": {
+
59  "read_delay": { "title": "Read delay", "type": "number", "description": "The time, in milliseconds, between each read of the input" },
+
60  "value": { "title": "Last value", "type" : "number", "readOnly": true }
+
61  }
+
62  })###";
+
63 
+
64 template <class T_ads_1x15>
+ +
66  return FPSTR(SCHEMA);
+
67 }
+
68 
+
69 template <class T_ads_1x15>
+
70 bool ADS1x15Value<T_ads_1x15>::set_configuration(const JsonObject& config) {
+
71  String expected[] = {"read_delay"};
+
72  for (auto str : expected) {
+
73  if (!config.containsKey(str)) {
+
74  return false;
+
75  }
+
76  }
+
77  read_delay = config["read_delay"];
+
78  return true;
+
79 }
+
80 
+
81 // define all possible instances of an ADS1x15value
+
82 template class ADS1x15Value<ADS1015>;
+
83 template class ADS1x15Value<ADS1115>;
+
+
+
Definition: ads1x15.h:13
+
ADS1x15Value(T_ads_1x15 *ads1x15, uint8_t channel=0, uint read_delay=200, String config_path="")
Definition: ads1x15.cpp:18
+
const char PAGE_index[] PROGMEM
Definition: index.h:2
+
void enable() override final
Definition: ads1x15.cpp:28
+
+
Definition: sensor.h:29
+
ADS1x15(uint8_t addr=0x48, adsGain_t gain=GAIN_TWOTHIRDS, String config_path="")
Definition: ads1x15.cpp:6
+
+
ReactESP app
+
T_Ada_1x15 * ads
Definition: ads1x15.h:18
+
Definition: sensor.h:15
+
Definition: ads1x15.h:31
+ + + + diff --git a/docs/generated/docs/ads1x15_8h.html b/docs/generated/docs/ads1x15_8h.html new file mode 100644 index 000000000..edbcff17e --- /dev/null +++ b/docs/generated/docs/ads1x15_8h.html @@ -0,0 +1,265 @@ + + + + + + + +SensESP: src/sensors/ads1x15.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ads1x15.h File Reference
+
+
+
#include <Adafruit_ADS1015.h>
+#include <Wire.h>
+#include "sensor.h"
+
+Include dependency graph for ads1x15.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Classes

class  ADS1x15< T_Ada_1x15 >
 
class  ADS1x15Value< T_ads_1x15 >
 
+ + + + + + + + + + + + + +

+Typedefs

typedef ADS1x15< Adafruit_ADS1015 > ADS1015
 
typedef ADS1x15< Adafruit_ADS1115 > ADS1115
 
typedef ADS1x15Value< ADS1015ADS1015Value
 
typedef ADS1x15Value< ADS1115ADS1115Value
 
typedef ADS1015Value ADS1015value
 
typedef ADS1115Value ADS1115value
 
+

Typedef Documentation

+ +

◆ ADS1015

+ +
+
+ + + + +
typedef ADS1x15<Adafruit_ADS1015> ADS1015
+
+ +

Definition at line 21 of file ads1x15.h.

+ +
+
+ +

◆ ADS1015Value

+ +
+
+ + + + +
typedef ADS1x15Value<ADS1015> ADS1015Value
+
+ +

Definition at line 46 of file ads1x15.h.

+ +
+
+ +

◆ ADS1015value

+ +
+
+ + + + +
typedef ADS1015Value ADS1015value
+
+ +

Definition at line 51 of file ads1x15.h.

+ +
+
+ +

◆ ADS1115

+ +
+
+ + + + +
typedef ADS1x15<Adafruit_ADS1115> ADS1115
+
+ +

Definition at line 22 of file ads1x15.h.

+ +
+
+ +

◆ ADS1115Value

+ +
+
+ + + + +
typedef ADS1x15Value<ADS1115> ADS1115Value
+
+ +

Definition at line 47 of file ads1x15.h.

+ +
+
+ +

◆ ADS1115value

+ +
+
+ + + + +
typedef ADS1115Value ADS1115value
+
+ +

Definition at line 54 of file ads1x15.h.

+ +
+
+
+
+ + + + diff --git a/docs/generated/docs/ads1x15_8h.js b/docs/generated/docs/ads1x15_8h.js new file mode 100644 index 000000000..18f1f972d --- /dev/null +++ b/docs/generated/docs/ads1x15_8h.js @@ -0,0 +1,11 @@ +var ads1x15_8h = +[ + [ "ADS1x15", "class_a_d_s1x15.html", "class_a_d_s1x15" ], + [ "ADS1x15Value", "class_a_d_s1x15_value.html", "class_a_d_s1x15_value" ], + [ "ADS1015", "ads1x15_8h.html#a6f6b131100a4dd4ca22e4152b2180db8", null ], + [ "ADS1015Value", "ads1x15_8h.html#a56503424baf16a9e1fe8bca2f21e26d2", null ], + [ "ADS1015value", "ads1x15_8h.html#ac815741ef15e8fd16c37e7ceebe61b04", null ], + [ "ADS1115", "ads1x15_8h.html#aff5c694cee53802680653a7a64ea1910", null ], + [ "ADS1115Value", "ads1x15_8h.html#ae1571805b29318a59c364332d228f319", null ], + [ "ADS1115value", "ads1x15_8h.html#aef84aad5457f448a1e9c488503ff60f3", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/ads1x15_8h__dep__incl.map b/docs/generated/docs/ads1x15_8h__dep__incl.map new file mode 100644 index 000000000..66764a783 --- /dev/null +++ b/docs/generated/docs/ads1x15_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/ads1x15_8h__dep__incl.md5 b/docs/generated/docs/ads1x15_8h__dep__incl.md5 new file mode 100644 index 000000000..d0912892a --- /dev/null +++ b/docs/generated/docs/ads1x15_8h__dep__incl.md5 @@ -0,0 +1 @@ +3a1100da7c7e01b3796adede7f21eb51 \ No newline at end of file diff --git a/docs/generated/docs/ads1x15_8h__dep__incl.png b/docs/generated/docs/ads1x15_8h__dep__incl.png new file mode 100644 index 000000000..ddfe964d4 Binary files /dev/null and b/docs/generated/docs/ads1x15_8h__dep__incl.png differ diff --git a/docs/generated/docs/ads1x15_8h__incl.map b/docs/generated/docs/ads1x15_8h__incl.map new file mode 100644 index 000000000..e4d127d63 --- /dev/null +++ b/docs/generated/docs/ads1x15_8h__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/ads1x15_8h__incl.md5 b/docs/generated/docs/ads1x15_8h__incl.md5 new file mode 100644 index 000000000..44fdbb93c --- /dev/null +++ b/docs/generated/docs/ads1x15_8h__incl.md5 @@ -0,0 +1 @@ +450f6591f7fc04396f02da00ffe2346d \ No newline at end of file diff --git a/docs/generated/docs/ads1x15_8h__incl.png b/docs/generated/docs/ads1x15_8h__incl.png new file mode 100644 index 000000000..e86f911b5 Binary files /dev/null and b/docs/generated/docs/ads1x15_8h__incl.png differ diff --git a/docs/generated/docs/ads1x15_8h_source.html b/docs/generated/docs/ads1x15_8h_source.html new file mode 100644 index 000000000..e407a6ae4 --- /dev/null +++ b/docs/generated/docs/ads1x15_8h_source.html @@ -0,0 +1,173 @@ + + + + + + + +SensESP: src/sensors/ads1x15.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ads1x15.h
+
+
+Go to the documentation of this file.
1 #ifndef _adds1x15_H_
+
2 #define _adds1x15_H_
+
3 
+
4 #include <Adafruit_ADS1015.h>
+
5 #include <Wire.h>
+
6 
+
7 #include "sensor.h"
+
8 
+
9 // ADS1x15 creates an instance of an ADS1015 or ADS1115 analog-to-digital
+
10 // converter (ADC) that will be used by ADS1015channel and ADS1115channel. In
+
11 // main.cpp, you will use one of the type defined below: ADS1015 or ADS115.
+
12 template <class T_Ada_1x15>
+
13 class ADS1x15 : public Sensor {
+
14  public:
+
15  ADS1x15(uint8_t addr = 0x48, adsGain_t gain = GAIN_TWOTHIRDS,
+
16  String config_path = "");
+
17  void enable() override final {}
+
18  T_Ada_1x15* ads;
+
19 };
+
20 
+ + +
23 
+
24 // ADS1015Value is used to read the value of an ADS1x15 (either ADS1015 or
+
25 // ADS1115). If you want to read a single channel, make your channel parameter
+
26 // be 0, 1 2 or 3 and readADC_SingleEnded() will be used. If you want to read
+
27 // the difference between two channels, your channel parameter should be:
+
28 // - 10 will use readADC_Differential_0_1()
+
29 // - 23 will use readADC_Differential_2_3()
+
30 template <class T_ads_1x15>
+
31 class ADS1x15Value : public NumericSensor {
+
32  public:
+
33  ADS1x15Value(T_ads_1x15* ads1x15, uint8_t channel = 0, uint read_delay = 200,
+
34  String config_path = "");
+
35  void enable() override final;
+
36 
+
37  private:
+
38  T_ads_1x15* ads1x15;
+
39  uint8_t channel;
+
40  uint read_delay;
+
41  virtual void get_configuration(JsonObject& doc) override;
+
42  virtual bool set_configuration(const JsonObject& config) override;
+
43  virtual String get_config_schema() override;
+
44 };
+
45 
+ + +
48 
+
49 // FIXME: Uncomment the following once the PIO Xtensa toolchain is updated
+
50 // [[deprecated("Use ADS1015Value instead.")]]
+ +
52 // FIXME: Uncomment the following once the PIO Xtensa toolchain is updated
+
53 // [[deprecated("Use ADS1115Value instead.")]]
+ +
55 
+
56 #endif
+
+
+
ADS1x15< Adafruit_ADS1115 > ADS1115
Definition: ads1x15.h:22
+
Definition: ads1x15.h:13
+
ADS1x15Value(T_ads_1x15 *ads1x15, uint8_t channel=0, uint read_delay=200, String config_path="")
Definition: ads1x15.cpp:18
+
ADS1x15< Adafruit_ADS1015 > ADS1015
Definition: ads1x15.h:21
+
+
void enable() override final
Definition: ads1x15.cpp:28
+
Definition: sensor.h:29
+
const String config_path
Definition: configurable.h:31
+
void enable() override final
Definition: ads1x15.h:17
+
ADS1x15(uint8_t addr=0x48, adsGain_t gain=GAIN_TWOTHIRDS, String config_path="")
Definition: ads1x15.cpp:6
+
ADS1x15Value< ADS1015 > ADS1015Value
Definition: ads1x15.h:46
+
ADS1015Value ADS1015value
Definition: ads1x15.h:51
+
ADS1x15Value< ADS1115 > ADS1115Value
Definition: ads1x15.h:47
+
T_Ada_1x15 * ads
Definition: ads1x15.h:18
+
ADS1115Value ADS1115value
Definition: ads1x15.h:54
+
Definition: sensor.h:15
+
Definition: ads1x15.h:31
+ + + + diff --git a/docs/generated/docs/ads1x15__voltage_8cpp.html b/docs/generated/docs/ads1x15__voltage_8cpp.html new file mode 100644 index 000000000..b88e314d4 --- /dev/null +++ b/docs/generated/docs/ads1x15__voltage_8cpp.html @@ -0,0 +1,131 @@ + + + + + + + +SensESP: src/transforms/ads1x15_voltage.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ads1x15_voltage.cpp File Reference
+
+
+
#include "ads1x15_voltage.h"
+
+Include dependency graph for ads1x15_voltage.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/generated/docs/ads1x15__voltage_8cpp__incl.map b/docs/generated/docs/ads1x15__voltage_8cpp__incl.map new file mode 100644 index 000000000..e3a6f5b5a --- /dev/null +++ b/docs/generated/docs/ads1x15__voltage_8cpp__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/ads1x15__voltage_8cpp__incl.md5 b/docs/generated/docs/ads1x15__voltage_8cpp__incl.md5 new file mode 100644 index 000000000..fcc428035 --- /dev/null +++ b/docs/generated/docs/ads1x15__voltage_8cpp__incl.md5 @@ -0,0 +1 @@ +9233bf876cf2b1039f94a30414f846c8 \ No newline at end of file diff --git a/docs/generated/docs/ads1x15__voltage_8cpp__incl.png b/docs/generated/docs/ads1x15__voltage_8cpp__incl.png new file mode 100644 index 000000000..16cbc1842 Binary files /dev/null and b/docs/generated/docs/ads1x15__voltage_8cpp__incl.png differ diff --git a/docs/generated/docs/ads1x15__voltage_8cpp_source.html b/docs/generated/docs/ads1x15__voltage_8cpp_source.html new file mode 100644 index 000000000..eab40616c --- /dev/null +++ b/docs/generated/docs/ads1x15__voltage_8cpp_source.html @@ -0,0 +1,166 @@ + + + + + + + +SensESP: src/transforms/ads1x15_voltage.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ads1x15_voltage.cpp
+
+
+Go to the documentation of this file.
1 #include "ads1x15_voltage.h"
+
2 
+ +
4  : NumericTransform(), chip{chip}, gain{gain} {}
+
5 
+
6 void ADS1x15Voltage::set_input(float input, uint8_t inputChannel) {
+
7  if (chip == ADS1015chip) {
+
8  switch (gain) {
+
9  case GAIN_TWOTHIRDS:
+
10  output = input * 0.003;
+
11  break;
+
12  case GAIN_ONE:
+
13  output = input * 0.002;
+
14  break;
+
15  case GAIN_TWO:
+
16  output = input * 0.001;
+
17  break;
+
18  case GAIN_FOUR:
+
19  output = input * 0.0005;
+
20  break;
+
21  case GAIN_EIGHT:
+
22  output = input * 0.00025;
+
23  break;
+
24  case GAIN_SIXTEEN:
+
25  output = input * 0.000125;
+
26  break;
+
27  default:
+
28  debugE("FATAL: invalid GAIN parameter.");
+
29  }
+
30  } else if (chip == ADS1115chip) {
+
31  switch (gain) {
+
32  case GAIN_TWOTHIRDS:
+
33  output = input * 0.0001875;
+
34  break;
+
35  case GAIN_ONE:
+
36  output = input * 0.000125;
+
37  break;
+
38  case GAIN_TWO:
+
39  output = input * 0.0000625;
+
40  break;
+
41  case GAIN_FOUR:
+
42  output = input * 0.00003125;
+
43  break;
+
44  case GAIN_EIGHT:
+
45  output = input * 0.000015625;
+
46  break;
+
47  case GAIN_SIXTEEN:
+
48  output = input * 0.0000078125;
+
49  break;
+
50  default:
+
51  debugE("FATAL: invalid GAIN parameter.");
+
52  }
+
53  } else {
+
54  debugE("FATAL: chip parameter must be ADS1015chip or ADS1115chip.");
+
55  }
+
56  notify();
+
57 }
+
+
+
ADS1x15CHIP_t
+
+
ADS1x15CHIP_t chip
+
ADS1x15Voltage(ADS1x15CHIP_t chip=ADS1115chip, adsGain_t gain=GAIN_TWOTHIRDS)
+
virtual void set_input(float input, uint8_t input_channel=0) override
+
@ ADS1115chip
+
adsGain_t gain
+
+
@ ADS1015chip
+ + + + diff --git a/docs/generated/docs/ads1x15__voltage_8h.html b/docs/generated/docs/ads1x15__voltage_8h.html new file mode 100644 index 000000000..4780b6984 --- /dev/null +++ b/docs/generated/docs/ads1x15__voltage_8h.html @@ -0,0 +1,177 @@ + + + + + + + +SensESP: src/transforms/ads1x15_voltage.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ads1x15_voltage.h File Reference
+
+
+
#include <Adafruit_ADS1015.h>
+#include "transforms/transform.h"
+
+Include dependency graph for ads1x15_voltage.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  ADS1x15Voltage
 
+ + + +

+Enumerations

enum  ADS1x15CHIP_t { ADS1015chip, +ADS1115chip + }
 
+

Enumeration Type Documentation

+ +

◆ ADS1x15CHIP_t

+ +
+
+ + + + +
enum ADS1x15CHIP_t
+
+ + + +
Enumerator
ADS1015chip 
ADS1115chip 
+ +

Definition at line 13 of file ads1x15_voltage.h.

+ +
+
+
+
+ + + + diff --git a/docs/generated/docs/ads1x15__voltage_8h.js b/docs/generated/docs/ads1x15__voltage_8h.js new file mode 100644 index 000000000..c0b72f389 --- /dev/null +++ b/docs/generated/docs/ads1x15__voltage_8h.js @@ -0,0 +1,8 @@ +var ads1x15__voltage_8h = +[ + [ "ADS1x15Voltage", "class_a_d_s1x15_voltage.html", "class_a_d_s1x15_voltage" ], + [ "ADS1x15CHIP_t", "ads1x15__voltage_8h.html#a287de91a50d45b83ad2b999a32f96846", [ + [ "ADS1015chip", "ads1x15__voltage_8h.html#a287de91a50d45b83ad2b999a32f96846a1efc5b453be0b8efe9d2827c22c94669", null ], + [ "ADS1115chip", "ads1x15__voltage_8h.html#a287de91a50d45b83ad2b999a32f96846a8d7ed005368ca618b3f7022dc1cb5c32", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/generated/docs/ads1x15__voltage_8h__dep__incl.map b/docs/generated/docs/ads1x15__voltage_8h__dep__incl.map new file mode 100644 index 000000000..2c536add5 --- /dev/null +++ b/docs/generated/docs/ads1x15__voltage_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/ads1x15__voltage_8h__dep__incl.md5 b/docs/generated/docs/ads1x15__voltage_8h__dep__incl.md5 new file mode 100644 index 000000000..8c84583ce --- /dev/null +++ b/docs/generated/docs/ads1x15__voltage_8h__dep__incl.md5 @@ -0,0 +1 @@ +91690e5009af4af65f2df248c9cc984f \ No newline at end of file diff --git a/docs/generated/docs/ads1x15__voltage_8h__dep__incl.png b/docs/generated/docs/ads1x15__voltage_8h__dep__incl.png new file mode 100644 index 000000000..988195075 Binary files /dev/null and b/docs/generated/docs/ads1x15__voltage_8h__dep__incl.png differ diff --git a/docs/generated/docs/ads1x15__voltage_8h__incl.map b/docs/generated/docs/ads1x15__voltage_8h__incl.map new file mode 100644 index 000000000..a22a38919 --- /dev/null +++ b/docs/generated/docs/ads1x15__voltage_8h__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/ads1x15__voltage_8h__incl.md5 b/docs/generated/docs/ads1x15__voltage_8h__incl.md5 new file mode 100644 index 000000000..05bb8900b --- /dev/null +++ b/docs/generated/docs/ads1x15__voltage_8h__incl.md5 @@ -0,0 +1 @@ +794bab9608d79522bf751e33f0cdbf98 \ No newline at end of file diff --git a/docs/generated/docs/ads1x15__voltage_8h__incl.png b/docs/generated/docs/ads1x15__voltage_8h__incl.png new file mode 100644 index 000000000..828ef4b33 Binary files /dev/null and b/docs/generated/docs/ads1x15__voltage_8h__incl.png differ diff --git a/docs/generated/docs/ads1x15__voltage_8h_source.html b/docs/generated/docs/ads1x15__voltage_8h_source.html new file mode 100644 index 000000000..4116081b3 --- /dev/null +++ b/docs/generated/docs/ads1x15__voltage_8h_source.html @@ -0,0 +1,137 @@ + + + + + + + +SensESP: src/transforms/ads1x15_voltage.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ads1x15_voltage.h
+
+
+Go to the documentation of this file.
1 #ifndef _ads1x15_voltage_H
+
2 #define _ads1x15_voltage_H
+
3 
+
4 #include <Adafruit_ADS1015.h>
+
5 
+
6 #include "transforms/transform.h"
+
7 
+
8 // FIXME: This shouldn't be a separate transform but integrated with ads1x15
+
9 // sensors.
+
10 
+
11 // Pass one of these in the constructor to ADS1x15Voltage() to tell which of the
+
12 // two chips you're working with.
+ +
14 
+ +
40  public:
+ +
42  adsGain_t gain = GAIN_TWOTHIRDS);
+
43 
+
44  virtual void set_input(float input, uint8_t input_channel = 0) override;
+
45 
+
46  protected:
+ +
48  adsGain_t gain;
+
49 };
+
50 
+
51 #endif
+
+
+
ADS1x15CHIP_t
+
+
ADS1x15CHIP_t chip
+
ADS1x15Voltage(ADS1x15CHIP_t chip=ADS1115chip, adsGain_t gain=GAIN_TWOTHIRDS)
+
virtual void set_input(float input, uint8_t input_channel=0) override
+
@ ADS1115chip
+
adsGain_t gain
+
+
+
@ ADS1015chip
+ + + + diff --git a/docs/generated/docs/analog__input_8cpp.html b/docs/generated/docs/analog__input_8cpp.html new file mode 100644 index 000000000..6dfaf4591 --- /dev/null +++ b/docs/generated/docs/analog__input_8cpp.html @@ -0,0 +1,133 @@ + + + + + + + +SensESP: src/sensors/analog_input.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
analog_input.cpp File Reference
+
+
+
#include "analog_input.h"
+#include "Arduino.h"
+#include "sensesp.h"
+
+Include dependency graph for analog_input.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/generated/docs/analog__input_8cpp__incl.map b/docs/generated/docs/analog__input_8cpp__incl.map new file mode 100644 index 000000000..b3e7c30b2 --- /dev/null +++ b/docs/generated/docs/analog__input_8cpp__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/analog__input_8cpp__incl.md5 b/docs/generated/docs/analog__input_8cpp__incl.md5 new file mode 100644 index 000000000..8d9c9dc35 --- /dev/null +++ b/docs/generated/docs/analog__input_8cpp__incl.md5 @@ -0,0 +1 @@ +9b3a6fd7bc6da0ee2eeab29868345285 \ No newline at end of file diff --git a/docs/generated/docs/analog__input_8cpp__incl.png b/docs/generated/docs/analog__input_8cpp__incl.png new file mode 100644 index 000000000..2fff80f37 Binary files /dev/null and b/docs/generated/docs/analog__input_8cpp__incl.png differ diff --git a/docs/generated/docs/analog__input_8cpp_source.html b/docs/generated/docs/analog__input_8cpp_source.html new file mode 100644 index 000000000..88c00d9cf --- /dev/null +++ b/docs/generated/docs/analog__input_8cpp_source.html @@ -0,0 +1,162 @@ + + + + + + + +SensESP: src/sensors/analog_input.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
analog_input.cpp
+
+
+Go to the documentation of this file.
1 #include "analog_input.h"
+
2 
+
3 #include "Arduino.h"
+
4 #include "sensesp.h"
+
5 
+
6 AnalogInput::AnalogInput(uint8_t pin, uint read_delay, String config_path,
+
7  float output_scale)
+
8  : NumericSensor(config_path),
+
9  pin{pin},
+
10  read_delay{read_delay},
+
11  output_scale{output_scale} {
+
12  analog_reader = new AnalogReader(pin);
+
13  load_configuration();
+
14 }
+
15 
+
16 void AnalogInput::update() {
+
17  output = output_scale * analog_reader->read();
+
18  this->notify();
+
19 }
+
20 
+ +
22  if (this->analog_reader->configure()) {
+
23  app.onRepeat(read_delay, [this]() { this->update(); });
+
24  }
+
25 }
+
26 
+
27 void AnalogInput::get_configuration(JsonObject& root) {
+
28  root["read_delay"] = read_delay;
+
29  root["value"] = output;
+
30 };
+
31 
+
32 static const char SCHEMA[] PROGMEM = R"###({
+
33  "type": "object",
+
34  "properties": {
+
35  "read_delay": { "title": "Read delay", "type": "number", "description": "Number of milliseconds between each analogRead(A0)" },
+
36  "value": { "title": "Last value", "type" : "number", "readOnly": true }
+
37  }
+
38  })###";
+
39 
+
40 String AnalogInput::get_config_schema() { return FPSTR(SCHEMA); }
+
41 
+
42 bool AnalogInput::set_configuration(const JsonObject& config) {
+
43  String expected[] = {"read_delay"};
+
44  for (auto str : expected) {
+
45  if (!config.containsKey(str)) {
+
46  return false;
+
47  }
+
48  }
+
49  read_delay = config["read_delay"];
+
50  return true;
+
51 }
+
+
+
void notify()
Definition: observable.cpp:3
+
float output
Definition: valueproducer.h:86
+
virtual float read()=0
+
virtual bool configure()=0
+
const char PAGE_index[] PROGMEM
Definition: index.h:2
+
void enable() override final
+
Definition: sensor.h:29
+
+
+
ReactESP app
+
AnalogInput(uint8_t pin=A0, uint read_delay=200, String config_path="", float output_scale=1024.)
Sensor for reading the MCU analog input pins.
Definition: analog_input.cpp:6
+ + + + diff --git a/docs/generated/docs/analog__input_8h.html b/docs/generated/docs/analog__input_8h.html new file mode 100644 index 000000000..f82a8e716 --- /dev/null +++ b/docs/generated/docs/analog__input_8h.html @@ -0,0 +1,151 @@ + + + + + + + +SensESP: src/sensors/analog_input.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
analog_input.h File Reference
+
+
+
#include "analog_reader.h"
+#include "sensor.h"
+
+Include dependency graph for analog_input.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  AnalogInput
 
+
+
+ + + + diff --git a/docs/generated/docs/analog__input_8h__dep__incl.map b/docs/generated/docs/analog__input_8h__dep__incl.map new file mode 100644 index 000000000..459838188 --- /dev/null +++ b/docs/generated/docs/analog__input_8h__dep__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/analog__input_8h__dep__incl.md5 b/docs/generated/docs/analog__input_8h__dep__incl.md5 new file mode 100644 index 000000000..622a82e86 --- /dev/null +++ b/docs/generated/docs/analog__input_8h__dep__incl.md5 @@ -0,0 +1 @@ +c28468f3a349f76910daae57966e7f1f \ No newline at end of file diff --git a/docs/generated/docs/analog__input_8h__dep__incl.png b/docs/generated/docs/analog__input_8h__dep__incl.png new file mode 100644 index 000000000..1e6da8600 Binary files /dev/null and b/docs/generated/docs/analog__input_8h__dep__incl.png differ diff --git a/docs/generated/docs/analog__input_8h__incl.map b/docs/generated/docs/analog__input_8h__incl.map new file mode 100644 index 000000000..808962ce2 --- /dev/null +++ b/docs/generated/docs/analog__input_8h__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/analog__input_8h__incl.md5 b/docs/generated/docs/analog__input_8h__incl.md5 new file mode 100644 index 000000000..64a296dc1 --- /dev/null +++ b/docs/generated/docs/analog__input_8h__incl.md5 @@ -0,0 +1 @@ +14c5dc0e7fba8989e3120c75cf2c8556 \ No newline at end of file diff --git a/docs/generated/docs/analog__input_8h__incl.png b/docs/generated/docs/analog__input_8h__incl.png new file mode 100644 index 000000000..5717c565c Binary files /dev/null and b/docs/generated/docs/analog__input_8h__incl.png differ diff --git a/docs/generated/docs/analog__input_8h_source.html b/docs/generated/docs/analog__input_8h_source.html new file mode 100644 index 000000000..6f80aecc0 --- /dev/null +++ b/docs/generated/docs/analog__input_8h_source.html @@ -0,0 +1,132 @@ + + + + + + + +SensESP: src/sensors/analog_input.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
analog_input.h
+
+
+Go to the documentation of this file.
1 #ifndef _analog_input_H_
+
2 #define _analog_input_H_
+
3 
+
4 #include "analog_reader.h"
+
5 #include "sensor.h"
+
6 
+
7 class AnalogInput : public NumericSensor {
+
8  public:
+
22  AnalogInput(uint8_t pin = A0, uint read_delay = 200, String config_path = "",
+
23  float output_scale = 1024.);
+
24  void enable() override final;
+
25 
+
26  private:
+
27  uint8_t pin;
+
28  uint read_delay;
+
29  float output_scale;
+
30  BaseAnalogReader* analog_reader;
+
31  virtual void get_configuration(JsonObject& doc) override;
+
32  virtual bool set_configuration(const JsonObject& config) override;
+
33  virtual String get_config_schema() override;
+
34  void update();
+
35 };
+
36 
+
37 #endif
+
+
+
Definition: analog_input.h:7
+
+
void enable() override final
+
Definition: sensor.h:29
+
const String config_path
Definition: configurable.h:31
+
Definition: analog_reader.h:10
+
+
AnalogInput(uint8_t pin=A0, uint read_delay=200, String config_path="", float output_scale=1024.)
Sensor for reading the MCU analog input pins.
Definition: analog_input.cpp:6
+ + + + diff --git a/docs/generated/docs/analog__reader_8h.html b/docs/generated/docs/analog__reader_8h.html new file mode 100644 index 000000000..b39764b7d --- /dev/null +++ b/docs/generated/docs/analog__reader_8h.html @@ -0,0 +1,137 @@ + + + + + + + +SensESP: src/sensors/analog_reader.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
analog_reader.h File Reference
+
+
+
#include "Arduino.h"
+#include "sensesp.h"
+
+Include dependency graph for analog_reader.h:
+
+
+ + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  BaseAnalogReader
 
+
+
+ + + + diff --git a/docs/generated/docs/analog__reader_8h__dep__incl.map b/docs/generated/docs/analog__reader_8h__dep__incl.map new file mode 100644 index 000000000..22181108a --- /dev/null +++ b/docs/generated/docs/analog__reader_8h__dep__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/generated/docs/analog__reader_8h__dep__incl.md5 b/docs/generated/docs/analog__reader_8h__dep__incl.md5 new file mode 100644 index 000000000..c3fa8404e --- /dev/null +++ b/docs/generated/docs/analog__reader_8h__dep__incl.md5 @@ -0,0 +1 @@ +2e84fcbcb1bd3f9c0843a501d8d4cb02 \ No newline at end of file diff --git a/docs/generated/docs/analog__reader_8h__dep__incl.png b/docs/generated/docs/analog__reader_8h__dep__incl.png new file mode 100644 index 000000000..6043e0e08 Binary files /dev/null and b/docs/generated/docs/analog__reader_8h__dep__incl.png differ diff --git a/docs/generated/docs/analog__reader_8h__incl.map b/docs/generated/docs/analog__reader_8h__incl.map new file mode 100644 index 000000000..13b6c682e --- /dev/null +++ b/docs/generated/docs/analog__reader_8h__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/analog__reader_8h__incl.md5 b/docs/generated/docs/analog__reader_8h__incl.md5 new file mode 100644 index 000000000..97a1a9d7c --- /dev/null +++ b/docs/generated/docs/analog__reader_8h__incl.md5 @@ -0,0 +1 @@ +d55651d51e5d62bb69746ca269a0b548 \ No newline at end of file diff --git a/docs/generated/docs/analog__reader_8h__incl.png b/docs/generated/docs/analog__reader_8h__incl.png new file mode 100644 index 000000000..e8b868d73 Binary files /dev/null and b/docs/generated/docs/analog__reader_8h__incl.png differ diff --git a/docs/generated/docs/analog__reader_8h_source.html b/docs/generated/docs/analog__reader_8h_source.html new file mode 100644 index 000000000..bc77a1c71 --- /dev/null +++ b/docs/generated/docs/analog__reader_8h_source.html @@ -0,0 +1,180 @@ + + + + + + + +SensESP: src/sensors/analog_reader.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
analog_reader.h
+
+
+Go to the documentation of this file.
1 #ifndef _analog_reader_H_
+
2 #define _analog_reader_H_
+
3 
+
4 #include "Arduino.h"
+
5 #include "sensesp.h"
+
6 #if defined(ESP32)
+
7 #include "esp_adc_cal.h"
+
8 #endif
+
9 
+ +
11  private:
+
12  int output_scale_;
+
13 
+
14  public:
+
15  virtual bool configure() = 0;
+
16  virtual float read() = 0;
+
17 };
+
18 
+
19 #ifdef ESP8266
+
20 class ESP8266AnalogReader : public BaseAnalogReader {
+
21  private:
+
22  uint8_t pin_;
+
23  const unsigned int kAdcMax = 1024;
+
24 
+
25  public:
+
26  ESP8266AnalogReader(uint8_t pin) : pin_{pin} { pinMode(pin, INPUT); }
+
27  bool configure() { return true; }
+
28  float read() { return (float)analogRead(pin_) / kAdcMax; }
+
29 };
+
30 typedef ESP8266AnalogReader AnalogReader;
+
31 #endif
+
32 
+
33 #ifdef ESP32
+
34 class ESP32AnalogReader : public BaseAnalogReader {
+
35  private:
+
36  int pin_;
+
37  adc_atten_t attenuation = ADC_ATTEN_DB_11;
+
38  adc_bits_width_t bit_width = ADC_WIDTH_BIT_12;
+
39  // maximum voltage readout for 3.3V VDDA when attenuation is set to 11 dB
+
40  const float kVmax = 3300;
+
41  int8_t adc_channel_;
+
42  esp_adc_cal_characteristics_t adc_characteristics;
+
43  const int kVref = 1100; // voltage reference, in mV
+
44 
+
45  public:
+
46  ESP32AnalogReader(int pin) : pin_{pin} {
+
47  if (!(32 <= pin && pin <= 39)) {
+
48  debugE("Only ADC1 is supported at the moment");
+
49  adc_channel_ = -1;
+
50  return;
+
51  }
+
52  adc_channel_ = digitalPinToAnalogChannel(pin);
+
53  }
+
54 
+
55  bool configure() {
+
56  if (adc_channel_ == -1) {
+
57  return false;
+
58  }
+
59  adc1_config_width(bit_width);
+
60  adc1_config_channel_atten((adc1_channel_t)adc_channel_, attenuation);
+
61  esp_adc_cal_characterize(ADC_UNIT_1, attenuation, bit_width, kVref,
+
62  &adc_characteristics);
+
63  return true;
+
64  }
+
65 
+
66  float read() {
+
67  uint32_t voltage;
+
68  esp_adc_cal_get_voltage((adc_channel_t)adc_channel_, &adc_characteristics,
+
69  &voltage);
+
70  return voltage / kVmax;
+
71  }
+
72 };
+
73 typedef ESP32AnalogReader AnalogReader;
+
74 #endif
+
75 
+
76 #endif
+
+
+
virtual float read()=0
+
virtual bool configure()=0
+
Definition: analog_reader.h:10
+
+ + + + diff --git a/docs/generated/docs/analogvoltage_8cpp.html b/docs/generated/docs/analogvoltage_8cpp.html new file mode 100644 index 000000000..92b2f5801 --- /dev/null +++ b/docs/generated/docs/analogvoltage_8cpp.html @@ -0,0 +1,130 @@ + + + + + + + +SensESP: src/transforms/analogvoltage.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
analogvoltage.cpp File Reference
+
+
+
#include "analogvoltage.h"
+
+Include dependency graph for analogvoltage.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/generated/docs/analogvoltage_8cpp__incl.map b/docs/generated/docs/analogvoltage_8cpp__incl.map new file mode 100644 index 000000000..da7614ab7 --- /dev/null +++ b/docs/generated/docs/analogvoltage_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/analogvoltage_8cpp__incl.md5 b/docs/generated/docs/analogvoltage_8cpp__incl.md5 new file mode 100644 index 000000000..4bb6377e6 --- /dev/null +++ b/docs/generated/docs/analogvoltage_8cpp__incl.md5 @@ -0,0 +1 @@ +bd88b4e3b02fafce4582e2b2698db745 \ No newline at end of file diff --git a/docs/generated/docs/analogvoltage_8cpp__incl.png b/docs/generated/docs/analogvoltage_8cpp__incl.png new file mode 100644 index 000000000..d186d424d Binary files /dev/null and b/docs/generated/docs/analogvoltage_8cpp__incl.png differ diff --git a/docs/generated/docs/analogvoltage_8cpp_source.html b/docs/generated/docs/analogvoltage_8cpp_source.html new file mode 100644 index 000000000..5d798d279 --- /dev/null +++ b/docs/generated/docs/analogvoltage_8cpp_source.html @@ -0,0 +1,156 @@ + + + + + + + +SensESP: src/transforms/analogvoltage.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
analogvoltage.cpp
+
+
+Go to the documentation of this file.
1 #include "analogvoltage.h"
+
2 
+
3 AnalogVoltage::AnalogVoltage(float max_voltage, float multiplier, float offset,
+
4  String config_path)
+
5  : NumericTransform(config_path),
+
6  max_voltage{max_voltage},
+
7  multiplier{multiplier},
+
8  offset{offset} {
+
9  load_configuration();
+
10 }
+
11 
+
12 void AnalogVoltage::set_input(float input, uint8_t inputChannel) {
+
13  output = ((input * (max_voltage / MAX_ANALOG_OUTPUT)) * multiplier) + offset;
+
14  notify();
+
15 }
+
16 
+
17 void AnalogVoltage::get_configuration(JsonObject& root) {
+
18  root["max_voltage"] = max_voltage;
+
19  root["multiplier"] = multiplier;
+
20  root["offset"] = offset;
+
21  root["value"] = output;
+
22 }
+
23 
+
24 static const char SCHEMA[] PROGMEM = R"({
+
25  "type": "object",
+
26  "properties": {
+
27  "max_voltage": { "title": "Max voltage", "type": "number", "description": "The maximum voltage allowed into your ESP's Analog Input pin" },
+
28  "multiplier": { "title": "Mulitplier", "type": "number", "description": "Output will be multiplied by this before sending to SK" },
+
29  "offsest": { "title": "Offset", "type": "number", "description": "This will be added to output before sending to SK" },
+
30  "value": { "title": "Last value", "type" : "number", "readOnly": true }
+
31  }
+
32  })";
+
33 
+
34 String AnalogVoltage::get_config_schema() { return FPSTR(SCHEMA); }
+
35 
+
36 bool AnalogVoltage::set_configuration(const JsonObject& config) {
+
37  String expected[] = {"max_voltage", "multiplier", "offset"};
+
38  for (auto str : expected) {
+
39  if (!config.containsKey(str)) {
+
40  return false;
+
41  }
+
42  }
+
43  max_voltage = config["max_voltage"];
+
44  multiplier = config["multiplier"];
+
45  offset = config["offset"];
+
46  return true;
+
47 }
+
+
+
AnalogVoltage(float max_voltage=3.3, float multiplier=1.0, float offset=0.0, String config_path="")
+
+
const char PAGE_index[] PROGMEM
Definition: index.h:2
+
virtual void set_input(float input, uint8_t inputChannel=0) override
+
virtual String get_config_schema() override
+
#define MAX_ANALOG_OUTPUT
Definition: analogvoltage.h:9
+
+
virtual void get_configuration(JsonObject &doc) override
+
virtual bool set_configuration(const JsonObject &config) override
+ + + + diff --git a/docs/generated/docs/analogvoltage_8h.html b/docs/generated/docs/analogvoltage_8h.html new file mode 100644 index 000000000..1e1db48e2 --- /dev/null +++ b/docs/generated/docs/analogvoltage_8h.html @@ -0,0 +1,169 @@ + + + + + + + +SensESP: src/transforms/analogvoltage.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
analogvoltage.h File Reference
+
+
+
#include "transform.h"
+
+Include dependency graph for analogvoltage.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  AnalogVoltage
 
+ + + +

+Macros

#define MAX_ANALOG_OUTPUT   1024
 
+

Macro Definition Documentation

+ +

◆ MAX_ANALOG_OUTPUT

+ +
+
+ + + + +
#define MAX_ANALOG_OUTPUT   1024
+
+ +

Definition at line 9 of file analogvoltage.h.

+ +
+
+
+
+ + + + diff --git a/docs/generated/docs/analogvoltage_8h.js b/docs/generated/docs/analogvoltage_8h.js new file mode 100644 index 000000000..0206b79c8 --- /dev/null +++ b/docs/generated/docs/analogvoltage_8h.js @@ -0,0 +1,5 @@ +var analogvoltage_8h = +[ + [ "AnalogVoltage", "class_analog_voltage.html", "class_analog_voltage" ], + [ "MAX_ANALOG_OUTPUT", "analogvoltage_8h.html#acd21751cadfe75b41534fa2d356d29a3", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/analogvoltage_8h__dep__incl.map b/docs/generated/docs/analogvoltage_8h__dep__incl.map new file mode 100644 index 000000000..a91d2c3b6 --- /dev/null +++ b/docs/generated/docs/analogvoltage_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/analogvoltage_8h__dep__incl.md5 b/docs/generated/docs/analogvoltage_8h__dep__incl.md5 new file mode 100644 index 000000000..5c7284cd0 --- /dev/null +++ b/docs/generated/docs/analogvoltage_8h__dep__incl.md5 @@ -0,0 +1 @@ +a7ff6f8470a5918761d14847ccac6d32 \ No newline at end of file diff --git a/docs/generated/docs/analogvoltage_8h__dep__incl.png b/docs/generated/docs/analogvoltage_8h__dep__incl.png new file mode 100644 index 000000000..ad6fd1ca7 Binary files /dev/null and b/docs/generated/docs/analogvoltage_8h__dep__incl.png differ diff --git a/docs/generated/docs/analogvoltage_8h__incl.map b/docs/generated/docs/analogvoltage_8h__incl.map new file mode 100644 index 000000000..6660011c5 --- /dev/null +++ b/docs/generated/docs/analogvoltage_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/analogvoltage_8h__incl.md5 b/docs/generated/docs/analogvoltage_8h__incl.md5 new file mode 100644 index 000000000..961da971f --- /dev/null +++ b/docs/generated/docs/analogvoltage_8h__incl.md5 @@ -0,0 +1 @@ +dfb30af36a3f96814eca20584c161a02 \ No newline at end of file diff --git a/docs/generated/docs/analogvoltage_8h__incl.png b/docs/generated/docs/analogvoltage_8h__incl.png new file mode 100644 index 000000000..2f9fbc411 Binary files /dev/null and b/docs/generated/docs/analogvoltage_8h__incl.png differ diff --git a/docs/generated/docs/analogvoltage_8h_source.html b/docs/generated/docs/analogvoltage_8h_source.html new file mode 100644 index 000000000..2af639ed8 --- /dev/null +++ b/docs/generated/docs/analogvoltage_8h_source.html @@ -0,0 +1,135 @@ + + + + + + + +SensESP: src/transforms/analogvoltage.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
analogvoltage.h
+
+
+Go to the documentation of this file.
1 #ifndef _analog_voltage_H
+
2 #define _analog_voltage_H
+
3 
+
4 #include "transform.h"
+
5 
+
6 #ifdef ESP32
+
7 #define MAX_ANALOG_OUTPUT 4096
+
8 #else
+
9 #define MAX_ANALOG_OUTPUT 1024
+
10 #endif
+
11 
+ +
22  public:
+
23  AnalogVoltage(float max_voltage = 3.3, float multiplier = 1.0,
+
24  float offset = 0.0, String config_path = "");
+
25  virtual void set_input(float input, uint8_t inputChannel = 0) override;
+
26  virtual void get_configuration(JsonObject& doc) override;
+
27  virtual bool set_configuration(const JsonObject& config) override;
+
28  virtual String get_config_schema() override;
+
29 
+
30  private:
+
31  float max_voltage;
+
32  float multiplier;
+
33  float offset;
+
34 };
+
35 
+
36 #endif
+
+
+
AnalogVoltage(float max_voltage=3.3, float multiplier=1.0, float offset=0.0, String config_path="")
+
+
Definition: analogvoltage.h:21
+
virtual void set_input(float input, uint8_t inputChannel=0) override
+
virtual String get_config_schema() override
+
virtual void get_configuration(JsonObject &doc) override
+
+
virtual bool set_configuration(const JsonObject &config) override
+ + + + diff --git a/docs/generated/docs/angle__correction_8cpp.html b/docs/generated/docs/angle__correction_8cpp.html new file mode 100644 index 000000000..54763eb62 --- /dev/null +++ b/docs/generated/docs/angle__correction_8cpp.html @@ -0,0 +1,155 @@ + + + + + + + +SensESP: src/transforms/angle_correction.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
angle_correction.cpp File Reference
+
+
+
#include "angle_correction.h"
+
+Include dependency graph for angle_correction.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Macros

#define M_PI   3.14159265358979323846
 
+

Macro Definition Documentation

+ +

◆ M_PI

+ +
+
+ + + + +
#define M_PI   3.14159265358979323846
+
+ +

Definition at line 3 of file angle_correction.cpp.

+ +
+
+
+
+ + + + diff --git a/docs/generated/docs/angle__correction_8cpp.js b/docs/generated/docs/angle__correction_8cpp.js new file mode 100644 index 000000000..f1f6fcdf6 --- /dev/null +++ b/docs/generated/docs/angle__correction_8cpp.js @@ -0,0 +1,4 @@ +var angle__correction_8cpp = +[ + [ "M_PI", "angle__correction_8cpp.html#ae71449b1cc6e6250b91f539153a7a0d3", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/angle__correction_8cpp__incl.map b/docs/generated/docs/angle__correction_8cpp__incl.map new file mode 100644 index 000000000..2ed2babeb --- /dev/null +++ b/docs/generated/docs/angle__correction_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/angle__correction_8cpp__incl.md5 b/docs/generated/docs/angle__correction_8cpp__incl.md5 new file mode 100644 index 000000000..a24c655cc --- /dev/null +++ b/docs/generated/docs/angle__correction_8cpp__incl.md5 @@ -0,0 +1 @@ +a9aeef56df78b3842406cefbe498ccc7 \ No newline at end of file diff --git a/docs/generated/docs/angle__correction_8cpp__incl.png b/docs/generated/docs/angle__correction_8cpp__incl.png new file mode 100644 index 000000000..975641f62 Binary files /dev/null and b/docs/generated/docs/angle__correction_8cpp__incl.png differ diff --git a/docs/generated/docs/angle__correction_8cpp_source.html b/docs/generated/docs/angle__correction_8cpp_source.html new file mode 100644 index 000000000..1db6f9b01 --- /dev/null +++ b/docs/generated/docs/angle__correction_8cpp_source.html @@ -0,0 +1,161 @@ + + + + + + + +SensESP: src/transforms/angle_correction.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
angle_correction.cpp
+
+
+Go to the documentation of this file.
1 #include "angle_correction.h"
+
2 
+
3 #define M_PI 3.14159265358979323846
+
4 
+
5 AngleCorrection::AngleCorrection(float offset, float min_angle,
+
6  String config_path)
+
7  : NumericTransform(config_path), offset{offset}, min_angle{min_angle} {
+
8  load_configuration();
+
9 }
+
10 
+
11 void AngleCorrection::set_input(float input, uint8_t inputChannel) {
+
12  // first the correction
+
13  float x = input + offset;
+
14 
+
15  // then wrap around the values
+
16  x = fmod(x - min_angle, 2 * M_PI);
+
17  if (x < 0) {
+
18  x += 2 * M_PI;
+
19  }
+
20  output = x + min_angle;
+
21 
+
22  notify();
+
23 }
+
24 
+
25 void AngleCorrection::get_configuration(JsonObject& root) {
+
26  root["offset"] = offset;
+
27  root["min_angle"] = min_angle;
+
28  root["value"] = output;
+
29 }
+
30 
+
31 static const char SCHEMA[] PROGMEM = R"###({
+
32  "type": "object",
+
33  "properties": {
+
34  "offset": { "title": "Constant offset", "description": "Value to be added, in radians", "type": "number" },
+
35  "min_angle": { "title": "Minimum angle value", "description": "If you have output between -pi and pi, use -3.14159265, otherwise use 0.", "type": "number" },
+
36  "value": { "title": "Last value", "type" : "number", "readOnly": true }
+
37  }
+
38  })###";
+
39 
+
40 String AngleCorrection::get_config_schema() { return FPSTR(SCHEMA); }
+
41 
+
42 bool AngleCorrection::set_configuration(const JsonObject& config) {
+
43  String expected[] = {"offset", "min_angle"};
+
44  for (auto str : expected) {
+
45  if (!config.containsKey(str)) {
+
46  return false;
+
47  }
+
48  }
+
49  offset = config["offset"];
+
50  min_angle = config["min_angle"];
+
51  return true;
+
52 }
+
+
+
+
const char PAGE_index[] PROGMEM
Definition: index.h:2
+
AngleCorrection(float offset, float min_angle=0, String config_path="")
+
+
#define M_PI
+
virtual void set_input(float input, uint8_t inputChannel=0) override
+
virtual bool set_configuration(const JsonObject &config) override
+
virtual String get_config_schema() override
+
virtual void get_configuration(JsonObject &doc) override
+ + + + diff --git a/docs/generated/docs/angle__correction_8h.html b/docs/generated/docs/angle__correction_8h.html new file mode 100644 index 000000000..03dbd7805 --- /dev/null +++ b/docs/generated/docs/angle__correction_8h.html @@ -0,0 +1,147 @@ + + + + + + + +SensESP: src/transforms/angle_correction.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
angle_correction.h File Reference
+
+
+
#include "transform.h"
+
+Include dependency graph for angle_correction.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  AngleCorrection
 
+
+
+ + + + diff --git a/docs/angle__correction_8h__dep__incl.map b/docs/generated/docs/angle__correction_8h__dep__incl.map similarity index 100% rename from docs/angle__correction_8h__dep__incl.map rename to docs/generated/docs/angle__correction_8h__dep__incl.map diff --git a/docs/generated/docs/angle__correction_8h__dep__incl.md5 b/docs/generated/docs/angle__correction_8h__dep__incl.md5 new file mode 100644 index 000000000..220a50d18 --- /dev/null +++ b/docs/generated/docs/angle__correction_8h__dep__incl.md5 @@ -0,0 +1 @@ +b20b598a94fef5cba3cfe653795c0158 \ No newline at end of file diff --git a/docs/generated/docs/angle__correction_8h__dep__incl.png b/docs/generated/docs/angle__correction_8h__dep__incl.png new file mode 100644 index 000000000..879b4d377 Binary files /dev/null and b/docs/generated/docs/angle__correction_8h__dep__incl.png differ diff --git a/docs/generated/docs/angle__correction_8h__incl.map b/docs/generated/docs/angle__correction_8h__incl.map new file mode 100644 index 000000000..522037c3e --- /dev/null +++ b/docs/generated/docs/angle__correction_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/angle__correction_8h__incl.md5 b/docs/generated/docs/angle__correction_8h__incl.md5 new file mode 100644 index 000000000..2a882aef2 --- /dev/null +++ b/docs/generated/docs/angle__correction_8h__incl.md5 @@ -0,0 +1 @@ +276194b5a1b359413482bd66f419f0f6 \ No newline at end of file diff --git a/docs/generated/docs/angle__correction_8h__incl.png b/docs/generated/docs/angle__correction_8h__incl.png new file mode 100644 index 000000000..61a9c8b61 Binary files /dev/null and b/docs/generated/docs/angle__correction_8h__incl.png differ diff --git a/docs/generated/docs/angle__correction_8h_source.html b/docs/generated/docs/angle__correction_8h_source.html new file mode 100644 index 000000000..70ec21a30 --- /dev/null +++ b/docs/generated/docs/angle__correction_8h_source.html @@ -0,0 +1,130 @@ + + + + + + + +SensESP: src/transforms/angle_correction.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
angle_correction.h
+
+
+Go to the documentation of this file.
1 #ifndef _angle_correction_H_
+
2 #define _angle_correction_H_
+
3 
+
4 #include "transform.h"
+
5 
+
6 // Add a value to an angle input (in radians). The output
+
7 // value is wrapped to a range between [0, 2*pi[. This transform
+
8 // is useful for correcting e.g. a heading or a wind direction reading.
+ +
10  public:
+
11  AngleCorrection(float offset, float min_angle = 0, String config_path = "");
+
12  virtual void set_input(float input, uint8_t inputChannel = 0) override;
+
13  virtual void get_configuration(JsonObject& doc) override;
+
14  virtual bool set_configuration(const JsonObject& config) override;
+
15  virtual String get_config_schema() override;
+
16 
+
17  private:
+
18  float offset;
+
19  float min_angle;
+
20 };
+
21 
+
22 #endif
+
+
+
+
AngleCorrection(float offset, float min_angle=0, String config_path="")
+
virtual void set_input(float input, uint8_t inputChannel=0) override
+
virtual bool set_configuration(const JsonObject &config) override
+
virtual String get_config_schema() override
+
virtual void get_configuration(JsonObject &doc) override
+
+
+ + + + diff --git a/docs/generated/docs/annotated.html b/docs/generated/docs/annotated.html new file mode 100644 index 000000000..d6c2f97d7 --- /dev/null +++ b/docs/generated/docs/annotated.html @@ -0,0 +1,191 @@ + + + + + + + +SensESP: Class List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 CADS1x15
 CADS1x15Value
 CADS1x15Voltage
 CAnalogInput
 CAnalogVoltage
 CAngleCorrection
 CBaseAnalogReader
 CBME280
 CBME280Value
 CBMP280
 CBMP280Value
 CChangeFilter
 CConfigurable
 CCurveInterpolator
 CSample
 CDallasTemperatureSensors
 CDebounce
 CDifference
 CDigitalInput
 CDigitalInputCounter
 CDigitalInputValue
 CDigitalOutput
 CEnable
 CENUVector
 CFreeMem
 CFrequency
 CGPGGASentenceParser
 CGPGLLSentenceParser
 CGPRMCSentenceParser
 CGPSInput
 CHTTPServer
 CHysteresisHysteresis function
 CINA219
 CINA219Value
 CIntegerSensor
 CIntegerThreshold
 CIntegrator
 CIPAddrDev
 CLambdaTransformConstruct a new transform based on a single function
 CLedBlinker
 CLinear
 CMAX31856Thermocouple
 CMedian
 CMovingAverage
 CNetworking
 CNMEAData
 CNMEAParser
 CNumericSensor
 CNumericThreshold
 CObservable
 CObservableValue
 COneWireTemperature
 COrientation9DOF
 CParamInfo
 CPosition
 CPSTI030SentenceParser
 CPSTI032SentenceParser
 CPSTISentenceParser
 CRead9DOF
 CSensESPApp
 CSensESPAppBuilder
 CSensor
 CSensorNXP_FXOS8700_FXAS21002
 CSentenceParser
 CSHT31
 CSHT31Value
 CSKDelta
 CSKEmitter
 CSKListener
 CSKOutput
 CSKOutputTime
 CSKValueListener
 CStringSensor
 CSymmetricTransform
 CSystemHz
 CThresholdTransform
 CTimeString
 CTransform
 CTransformBase
 CUltrasonicDistance
 CUptime
 CValueConsumer
 CValueProducer
 CVoltageDividerR1
 CVoltageDividerR2
 CVoltageMultiplier
 CWifiSignal
 CWSClient
+
+
+
+ + + + diff --git a/docs/generated/docs/annotated_dup.js b/docs/generated/docs/annotated_dup.js new file mode 100644 index 000000000..ba2021b9d --- /dev/null +++ b/docs/generated/docs/annotated_dup.js @@ -0,0 +1,90 @@ +var annotated_dup = +[ + [ "ADS1x15", "class_a_d_s1x15.html", "class_a_d_s1x15" ], + [ "ADS1x15Value", "class_a_d_s1x15_value.html", "class_a_d_s1x15_value" ], + [ "ADS1x15Voltage", "class_a_d_s1x15_voltage.html", "class_a_d_s1x15_voltage" ], + [ "AnalogInput", "class_analog_input.html", "class_analog_input" ], + [ "AnalogVoltage", "class_analog_voltage.html", "class_analog_voltage" ], + [ "AngleCorrection", "class_angle_correction.html", "class_angle_correction" ], + [ "BaseAnalogReader", "class_base_analog_reader.html", "class_base_analog_reader" ], + [ "BME280", "class_b_m_e280.html", "class_b_m_e280" ], + [ "BME280Value", "class_b_m_e280_value.html", "class_b_m_e280_value" ], + [ "BMP280", "class_b_m_p280.html", "class_b_m_p280" ], + [ "BMP280Value", "class_b_m_p280_value.html", "class_b_m_p280_value" ], + [ "ChangeFilter", "class_change_filter.html", "class_change_filter" ], + [ "Configurable", "class_configurable.html", "class_configurable" ], + [ "CurveInterpolator", "class_curve_interpolator.html", "class_curve_interpolator" ], + [ "DallasTemperatureSensors", "class_dallas_temperature_sensors.html", "class_dallas_temperature_sensors" ], + [ "Debounce", "class_debounce.html", "class_debounce" ], + [ "Difference", "class_difference.html", "class_difference" ], + [ "DigitalInput", "class_digital_input.html", "class_digital_input" ], + [ "DigitalInputCounter", "class_digital_input_counter.html", "class_digital_input_counter" ], + [ "DigitalInputValue", "class_digital_input_value.html", "class_digital_input_value" ], + [ "DigitalOutput", "class_digital_output.html", "class_digital_output" ], + [ "Enable", "class_enable.html", "class_enable" ], + [ "ENUVector", "struct_e_n_u_vector.html", "struct_e_n_u_vector" ], + [ "FreeMem", "class_free_mem.html", "class_free_mem" ], + [ "Frequency", "class_frequency.html", "class_frequency" ], + [ "GPGGASentenceParser", "class_g_p_g_g_a_sentence_parser.html", "class_g_p_g_g_a_sentence_parser" ], + [ "GPGLLSentenceParser", "class_g_p_g_l_l_sentence_parser.html", "class_g_p_g_l_l_sentence_parser" ], + [ "GPRMCSentenceParser", "class_g_p_r_m_c_sentence_parser.html", "class_g_p_r_m_c_sentence_parser" ], + [ "GPSInput", "class_g_p_s_input.html", "class_g_p_s_input" ], + [ "HTTPServer", "class_h_t_t_p_server.html", "class_h_t_t_p_server" ], + [ "Hysteresis", "class_hysteresis.html", "class_hysteresis" ], + [ "INA219", "class_i_n_a219.html", "class_i_n_a219" ], + [ "INA219Value", "class_i_n_a219_value.html", "class_i_n_a219_value" ], + [ "IntegerSensor", "class_integer_sensor.html", "class_integer_sensor" ], + [ "IntegerThreshold", "class_integer_threshold.html", "class_integer_threshold" ], + [ "Integrator", "class_integrator.html", "class_integrator" ], + [ "IPAddrDev", "class_i_p_addr_dev.html", "class_i_p_addr_dev" ], + [ "LambdaTransform", "class_lambda_transform.html", "class_lambda_transform" ], + [ "LedBlinker", "class_led_blinker.html", "class_led_blinker" ], + [ "Linear", "class_linear.html", "class_linear" ], + [ "MAX31856Thermocouple", "class_m_a_x31856_thermocouple.html", "class_m_a_x31856_thermocouple" ], + [ "Median", "class_median.html", "class_median" ], + [ "MovingAverage", "class_moving_average.html", "class_moving_average" ], + [ "Networking", "class_networking.html", "class_networking" ], + [ "NMEAData", "struct_n_m_e_a_data.html", "struct_n_m_e_a_data" ], + [ "NMEAParser", "class_n_m_e_a_parser.html", "class_n_m_e_a_parser" ], + [ "NumericSensor", "class_numeric_sensor.html", "class_numeric_sensor" ], + [ "NumericThreshold", "class_numeric_threshold.html", "class_numeric_threshold" ], + [ "Observable", "class_observable.html", "class_observable" ], + [ "ObservableValue", "class_observable_value.html", "class_observable_value" ], + [ "OneWireTemperature", "class_one_wire_temperature.html", "class_one_wire_temperature" ], + [ "Orientation9DOF", "class_orientation9_d_o_f.html", "class_orientation9_d_o_f" ], + [ "ParamInfo", "struct_param_info.html", "struct_param_info" ], + [ "Position", "struct_position.html", "struct_position" ], + [ "PSTI030SentenceParser", "class_p_s_t_i030_sentence_parser.html", "class_p_s_t_i030_sentence_parser" ], + [ "PSTI032SentenceParser", "class_p_s_t_i032_sentence_parser.html", "class_p_s_t_i032_sentence_parser" ], + [ "PSTISentenceParser", "class_p_s_t_i_sentence_parser.html", "class_p_s_t_i_sentence_parser" ], + [ "Read9DOF", "class_read9_d_o_f.html", "class_read9_d_o_f" ], + [ "SensESPApp", "class_sens_e_s_p_app.html", "class_sens_e_s_p_app" ], + [ "SensESPAppBuilder", "class_sens_e_s_p_app_builder.html", "class_sens_e_s_p_app_builder" ], + [ "Sensor", "class_sensor.html", "class_sensor" ], + [ "SensorNXP_FXOS8700_FXAS21002", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002" ], + [ "SentenceParser", "class_sentence_parser.html", "class_sentence_parser" ], + [ "SHT31", "class_s_h_t31.html", "class_s_h_t31" ], + [ "SHT31Value", "class_s_h_t31_value.html", "class_s_h_t31_value" ], + [ "SKDelta", "class_s_k_delta.html", "class_s_k_delta" ], + [ "SKEmitter", "class_s_k_emitter.html", "class_s_k_emitter" ], + [ "SKListener", "class_s_k_listener.html", "class_s_k_listener" ], + [ "SKOutput", "class_s_k_output.html", "class_s_k_output" ], + [ "SKOutputTime", "class_s_k_output_time.html", "class_s_k_output_time" ], + [ "SKValueListener", "class_s_k_value_listener.html", "class_s_k_value_listener" ], + [ "StringSensor", "class_string_sensor.html", "class_string_sensor" ], + [ "SymmetricTransform", "class_symmetric_transform.html", "class_symmetric_transform" ], + [ "SystemHz", "class_system_hz.html", "class_system_hz" ], + [ "ThresholdTransform", "class_threshold_transform.html", "class_threshold_transform" ], + [ "TimeString", "class_time_string.html", "class_time_string" ], + [ "Transform", "class_transform.html", "class_transform" ], + [ "TransformBase", "class_transform_base.html", "class_transform_base" ], + [ "UltrasonicDistance", "class_ultrasonic_distance.html", "class_ultrasonic_distance" ], + [ "Uptime", "class_uptime.html", "class_uptime" ], + [ "ValueConsumer", "class_value_consumer.html", "class_value_consumer" ], + [ "ValueProducer", "class_value_producer.html", "class_value_producer" ], + [ "VoltageDividerR1", "class_voltage_divider_r1.html", "class_voltage_divider_r1" ], + [ "VoltageDividerR2", "class_voltage_divider_r2.html", "class_voltage_divider_r2" ], + [ "VoltageMultiplier", "class_voltage_multiplier.html", "class_voltage_multiplier" ], + [ "WifiSignal", "class_wifi_signal.html", "class_wifi_signal" ], + [ "WSClient", "class_w_s_client.html", "class_w_s_client" ] +]; \ No newline at end of file diff --git a/docs/bc_s.png b/docs/generated/docs/bc_s.png similarity index 100% rename from docs/bc_s.png rename to docs/generated/docs/bc_s.png diff --git a/docs/bdwn.png b/docs/generated/docs/bdwn.png similarity index 100% rename from docs/bdwn.png rename to docs/generated/docs/bdwn.png diff --git a/docs/generated/docs/bme280_8cpp.html b/docs/generated/docs/bme280_8cpp.html new file mode 100644 index 000000000..11764237a --- /dev/null +++ b/docs/generated/docs/bme280_8cpp.html @@ -0,0 +1,134 @@ + + + + + + + +SensESP: src/sensors/bme280.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
bme280.cpp File Reference
+
+
+
#include "bme280.h"
+#include "sensesp.h"
+#include <RemoteDebug.h>
+
+Include dependency graph for bme280.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/generated/docs/bme280_8cpp__incl.map b/docs/generated/docs/bme280_8cpp__incl.map new file mode 100644 index 000000000..58ce5bee4 --- /dev/null +++ b/docs/generated/docs/bme280_8cpp__incl.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/bme280_8cpp__incl.md5 b/docs/generated/docs/bme280_8cpp__incl.md5 new file mode 100644 index 000000000..09bafbb03 --- /dev/null +++ b/docs/generated/docs/bme280_8cpp__incl.md5 @@ -0,0 +1 @@ +29fb6798415cf506662913edae71c28e \ No newline at end of file diff --git a/docs/generated/docs/bme280_8cpp__incl.png b/docs/generated/docs/bme280_8cpp__incl.png new file mode 100644 index 000000000..7541463b5 Binary files /dev/null and b/docs/generated/docs/bme280_8cpp__incl.png differ diff --git a/docs/generated/docs/bme280_8cpp_source.html b/docs/generated/docs/bme280_8cpp_source.html new file mode 100644 index 000000000..95c41b499 --- /dev/null +++ b/docs/generated/docs/bme280_8cpp_source.html @@ -0,0 +1,201 @@ + + + + + + + +SensESP: src/sensors/bme280.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
bme280.cpp
+
+
+Go to the documentation of this file.
1 #include "bme280.h"
+
2 
+
3 #include "sensesp.h"
+
4 //#include "i2c_tools.h"
+
5 #include <RemoteDebug.h>
+
6 
+
7 // BME280 represents an ADAfruit (or compatible) BME280 temperature / pressure /
+
8 // humidity sensor.
+
9 BME280::BME280(uint8_t addr, String config_path)
+
10  : Sensor(config_path), addr{addr} {
+
11  load_configuration();
+
12  adafruit_bme280 = new Adafruit_BME280();
+
13  check_status();
+
14 }
+
15 
+
16 void BME280::check_status() {
+
17  bool started = adafruit_bme280->begin(addr);
+
18  if (!started) {
+
19  debugI(
+
20  "Could not find a valid BME280 sensor. Check wiring, address, and "
+
21  "sensor ID.");
+
22  debugI("SensorID is: 0x%d", adafruit_bme280->sensorID());
+
23  debugI("0xFF: is a BMP180 or BMP085, or a bad address");
+
24  debugI("0x56-0x58 is a BMP280");
+
25  debugI("0x60 is a BME280");
+
26  debugI("0x61 is a BME680");
+
27  }
+
28 }
+
29 
+
30 // BME280Value reads and outputs the specified type of value of a BME280 sensor
+ +
32  uint read_delay, String config_path)
+
33  : NumericSensor(config_path),
+
34  bme280{bme280},
+
35  val_type{val_type},
+
36  read_delay{read_delay} {
+
37  load_configuration();
+
38 }
+
39 
+
40 // BME280 outputs temp in Celsius. Need to convert to Kelvin before sending to
+
41 // Signal K. Pressure is output in Pascals, Humidity is output in relative
+
42 // humidity (0 - 100%)
+ +
44  app.onRepeat(read_delay, [this]() {
+
45  if (val_type == temperature) {
+
46  output = bme280->adafruit_bme280->readTemperature() +
+
47  273.15; // Kelvin is Celsius + 273.15
+
48  } else if (val_type == pressure) {
+
49  output = bme280->adafruit_bme280->readPressure();
+
50  } else if (val_type == humidity) {
+
51  output = bme280->adafruit_bme280->readHumidity();
+
52  } else
+
53  output = 0.0;
+
54 
+
55  notify();
+
56  });
+
57 }
+
58 
+
59 void BME280Value::get_configuration(JsonObject& root) {
+
60  root["read_delay"] = read_delay;
+
61  root["value"] = output;
+
62 };
+
63 
+
64 static const char SCHEMA[] PROGMEM = R"###({
+
65  "type": "object",
+
66  "properties": {
+
67  "read_delay": { "title": "Read delay", "type": "number", "description": "The time, in milliseconds, between each read of the input" },
+
68  "value": { "title": "Last value", "type" : "number", "readOnly": true }
+
69  }
+
70  })###";
+
71 
+
72 String BME280Value::get_config_schema() { return FPSTR(SCHEMA); }
+
73 
+
74 bool BME280Value::set_configuration(const JsonObject& config) {
+
75  String expected[] = {"read_delay"};
+
76  for (auto str : expected) {
+
77  if (!config.containsKey(str)) {
+
78  return false;
+
79  }
+
80  }
+
81  read_delay = config["read_delay"];
+
82  return true;
+
83 }
+
+
+
@ temperature
Definition: bme280.h:32
+
void notify()
Definition: observable.cpp:3
+
float output
Definition: valueproducer.h:86
+
const char PAGE_index[] PROGMEM
Definition: index.h:2
+
@ pressure
Definition: bme280.h:32
+
BME280ValType
Definition: bme280.h:32
+
BME280(uint8_t addr=0x77, String config_path="")
Definition: bme280.cpp:9
+
Adafruit_BME280 * adafruit_bme280
Definition: bme280.h:23
+
Definition: sensor.h:29
+
BME280 * bme280
Definition: bme280.h:40
+
void enable() override final
Definition: bme280.cpp:43
+
+
Definition: bme280.h:20
+
BME280Value(BME280 *bme280, BME280ValType val_type, uint read_delay=500, String config_path="")
Definition: bme280.cpp:31
+
ReactESP app
+
+
@ humidity
Definition: bme280.h:32
+
Definition: sensor.h:15
+ + + + diff --git a/docs/generated/docs/bme280_8h.html b/docs/generated/docs/bme280_8h.html new file mode 100644 index 000000000..87e26b273 --- /dev/null +++ b/docs/generated/docs/bme280_8h.html @@ -0,0 +1,206 @@ + + + + + + + +SensESP: src/sensors/bme280.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
bme280.h File Reference
+
+
+
#include <Adafruit_BME280.h>
+#include <Wire.h>
+#include "sensor.h"
+
+Include dependency graph for bme280.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Classes

class  BME280
 
class  BME280Value
 
+ + + +

+Typedefs

typedef BME280Value BME280value
 
+ + + +

+Enumerations

enum  BME280ValType { temperature, +pressure, +humidity + }
 
+

Typedef Documentation

+ +

◆ BME280value

+ +
+
+ + + + +
typedef BME280Value BME280value
+
+ +

Definition at line 52 of file bme280.h.

+ +
+
+

Enumeration Type Documentation

+ +

◆ BME280ValType

+ +
+
+ + + + +
enum BME280ValType
+
+ + + + +
Enumerator
temperature 
pressure 
humidity 
+ +

Definition at line 32 of file bme280.h.

+ +
+
+
+
+ + + + diff --git a/docs/generated/docs/bme280_8h.js b/docs/generated/docs/bme280_8h.js new file mode 100644 index 000000000..c8df476a2 --- /dev/null +++ b/docs/generated/docs/bme280_8h.js @@ -0,0 +1,11 @@ +var bme280_8h = +[ + [ "BME280", "class_b_m_e280.html", "class_b_m_e280" ], + [ "BME280Value", "class_b_m_e280_value.html", "class_b_m_e280_value" ], + [ "BME280value", "bme280_8h.html#af37089b3d8f44826d66821c4a89498bc", null ], + [ "BME280ValType", "bme280_8h.html#acce372cdae7772cfadaa815858c0956d", [ + [ "temperature", "bme280_8h.html#acce372cdae7772cfadaa815858c0956da9922a43d37bee3212593f77ce4ec82f3", null ], + [ "pressure", "bme280_8h.html#acce372cdae7772cfadaa815858c0956da8e7f8389b914e827058d694b31468b3a", null ], + [ "humidity", "bme280_8h.html#acce372cdae7772cfadaa815858c0956daf78a0094726cca324b69464b475ed069", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/generated/docs/bme280_8h__dep__incl.map b/docs/generated/docs/bme280_8h__dep__incl.map new file mode 100644 index 000000000..d7c2b43e8 --- /dev/null +++ b/docs/generated/docs/bme280_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/bme280_8h__dep__incl.md5 b/docs/generated/docs/bme280_8h__dep__incl.md5 new file mode 100644 index 000000000..135b14301 --- /dev/null +++ b/docs/generated/docs/bme280_8h__dep__incl.md5 @@ -0,0 +1 @@ +f7cb177e2e5343e9e6b1c9cda966f054 \ No newline at end of file diff --git a/docs/generated/docs/bme280_8h__dep__incl.png b/docs/generated/docs/bme280_8h__dep__incl.png new file mode 100644 index 000000000..fab9907a7 Binary files /dev/null and b/docs/generated/docs/bme280_8h__dep__incl.png differ diff --git a/docs/generated/docs/bme280_8h__incl.map b/docs/generated/docs/bme280_8h__incl.map new file mode 100644 index 000000000..4277fb6e8 --- /dev/null +++ b/docs/generated/docs/bme280_8h__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/bme280_8h__incl.md5 b/docs/generated/docs/bme280_8h__incl.md5 new file mode 100644 index 000000000..c1ff69f20 --- /dev/null +++ b/docs/generated/docs/bme280_8h__incl.md5 @@ -0,0 +1 @@ +063dfa8e402759ed70c2e96c773612b5 \ No newline at end of file diff --git a/docs/generated/docs/bme280_8h__incl.png b/docs/generated/docs/bme280_8h__incl.png new file mode 100644 index 000000000..e12ffcbe5 Binary files /dev/null and b/docs/generated/docs/bme280_8h__incl.png differ diff --git a/docs/generated/docs/bme280_8h_source.html b/docs/generated/docs/bme280_8h_source.html new file mode 100644 index 000000000..a7020fc92 --- /dev/null +++ b/docs/generated/docs/bme280_8h_source.html @@ -0,0 +1,170 @@ + + + + + + + +SensESP: src/sensors/bme280.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
bme280.h
+
+
+Go to the documentation of this file.
1 #ifndef _bme280_H_
+
2 #define _bme280_H_
+
3 
+
4 #include <Adafruit_BME280.h>
+
5 #include <Wire.h>
+
6 
+
7 #include "sensor.h"
+
8 
+
9 // The BME280 classes are based on the ADAfruit_BME280 library.
+
10 
+
11 // BME280 represents an ADAfruit (or compatible) BME280 temperature / pressure /
+
12 // humidity sensor. The constructore creates a pointer to the instance, and
+
13 // starts up the sensor. The pointer is passed to BME280value, which retrieves
+
14 // the specified value. If you want to change any of the values with the
+
15 // Adafruit_BME280::setSampling() method, it's public, so you can call that
+
16 // after you instantiate the BME280 and before you start using it, with:
+
17 // sensor_object->adafruit_bme280->setSampling(); See the Adafruit
+
18 // library for details.
+
19 // https://github.com/adafruit/Adafruit_BME280_Library/blob/master/Adafruit_BME280.h
+
20 class BME280 : public Sensor {
+
21  public:
+
22  BME280(uint8_t addr = 0x77, String config_path = "");
+
23  Adafruit_BME280* adafruit_bme280;
+
24 
+
25  private:
+
26  uint8_t addr;
+
27  void check_status();
+
28 };
+
29 
+
30 // Pass one of these in the constructor to BME280value() to tell which type of
+
31 // value you want to output
+ +
33 
+
34 // BME280Value reads and outputs the specified value of a BME280 sensor.
+
35 class BME280Value : public NumericSensor {
+
36  public:
+
37  BME280Value(BME280* bme280, BME280ValType val_type, uint read_delay = 500,
+
38  String config_path = "");
+
39  void enable() override final;
+ +
41 
+
42  private:
+
43  BME280ValType val_type;
+
44  uint read_delay;
+
45  virtual void get_configuration(JsonObject& doc) override;
+
46  virtual bool set_configuration(const JsonObject& config) override;
+
47  virtual String get_config_schema() override;
+
48 };
+
49 
+
50 // FIXME: Uncomment the following once the PIO Xtensa toolchain is updated
+
51 // [[deprecated("Use BME280Value instead.")]]
+ +
53 
+
54 #endif
+
+
+
@ temperature
Definition: bme280.h:32
+
Definition: bme280.h:35
+
@ pressure
Definition: bme280.h:32
+
BME280ValType
Definition: bme280.h:32
+
+
BME280(uint8_t addr=0x77, String config_path="")
Definition: bme280.cpp:9
+
Adafruit_BME280 * adafruit_bme280
Definition: bme280.h:23
+
BME280Value BME280value
Definition: bme280.h:52
+
Definition: sensor.h:29
+
BME280 * bme280
Definition: bme280.h:40
+
const String config_path
Definition: configurable.h:31
+
void enable() override final
Definition: bme280.cpp:43
+
Definition: bme280.h:20
+
BME280Value(BME280 *bme280, BME280ValType val_type, uint read_delay=500, String config_path="")
Definition: bme280.cpp:31
+
@ humidity
Definition: bme280.h:32
+
Definition: sensor.h:15
+ + + + diff --git a/docs/generated/docs/bmp280_8cpp.html b/docs/generated/docs/bmp280_8cpp.html new file mode 100644 index 000000000..9c3341e23 --- /dev/null +++ b/docs/generated/docs/bmp280_8cpp.html @@ -0,0 +1,134 @@ + + + + + + + +SensESP: src/sensors/bmp280.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
bmp280.cpp File Reference
+
+
+
#include "bmp280.h"
+#include <RemoteDebug.h>
+#include "sensesp.h"
+
+Include dependency graph for bmp280.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/generated/docs/bmp280_8cpp__incl.map b/docs/generated/docs/bmp280_8cpp__incl.map new file mode 100644 index 000000000..fcaa4c46c --- /dev/null +++ b/docs/generated/docs/bmp280_8cpp__incl.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/bmp280_8cpp__incl.md5 b/docs/generated/docs/bmp280_8cpp__incl.md5 new file mode 100644 index 000000000..cebd444a3 --- /dev/null +++ b/docs/generated/docs/bmp280_8cpp__incl.md5 @@ -0,0 +1 @@ +636f8a4ec6486f8895ebaee8a27d3662 \ No newline at end of file diff --git a/docs/generated/docs/bmp280_8cpp__incl.png b/docs/generated/docs/bmp280_8cpp__incl.png new file mode 100644 index 000000000..1285f457d Binary files /dev/null and b/docs/generated/docs/bmp280_8cpp__incl.png differ diff --git a/docs/generated/docs/bmp280_8cpp_source.html b/docs/generated/docs/bmp280_8cpp_source.html new file mode 100644 index 000000000..15f924d4a --- /dev/null +++ b/docs/generated/docs/bmp280_8cpp_source.html @@ -0,0 +1,185 @@ + + + + + + + +SensESP: src/sensors/bmp280.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
bmp280.cpp
+
+
+Go to the documentation of this file.
1 #include "bmp280.h"
+
2 
+
3 #include <RemoteDebug.h>
+
4 
+
5 #include "sensesp.h"
+
6 
+
7 // BMP280 represents an ADAfruit (or compatible) BMP280 temperature & pressure
+
8 // sensor.
+
9 BMP280::BMP280(uint8_t addr, String config_path)
+
10  : Sensor(config_path), addr{addr} {
+
11  load_configuration();
+
12  adafruit_bmp280 = new Adafruit_BMP280();
+
13  if (!adafruit_bmp280->begin(addr)) {
+
14  debugE("Could not find a valid BMP280 sensor: check address and wiring");
+
15  }
+
16 }
+
17 
+
18 // BMP280Value reads and outputs the specified type of value of a BMP280 sensor
+ +
20  uint read_delay, String config_path)
+
21  : NumericSensor(config_path),
+
22  bmp280{bmp280},
+
23  val_type{val_type},
+
24  read_delay{read_delay} {
+
25  load_configuration();
+
26 }
+
27 
+
28 // BMP280 outputs temp in Celsius. Need to convert to Kelvin before sending to
+
29 // Signal K. Pressure is output in Pascals.
+ +
31  app.onRepeat(read_delay, [this]() {
+
32  if (val_type == temperature) {
+
33  output = bmp280->adafruit_bmp280->readTemperature() +
+
34  273.15; // Kelvin is Celsius + 273.15
+
35  } else if (val_type == pressure) {
+
36  output = bmp280->adafruit_bmp280->readPressure();
+
37  } else
+
38  output = 0.0;
+
39 
+
40  notify();
+
41  });
+
42 }
+
43 
+
44 void BMP280Value::get_configuration(JsonObject& root) {
+
45  root["read_delay"] = read_delay;
+
46  root["value"] = output;
+
47 };
+
48 
+
49 static const char SCHEMA[] PROGMEM = R"###({
+
50  "type": "object",
+
51  "properties": {
+
52  "read_delay": { "title": "Read delay", "type": "number", "description": "The time, in milliseconds, between each read of the input" },
+
53  "value": { "title": "Last value", "type" : "number", "readOnly": true }
+
54  }
+
55  })###";
+
56 
+
57 String BMP280Value::get_config_schema() { return FPSTR(SCHEMA); }
+
58 
+
59 bool BMP280Value::set_configuration(const JsonObject& config) {
+
60  String expected[] = {"read_delay"};
+
61  for (auto str : expected) {
+
62  if (!config.containsKey(str)) {
+
63  return false;
+
64  }
+
65  }
+
66  read_delay = config["read_delay"];
+
67  return true;
+
68 }
+
+
+
@ temperature
Definition: bme280.h:32
+
void notify()
Definition: observable.cpp:3
+
BMP280Value(BMP280 *bmp280, BMP280ValType val_type, uint read_delay=500, String config_path="")
Definition: bmp280.cpp:19
+
float output
Definition: valueproducer.h:86
+
const char PAGE_index[] PROGMEM
Definition: index.h:2
+
Adafruit_BMP280 * adafruit_bmp280
Definition: bmp280.h:23
+
@ pressure
Definition: bme280.h:32
+
+
BMP280ValType
Definition: bmp280.h:31
+
Definition: sensor.h:29
+
void enable() override final
Definition: bmp280.cpp:30
+
+
Definition: bmp280.h:20
+
ReactESP app
+
BMP280(uint8_t addr=0x77, String config_path="")
Definition: bmp280.cpp:9
+
BMP280 * bmp280
Definition: bmp280.h:39
+
Definition: sensor.h:15
+ + + + diff --git a/docs/generated/docs/bmp280_8h.html b/docs/generated/docs/bmp280_8h.html new file mode 100644 index 000000000..ed3a04be5 --- /dev/null +++ b/docs/generated/docs/bmp280_8h.html @@ -0,0 +1,204 @@ + + + + + + + +SensESP: src/sensors/bmp280.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
bmp280.h File Reference
+
+
+
#include <Adafruit_BMP280.h>
+#include <Wire.h>
+#include "sensor.h"
+
+Include dependency graph for bmp280.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Classes

class  BMP280
 
class  BMP280Value
 
+ + + +

+Typedefs

typedef BMP280Value BMP280value
 
+ + + +

+Enumerations

enum  BMP280ValType { temperature, +pressure + }
 
+

Typedef Documentation

+ +

◆ BMP280value

+ +
+
+ + + + +
typedef BMP280Value BMP280value
+
+ +

Definition at line 51 of file bmp280.h.

+ +
+
+

Enumeration Type Documentation

+ +

◆ BMP280ValType

+ +
+
+ + + + +
enum BMP280ValType
+
+ + + +
Enumerator
temperature 
pressure 
+ +

Definition at line 31 of file bmp280.h.

+ +
+
+
+
+ + + + diff --git a/docs/generated/docs/bmp280_8h.js b/docs/generated/docs/bmp280_8h.js new file mode 100644 index 000000000..4482b6d80 --- /dev/null +++ b/docs/generated/docs/bmp280_8h.js @@ -0,0 +1,10 @@ +var bmp280_8h = +[ + [ "BMP280", "class_b_m_p280.html", "class_b_m_p280" ], + [ "BMP280Value", "class_b_m_p280_value.html", "class_b_m_p280_value" ], + [ "BMP280value", "bmp280_8h.html#adc2b0c1f8c770323d86e72b706958989", null ], + [ "BMP280ValType", "bmp280_8h.html#ab9dfceb0d5985ce5ae28521c2ddb5bf4", [ + [ "temperature", "bmp280_8h.html#ab9dfceb0d5985ce5ae28521c2ddb5bf4a9922a43d37bee3212593f77ce4ec82f3", null ], + [ "pressure", "bmp280_8h.html#ab9dfceb0d5985ce5ae28521c2ddb5bf4a8e7f8389b914e827058d694b31468b3a", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/generated/docs/bmp280_8h__dep__incl.map b/docs/generated/docs/bmp280_8h__dep__incl.map new file mode 100644 index 000000000..1abf34969 --- /dev/null +++ b/docs/generated/docs/bmp280_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/bmp280_8h__dep__incl.md5 b/docs/generated/docs/bmp280_8h__dep__incl.md5 new file mode 100644 index 000000000..26a75f456 --- /dev/null +++ b/docs/generated/docs/bmp280_8h__dep__incl.md5 @@ -0,0 +1 @@ +82f597a8768f7410bfd4c005adc086f3 \ No newline at end of file diff --git a/docs/generated/docs/bmp280_8h__dep__incl.png b/docs/generated/docs/bmp280_8h__dep__incl.png new file mode 100644 index 000000000..5021dba63 Binary files /dev/null and b/docs/generated/docs/bmp280_8h__dep__incl.png differ diff --git a/docs/generated/docs/bmp280_8h__incl.map b/docs/generated/docs/bmp280_8h__incl.map new file mode 100644 index 000000000..9c0e2b515 --- /dev/null +++ b/docs/generated/docs/bmp280_8h__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/bmp280_8h__incl.md5 b/docs/generated/docs/bmp280_8h__incl.md5 new file mode 100644 index 000000000..ea3915c5e --- /dev/null +++ b/docs/generated/docs/bmp280_8h__incl.md5 @@ -0,0 +1 @@ +60f7ffa48df2e78de2e35dab88445d1d \ No newline at end of file diff --git a/docs/generated/docs/bmp280_8h__incl.png b/docs/generated/docs/bmp280_8h__incl.png new file mode 100644 index 000000000..5131d6240 Binary files /dev/null and b/docs/generated/docs/bmp280_8h__incl.png differ diff --git a/docs/generated/docs/bmp280_8h_source.html b/docs/generated/docs/bmp280_8h_source.html new file mode 100644 index 000000000..da8a90d56 --- /dev/null +++ b/docs/generated/docs/bmp280_8h_source.html @@ -0,0 +1,168 @@ + + + + + + + +SensESP: src/sensors/bmp280.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
bmp280.h
+
+
+Go to the documentation of this file.
1 #ifndef _bmp280_H_
+
2 #define _bmp280_H_
+
3 
+
4 #include <Adafruit_BMP280.h>
+
5 #include <Wire.h>
+
6 
+
7 #include "sensor.h"
+
8 
+
9 // The BMP280 classes are based on the ADAfruit_BMP280 library.
+
10 
+
11 // BMP280 represents an ADAfruit (or compatible) BMP280 temperature & pressure
+
12 // sensor. The constructore creates a pointer to the instance, and starts up the
+
13 // sensor. The pointer is passed to BMP280value, which retrieves the specified
+
14 // value. If you want to change any of the values with the
+
15 // Adafruit_BMP280::setSampling() method, it's public, so you can call that
+
16 // after you instantiate the BMP280 and before you start using it, with:
+
17 // yourInstanceVariable->bmp280->setSampling(); See the Adafruit library for
+
18 // details.
+
19 // https://github.com/adafruit/Adafruit_BMP280_Library/blob/master/Adafruit_BMP280.h
+
20 class BMP280 : public Sensor {
+
21  public:
+
22  BMP280(uint8_t addr = 0x77, String config_path = "");
+
23  Adafruit_BMP280* adafruit_bmp280;
+
24 
+
25  private:
+
26  uint8_t addr;
+
27 };
+
28 
+
29 // Pass one of these in the constructor to BMP280value() to tell which type of
+
30 // value you want to output
+ +
32 
+
33 // BMP280Value reads and outputs the specified value of a BMP280 sensor.
+
34 class BMP280Value : public NumericSensor {
+
35  public:
+
36  BMP280Value(BMP280* bmp280, BMP280ValType val_type, uint read_delay = 500,
+
37  String config_path = "");
+
38  void enable() override final;
+ +
40 
+
41  private:
+
42  BMP280ValType val_type;
+
43  uint read_delay;
+
44  virtual void get_configuration(JsonObject& doc) override;
+
45  virtual bool set_configuration(const JsonObject& config) override;
+
46  virtual String get_config_schema() override;
+
47 };
+
48 
+
49 // FIXME: Uncomment the following once the PIO Xtensa toolchain is updated
+
50 // [[deprecated("Use BMP280Value instead.")]]
+ +
52 
+
53 #endif
+
+
+
BMP280Value BMP280value
Definition: bmp280.h:51
+
BMP280Value(BMP280 *bmp280, BMP280ValType val_type, uint read_delay=500, String config_path="")
Definition: bmp280.cpp:19
+
Adafruit_BMP280 * adafruit_bmp280
Definition: bmp280.h:23
+
Definition: bmp280.h:34
+
BMP280ValType
Definition: bmp280.h:31
+
+
@ pressure
Definition: bmp280.h:31
+
@ temperature
Definition: bmp280.h:31
+
Definition: sensor.h:29
+
void enable() override final
Definition: bmp280.cpp:30
+
const String config_path
Definition: configurable.h:31
+
Definition: bmp280.h:20
+
BMP280(uint8_t addr=0x77, String config_path="")
Definition: bmp280.cpp:9
+
BMP280 * bmp280
Definition: bmp280.h:39
+
Definition: sensor.h:15
+ + + + diff --git a/docs/generated/docs/change__filter_8cpp.html b/docs/generated/docs/change__filter_8cpp.html new file mode 100644 index 000000000..878dda670 --- /dev/null +++ b/docs/generated/docs/change__filter_8cpp.html @@ -0,0 +1,130 @@ + + + + + + + +SensESP: src/transforms/change_filter.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
change_filter.cpp File Reference
+
+
+
#include "change_filter.h"
+
+Include dependency graph for change_filter.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/generated/docs/change__filter_8cpp__incl.map b/docs/generated/docs/change__filter_8cpp__incl.map new file mode 100644 index 000000000..cc581bb88 --- /dev/null +++ b/docs/generated/docs/change__filter_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/change__filter_8cpp__incl.md5 b/docs/generated/docs/change__filter_8cpp__incl.md5 new file mode 100644 index 000000000..184c2a96d --- /dev/null +++ b/docs/generated/docs/change__filter_8cpp__incl.md5 @@ -0,0 +1 @@ +8ff8d1afe888b4ce225065ab2697f7b3 \ No newline at end of file diff --git a/docs/generated/docs/change__filter_8cpp__incl.png b/docs/generated/docs/change__filter_8cpp__incl.png new file mode 100644 index 000000000..cb2291fed Binary files /dev/null and b/docs/generated/docs/change__filter_8cpp__incl.png differ diff --git a/docs/generated/docs/change__filter_8cpp_source.html b/docs/generated/docs/change__filter_8cpp_source.html new file mode 100644 index 000000000..9b7a63303 --- /dev/null +++ b/docs/generated/docs/change__filter_8cpp_source.html @@ -0,0 +1,173 @@ + + + + + + + +SensESP: src/transforms/change_filter.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
change_filter.cpp
+
+
+Go to the documentation of this file.
1 #include "change_filter.h"
+
2 
+
3 static float absf(float val) {
+
4  if (val < 0) {
+
5  return -val;
+
6  } else {
+
7  return val;
+
8  }
+
9 }
+
10 
+
11 ChangeFilter::ChangeFilter(float min_delta, float max_delta, int max_skips,
+
12  String config_path)
+
13  : NumericTransform(config_path),
+
14  min_delta{min_delta},
+
15  max_delta{max_delta},
+
16  max_skips{max_skips} {
+
17  load_configuration();
+
18  skips = max_skips + 1;
+
19 }
+
20 
+
21 void ChangeFilter::set_input(float new_value, uint8_t input_channel) {
+
22  float delta = absf(new_value - output);
+
23  if ((delta >= min_delta && delta <= max_delta) || skips > max_skips) {
+
24  output = new_value;
+
25  skips = 0;
+
26  notify();
+
27  } else {
+
28  skips++;
+
29  }
+
30 }
+
31 
+
32 void ChangeFilter::get_configuration(JsonObject& root) {
+
33  root["min_delta"] = min_delta;
+
34  root["max_delta"] = max_delta;
+
35  root["max_skips"] = max_skips;
+
36 }
+
37 
+
38 static const char SCHEMA[] PROGMEM = R"({
+
39  "type": "object",
+
40  "properties": {
+
41  "min_delta": { "title": "Minimum delta", "description": "Minimum difference in change of value before forwarding", "type": "number" },
+
42  "max_delta": { "title": "Maximum delta", "description": "Maximum difference in change of value to allow forwarding", "type": "number" },
+
43  "max_skips": { "title": "Max skip count", "description": "Maximum number of consecutive filtered values before one is allowed through", "type": "number" }
+
44  }
+
45  })";
+
46 
+
47 String ChangeFilter::get_config_schema() { return FPSTR(SCHEMA); }
+
48 
+
49 bool ChangeFilter::set_configuration(const JsonObject& config) {
+
50  String expected[] = {"min_delta", "max_delta", "max_skips"};
+
51  for (auto str : expected) {
+
52  if (!config.containsKey(str)) {
+
53  return false;
+
54  }
+
55  }
+
56  min_delta = config["min_delta"];
+
57  max_delta = config["max_delta"];
+
58  max_skips = config["max_skips"];
+
59  skips = max_skips + 1;
+
60  return true;
+
61 }
+
+
+
+
const char PAGE_index[] PROGMEM
Definition: index.h:2
+
int max_skips
Definition: change_filter.h:29
+
virtual bool set_configuration(const JsonObject &config) override
+
float max_delta
Definition: change_filter.h:28
+
int skips
Definition: change_filter.h:30
+
virtual void set_input(float new_value, uint8_t input_channel=0) override
+
virtual String get_config_schema() override
+
ChangeFilter(float min_delta=0.0, float max_delta=9999.0, int max_skips=99, String config_path="")
+
float min_delta
Definition: change_filter.h:27
+
virtual void get_configuration(JsonObject &doc) override
+
+ + + + diff --git a/docs/generated/docs/change__filter_8h.html b/docs/generated/docs/change__filter_8h.html new file mode 100644 index 000000000..2cfce9f5a --- /dev/null +++ b/docs/generated/docs/change__filter_8h.html @@ -0,0 +1,146 @@ + + + + + + + +SensESP: src/transforms/change_filter.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
change_filter.h File Reference
+
+
+
+Include dependency graph for change_filter.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  ChangeFilter
 
+
+
+ + + + diff --git a/docs/change__filter_8h__dep__incl.map b/docs/generated/docs/change__filter_8h__dep__incl.map similarity index 100% rename from docs/change__filter_8h__dep__incl.map rename to docs/generated/docs/change__filter_8h__dep__incl.map diff --git a/docs/generated/docs/change__filter_8h__dep__incl.md5 b/docs/generated/docs/change__filter_8h__dep__incl.md5 new file mode 100644 index 000000000..864ebb526 --- /dev/null +++ b/docs/generated/docs/change__filter_8h__dep__incl.md5 @@ -0,0 +1 @@ +a9abe3e7e598d5c56c14360206617f8e \ No newline at end of file diff --git a/docs/generated/docs/change__filter_8h__dep__incl.png b/docs/generated/docs/change__filter_8h__dep__incl.png new file mode 100644 index 000000000..095b95cea Binary files /dev/null and b/docs/generated/docs/change__filter_8h__dep__incl.png differ diff --git a/docs/generated/docs/change__filter_8h__incl.map b/docs/generated/docs/change__filter_8h__incl.map new file mode 100644 index 000000000..a7cd48d68 --- /dev/null +++ b/docs/generated/docs/change__filter_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/change__filter_8h__incl.md5 b/docs/generated/docs/change__filter_8h__incl.md5 new file mode 100644 index 000000000..5d7389735 --- /dev/null +++ b/docs/generated/docs/change__filter_8h__incl.md5 @@ -0,0 +1 @@ +7bf250377c62a5cd13aba49fce7bce0e \ No newline at end of file diff --git a/docs/generated/docs/change__filter_8h__incl.png b/docs/generated/docs/change__filter_8h__incl.png new file mode 100644 index 000000000..f71553c69 Binary files /dev/null and b/docs/generated/docs/change__filter_8h__incl.png differ diff --git a/docs/generated/docs/change__filter_8h_source.html b/docs/generated/docs/change__filter_8h_source.html new file mode 100644 index 000000000..28e0905b6 --- /dev/null +++ b/docs/generated/docs/change__filter_8h_source.html @@ -0,0 +1,135 @@ + + + + + + + +SensESP: src/transforms/change_filter.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
change_filter.h
+
+
+Go to the documentation of this file.
1 #ifndef change_filter_H
+
2 #define change_filter_H
+
3 
+
4 #include "transforms/transform.h"
+
5 
+ +
17  public:
+
18  ChangeFilter(float min_delta = 0.0, float max_delta = 9999.0,
+
19  int max_skips = 99, String config_path = "");
+
20 
+
21  virtual void set_input(float new_value, uint8_t input_channel = 0) override;
+
22  virtual void get_configuration(JsonObject& doc) override;
+
23  virtual bool set_configuration(const JsonObject& config) override;
+
24  virtual String get_config_schema() override;
+
25 
+
26  protected:
+
27  float min_delta;
+
28  float max_delta;
+
29  int max_skips;
+
30  int skips;
+
31 };
+
32 
+
33 #endif
+
+
+
+
int max_skips
Definition: change_filter.h:29
+
virtual bool set_configuration(const JsonObject &config) override
+
float max_delta
Definition: change_filter.h:28
+
int skips
Definition: change_filter.h:30
+
virtual void set_input(float new_value, uint8_t input_channel=0) override
+
virtual String get_config_schema() override
+
Definition: change_filter.h:16
+
ChangeFilter(float min_delta=0.0, float max_delta=9999.0, int max_skips=99, String config_path="")
+
float min_delta
Definition: change_filter.h:27
+
+
virtual void get_configuration(JsonObject &doc) override
+ + + + diff --git a/docs/generated/docs/class_a_d_s1x15-members.html b/docs/generated/docs/class_a_d_s1x15-members.html new file mode 100644 index 000000000..bc44ecead --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15-members.html @@ -0,0 +1,121 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ADS1x15< T_Ada_1x15 > Member List
+
+
+ +

This is the complete list of members for ADS1x15< T_Ada_1x15 >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
adsADS1x15< T_Ada_1x15 >
ADS1x15(uint8_t addr=0x48, adsGain_t gain=GAIN_TWOTHIRDS, String config_path="")ADS1x15< T_Ada_1x15 >
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
Enable(uint8_t priority=0)Enable
enable() override finalADS1x15< T_Ada_1x15 >inlinevirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
+
+ + + + diff --git a/docs/generated/docs/class_a_d_s1x15.html b/docs/generated/docs/class_a_d_s1x15.html new file mode 100644 index 000000000..7dd35b8b4 --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15.html @@ -0,0 +1,275 @@ + + + + + + + +SensESP: ADS1x15< T_Ada_1x15 > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ADS1x15< T_Ada_1x15 > Class Template Reference
+
+
+ +

#include <ads1x15.h>

+
+Inheritance diagram for ADS1x15< T_Ada_1x15 >:
+
+
Inheritance graph
+ + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ADS1x15 (uint8_t addr=0x48, adsGain_t gain=GAIN_TWOTHIRDS, String config_path="")
 
void enable () override final
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
+ + + + + + +

+Public Attributes

T_Ada_1x15 * ads
 
- Public Attributes inherited from Configurable
const String config_path
 
+ + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
+

Detailed Description

+

template<class T_Ada_1x15>
+class ADS1x15< T_Ada_1x15 >

+ + +

Definition at line 13 of file ads1x15.h.

+

Constructor & Destructor Documentation

+ +

◆ ADS1x15()

+ +
+
+
+template<class T_Ada_1x15 >
+ + + + + + + + + + + + + + + + + + + + + + + + +
ADS1x15< T_Ada_1x15 >::ADS1x15 (uint8_t addr = 0x48,
adsGain_t gain = GAIN_TWOTHIRDS,
String config_path = "" 
)
+
+ +

Definition at line 6 of file ads1x15.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+
+template<class T_Ada_1x15 >
+ + + + + +
+ + + + + + + +
void ADS1x15< T_Ada_1x15 >::enable ()
+
+inlinefinaloverridevirtual
+
+

Called during the initialization process. Override this method to add runtime initialization code to your class

+ +

Reimplemented from Enable.

+ +

Definition at line 17 of file ads1x15.h.

+ +
+
+

Member Data Documentation

+ +

◆ ads

+ +
+
+
+template<class T_Ada_1x15 >
+ + + + +
T_Ada_1x15* ADS1x15< T_Ada_1x15 >::ads
+
+ +

Definition at line 18 of file ads1x15.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_a_d_s1x15.js b/docs/generated/docs/class_a_d_s1x15.js new file mode 100644 index 000000000..a419fd4fc --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15.js @@ -0,0 +1,6 @@ +var class_a_d_s1x15 = +[ + [ "ADS1x15", "class_a_d_s1x15.html#a222eece7162f1774e5970fc9f14dd6a2", null ], + [ "enable", "class_a_d_s1x15.html#a86230f10cfa6fcccbb189d91fbcbb6d8", null ], + [ "ads", "class_a_d_s1x15.html#ace2a95dc18d4c043c4c4122a5508c576", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_a_d_s1x15__inherit__graph.map b/docs/generated/docs/class_a_d_s1x15__inherit__graph.map new file mode 100644 index 000000000..a849e1b5d --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/class_a_d_s1x15__inherit__graph.md5 b/docs/generated/docs/class_a_d_s1x15__inherit__graph.md5 new file mode 100644 index 000000000..05d9022aa --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15__inherit__graph.md5 @@ -0,0 +1 @@ +08364ad5314f5d799ab22f60109ba256 \ No newline at end of file diff --git a/docs/generated/docs/class_a_d_s1x15__inherit__graph.png b/docs/generated/docs/class_a_d_s1x15__inherit__graph.png new file mode 100644 index 000000000..1ae76ab79 Binary files /dev/null and b/docs/generated/docs/class_a_d_s1x15__inherit__graph.png differ diff --git a/docs/generated/docs/class_a_d_s1x15_value-members.html b/docs/generated/docs/class_a_d_s1x15_value-members.html new file mode 100644 index 000000000..189aa89f8 --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15_value-members.html @@ -0,0 +1,125 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ADS1x15Value< T_ads_1x15 > Member List
+
+
+ +

This is the complete list of members for ADS1x15Value< T_ads_1x15 >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + +
ADS1x15Value(T_ads_1x15 *ads1x15, uint8_t channel=0, uint read_delay=200, String config_path="")ADS1x15Value< T_ads_1x15 >
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connect_to(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable() override finalADS1x15Value< T_ads_1x15 >virtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< float >inlinevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_priority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< float >inline
+
+ + + + diff --git a/docs/generated/docs/class_a_d_s1x15_value.html b/docs/generated/docs/class_a_d_s1x15_value.html new file mode 100644 index 000000000..c54ac1b15 --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15_value.html @@ -0,0 +1,268 @@ + + + + + + + +SensESP: ADS1x15Value< T_ads_1x15 > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ADS1x15Value< T_ads_1x15 > Class Template Reference
+
+
+ +

#include <ads1x15.h>

+
+Inheritance diagram for ADS1x15Value< T_ads_1x15 >:
+
+
Inheritance graph
+ + + + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ADS1x15Value (T_ads_1x15 *ads1x15, uint8_t channel=0, uint read_delay=200, String config_path="")
 
void enable () override final
 
- Public Member Functions inherited from NumericSensor
 NumericSensor (String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connect_to (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connect_to (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
+ + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
+

Detailed Description

+

template<class T_ads_1x15>
+class ADS1x15Value< T_ads_1x15 >

+ + +

Definition at line 31 of file ads1x15.h.

+

Constructor & Destructor Documentation

+ +

◆ ADS1x15Value()

+ +
+
+
+template<class T_ads_1x15 >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ADS1x15Value< T_ads_1x15 >::ADS1x15Value (T_ads_1x15 * ads1x15,
uint8_t channel = 0,
uint read_delay = 200,
String config_path = "" 
)
+
+ +

Definition at line 18 of file ads1x15.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+
+template<class T_ads_1x15 >
+ + + + + +
+ + + + +
void ADS1x15Value< T_ads_1x15 >::enable
+
+finaloverridevirtual
+
+

Called during the initialization process. Override this method to add runtime initialization code to your class

+ +

Reimplemented from Enable.

+ +

Definition at line 28 of file ads1x15.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_a_d_s1x15_value.js b/docs/generated/docs/class_a_d_s1x15_value.js new file mode 100644 index 000000000..f66e1aed7 --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15_value.js @@ -0,0 +1,5 @@ +var class_a_d_s1x15_value = +[ + [ "ADS1x15Value", "class_a_d_s1x15_value.html#ab6f5ad81976b4a0f2ac8e43432b9a247", null ], + [ "enable", "class_a_d_s1x15_value.html#ae0ee6cebb76815406ef8d9ee816e33ec", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_a_d_s1x15_value__inherit__graph.map b/docs/generated/docs/class_a_d_s1x15_value__inherit__graph.map new file mode 100644 index 000000000..4767e81b9 --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15_value__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_a_d_s1x15_value__inherit__graph.md5 b/docs/generated/docs/class_a_d_s1x15_value__inherit__graph.md5 new file mode 100644 index 000000000..e4e179574 --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15_value__inherit__graph.md5 @@ -0,0 +1 @@ +fc7614dc3ad352dfb019af0b5d2c3e81 \ No newline at end of file diff --git a/docs/generated/docs/class_a_d_s1x15_value__inherit__graph.png b/docs/generated/docs/class_a_d_s1x15_value__inherit__graph.png new file mode 100644 index 000000000..1a305c900 Binary files /dev/null and b/docs/generated/docs/class_a_d_s1x15_value__inherit__graph.png differ diff --git a/docs/generated/docs/class_a_d_s1x15_voltage-members.html b/docs/generated/docs/class_a_d_s1x15_voltage-members.html new file mode 100644 index 000000000..d430ed95b --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15_voltage-members.html @@ -0,0 +1,109 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ADS1x15Voltage Member List
+
+
+ +

This is the complete list of members for ADS1x15Voltage, including all inherited members.

+ + + + + + + + +
ADS1x15Voltage(ADS1x15CHIP_t chip=ADS1115chip, adsGain_t gain=GAIN_TWOTHIRDS)ADS1x15Voltage
chipADS1x15Voltageprotected
connectFrom(ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)Transform< float, float >inline
gainADS1x15Voltageprotected
set_input(float input, uint8_t input_channel=0) overrideADS1x15Voltagevirtual
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
+
+ + + + diff --git a/docs/generated/docs/class_a_d_s1x15_voltage.html b/docs/generated/docs/class_a_d_s1x15_voltage.html new file mode 100644 index 000000000..66d921205 --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15_voltage.html @@ -0,0 +1,277 @@ + + + + + + + +SensESP: ADS1x15Voltage Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ADS1x15Voltage Class Reference
+
+
+ +

#include <ads1x15_voltage.h>

+
+Inheritance diagram for ADS1x15Voltage:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + +

+Public Member Functions

 ADS1x15Voltage (ADS1x15CHIP_t chip=ADS1115chip, adsGain_t gain=GAIN_TWOTHIRDS)
 
virtual void set_input (float input, uint8_t input_channel=0) override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
+ + + + + +

+Protected Attributes

ADS1x15CHIP_t chip
 
adsGain_t gain
 
+

Detailed Description

+

A transform that takes the output from an ADS1015 or ADS1115 analog-to-digital converter (ADC) as input, and converts the value to the original voltage sensed by the ADC. There are two parameters:

+
    +
  • chip, which is either 0 (representing the ADS1015) or 1 (representing the ADS1115). Default is 1.
  • +
  • gain, which is the value of the GAIN setting used by the firmware on the chip. It defaults to GAIN_TWOTHIRDS, which is also the default GAIN setting for both chips. Valid values are from the ADAfruit_ADS1015 library:
       GAIN_TWOTHIRDS = +/-6.144V range
    +   GAIN_ONE = +/-4.096V range
    +   GAIN_TWO = +/-2.048V range
    +   GAIN_FOUR = +/-1.024V range
    +   GAIN_EIGHT = +/-0.512V range
    +   GAIN_SIXTEEN = +/-0.256V range
    +
  • +
+

It's up to you to set the proper chip and gain to match what you've set in ADS1015() or ADS1115() - they are not automatically detected.

+ +

Definition at line 39 of file ads1x15_voltage.h.

+

Constructor & Destructor Documentation

+ +

◆ ADS1x15Voltage()

+ +
+
+ + + + + + + + + + + + + + + + + + +
ADS1x15Voltage::ADS1x15Voltage (ADS1x15CHIP_t chip = ADS1115chip,
adsGain_t gain = GAIN_TWOTHIRDS 
)
+
+ +

Definition at line 3 of file ads1x15_voltage.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ADS1x15Voltage::set_input (float input,
uint8_t input_channel = 0 
)
+
+overridevirtual
+
+ +

Definition at line 6 of file ads1x15_voltage.cpp.

+ +
+
+

Member Data Documentation

+ +

◆ chip

+ +
+
+ + + + + +
+ + + + +
ADS1x15CHIP_t ADS1x15Voltage::chip
+
+protected
+
+ +

Definition at line 47 of file ads1x15_voltage.h.

+ +
+
+ +

◆ gain

+ +
+
+ + + + + +
+ + + + +
adsGain_t ADS1x15Voltage::gain
+
+protected
+
+ +

Definition at line 48 of file ads1x15_voltage.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_a_d_s1x15_voltage.js b/docs/generated/docs/class_a_d_s1x15_voltage.js new file mode 100644 index 000000000..2c7bd22f6 --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15_voltage.js @@ -0,0 +1,7 @@ +var class_a_d_s1x15_voltage = +[ + [ "ADS1x15Voltage", "class_a_d_s1x15_voltage.html#a923d54c2370d71f3eff5fa82214e3590", null ], + [ "set_input", "class_a_d_s1x15_voltage.html#aee56be05b6373547f7b9a228c8234227", null ], + [ "chip", "class_a_d_s1x15_voltage.html#a48d2d14becbbe8147a166cf9ac24adbb", null ], + [ "gain", "class_a_d_s1x15_voltage.html#a240ceea4ec8b5c29d26a3d856ae73690", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_a_d_s1x15_voltage__inherit__graph.map b/docs/generated/docs/class_a_d_s1x15_voltage__inherit__graph.map new file mode 100644 index 000000000..ae56af384 --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15_voltage__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_a_d_s1x15_voltage__inherit__graph.md5 b/docs/generated/docs/class_a_d_s1x15_voltage__inherit__graph.md5 new file mode 100644 index 000000000..581c9c9c4 --- /dev/null +++ b/docs/generated/docs/class_a_d_s1x15_voltage__inherit__graph.md5 @@ -0,0 +1 @@ +fbaedaa1657b3e4560bc5ffa37a0f5b9 \ No newline at end of file diff --git a/docs/generated/docs/class_a_d_s1x15_voltage__inherit__graph.png b/docs/generated/docs/class_a_d_s1x15_voltage__inherit__graph.png new file mode 100644 index 000000000..39ee0b5ac Binary files /dev/null and b/docs/generated/docs/class_a_d_s1x15_voltage__inherit__graph.png differ diff --git a/docs/generated/docs/class_analog_input-members.html b/docs/generated/docs/class_analog_input-members.html new file mode 100644 index 000000000..36da0980a --- /dev/null +++ b/docs/generated/docs/class_analog_input-members.html @@ -0,0 +1,125 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
AnalogInput Member List
+
+
+ +

This is the complete list of members for AnalogInput, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + +
AnalogInput(uint8_t pin=A0, uint read_delay=200, String config_path="", float output_scale=1024.)AnalogInput
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connect_to(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable() override finalAnalogInputvirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< float >inlinevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_priority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< float >inline
+
+ + + + diff --git a/docs/generated/docs/class_analog_input.html b/docs/generated/docs/class_analog_input.html new file mode 100644 index 000000000..020f182f1 --- /dev/null +++ b/docs/generated/docs/class_analog_input.html @@ -0,0 +1,286 @@ + + + + + + + +SensESP: AnalogInput Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
AnalogInput Class Reference
+
+
+ +

#include <analog_input.h>

+
+Inheritance diagram for AnalogInput:
+
+
Inheritance graph
+ + + + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 AnalogInput (uint8_t pin=A0, uint read_delay=200, String config_path="", float output_scale=1024.)
 Sensor for reading the MCU analog input pins. More...
 
void enable () override final
 
- Public Member Functions inherited from NumericSensor
 NumericSensor (String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connect_to (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connect_to (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
+ + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
+

Detailed Description

+
+

Definition at line 7 of file analog_input.h.

+

Constructor & Destructor Documentation

+ +

◆ AnalogInput()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AnalogInput::AnalogInput (uint8_t pin = A0,
uint read_delay = 200,
String config_path = "",
float output_scale = 1024. 
)
+
+ +

Sensor for reading the MCU analog input pins.

+

Read an analog input pin and return the result scaled onto a given range. Note that the ADCs in both ESP8266 and ESP32 are quite unlinear and noisy and unlikely to give very accurate results.

+
Parameters
+ + + + + +
[in]pinThe GPIO pin to read. On ESP8266, always A0. On ESP32, at the moment only ADC channel 1 (pins 32..39) is supported.
[in]read_delayTime delay between consecutive readings, in ms
[in]config_pathConfiguration path for the sensor
[in]output_scaleThe maximum scale of the output
+
+
+ +

Definition at line 6 of file analog_input.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+ + + + + +
+ + + + + + + +
void AnalogInput::enable ()
+
+finaloverridevirtual
+
+

Called during the initialization process. Override this method to add runtime initialization code to your class

+ +

Reimplemented from Enable.

+ +

Definition at line 21 of file analog_input.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_analog_input.js b/docs/generated/docs/class_analog_input.js new file mode 100644 index 000000000..8d3575d1b --- /dev/null +++ b/docs/generated/docs/class_analog_input.js @@ -0,0 +1,5 @@ +var class_analog_input = +[ + [ "AnalogInput", "class_analog_input.html#a63db2d6f83b69573a4739466a6e429e6", null ], + [ "enable", "class_analog_input.html#a34942eae263f68e8f44fa3f405d057fb", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_analog_input__inherit__graph.map b/docs/generated/docs/class_analog_input__inherit__graph.map new file mode 100644 index 000000000..9b9ab9b0a --- /dev/null +++ b/docs/generated/docs/class_analog_input__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_analog_input__inherit__graph.md5 b/docs/generated/docs/class_analog_input__inherit__graph.md5 new file mode 100644 index 000000000..aaf09269e --- /dev/null +++ b/docs/generated/docs/class_analog_input__inherit__graph.md5 @@ -0,0 +1 @@ +2757774b3999fbafd8d62a6414596b87 \ No newline at end of file diff --git a/docs/generated/docs/class_analog_input__inherit__graph.png b/docs/generated/docs/class_analog_input__inherit__graph.png new file mode 100644 index 000000000..f0950395f Binary files /dev/null and b/docs/generated/docs/class_analog_input__inherit__graph.png differ diff --git a/docs/generated/docs/class_analog_input_a34942eae263f68e8f44fa3f405d057fb_cgraph.map b/docs/generated/docs/class_analog_input_a34942eae263f68e8f44fa3f405d057fb_cgraph.map new file mode 100644 index 000000000..f81d1eda7 --- /dev/null +++ b/docs/generated/docs/class_analog_input_a34942eae263f68e8f44fa3f405d057fb_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_analog_input_a34942eae263f68e8f44fa3f405d057fb_cgraph.md5 b/docs/generated/docs/class_analog_input_a34942eae263f68e8f44fa3f405d057fb_cgraph.md5 new file mode 100644 index 000000000..22e9502d9 --- /dev/null +++ b/docs/generated/docs/class_analog_input_a34942eae263f68e8f44fa3f405d057fb_cgraph.md5 @@ -0,0 +1 @@ +3c0747f3cbf8c2777edf526fda12a609 \ No newline at end of file diff --git a/docs/generated/docs/class_analog_input_a34942eae263f68e8f44fa3f405d057fb_cgraph.png b/docs/generated/docs/class_analog_input_a34942eae263f68e8f44fa3f405d057fb_cgraph.png new file mode 100644 index 000000000..d33cd6b79 Binary files /dev/null and b/docs/generated/docs/class_analog_input_a34942eae263f68e8f44fa3f405d057fb_cgraph.png differ diff --git a/docs/generated/docs/class_analog_voltage-members.html b/docs/generated/docs/class_analog_voltage-members.html new file mode 100644 index 000000000..602831042 --- /dev/null +++ b/docs/generated/docs/class_analog_voltage-members.html @@ -0,0 +1,110 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
AnalogVoltage Member List
+
+
+ +

This is the complete list of members for AnalogVoltage, including all inherited members.

+ + + + + + + + + +
AnalogVoltage(float max_voltage=3.3, float multiplier=1.0, float offset=0.0, String config_path="")AnalogVoltage
connectFrom(ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)Transform< float, float >inline
get_config_schema() overrideAnalogVoltagevirtual
get_configuration(JsonObject &doc) overrideAnalogVoltagevirtual
set_configuration(const JsonObject &config) overrideAnalogVoltagevirtual
set_input(float input, uint8_t inputChannel=0) overrideAnalogVoltagevirtual
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
+
+ + + + diff --git a/docs/generated/docs/class_analog_voltage.html b/docs/generated/docs/class_analog_voltage.html new file mode 100644 index 000000000..9c869a109 --- /dev/null +++ b/docs/generated/docs/class_analog_voltage.html @@ -0,0 +1,310 @@ + + + + + + + +SensESP: AnalogVoltage Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
AnalogVoltage Class Reference
+
+
+ +

#include <analogvoltage.h>

+
+Inheritance diagram for AnalogVoltage:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 AnalogVoltage (float max_voltage=3.3, float multiplier=1.0, float offset=0.0, String config_path="")
 
virtual void set_input (float input, uint8_t inputChannel=0) override
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
+

Detailed Description

+

AnalogVoltage is a transform that takes the output of the built-in analog-to-digital converter on the ESP and outputs the voltage that went into it. It can also be used like the Linear transport since it has a multiplier and an offset. max_voltage is the maximum voltage allowable on the Analog Input pin of the microcontroller, which is 3.3V on most ESP's, but only 1.0V on some.

+ +

Definition at line 21 of file analogvoltage.h.

+

Constructor & Destructor Documentation

+ +

◆ AnalogVoltage()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AnalogVoltage::AnalogVoltage (float max_voltage = 3.3,
float multiplier = 1.0,
float offset = 0.0,
String config_path = "" 
)
+
+ +

Definition at line 3 of file analogvoltage.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String AnalogVoltage::get_config_schema ()
+
+overridevirtual
+
+ +

Definition at line 34 of file analogvoltage.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void AnalogVoltage::get_configuration (JsonObject & doc)
+
+overridevirtual
+
+ +

Definition at line 17 of file analogvoltage.cpp.

+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool AnalogVoltage::set_configuration (const JsonObject & config)
+
+overridevirtual
+
+ +

Definition at line 36 of file analogvoltage.cpp.

+ +
+
+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void AnalogVoltage::set_input (float input,
uint8_t inputChannel = 0 
)
+
+overridevirtual
+
+ +

Definition at line 12 of file analogvoltage.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_analog_voltage.js b/docs/generated/docs/class_analog_voltage.js new file mode 100644 index 000000000..596a65cae --- /dev/null +++ b/docs/generated/docs/class_analog_voltage.js @@ -0,0 +1,8 @@ +var class_analog_voltage = +[ + [ "AnalogVoltage", "class_analog_voltage.html#aa702f3b91648bbffa9cd86b5c0200a25", null ], + [ "get_config_schema", "class_analog_voltage.html#ae9dcab3d6891a5e53c99746b476c6f72", null ], + [ "get_configuration", "class_analog_voltage.html#a2b3422b5f6712829e5c093c80f986183", null ], + [ "set_configuration", "class_analog_voltage.html#a37e88929680d2cf431f2da3ee38c140f", null ], + [ "set_input", "class_analog_voltage.html#a86c85f6bae3f7e478a48475a7d69b5c8", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_analog_voltage__inherit__graph.map b/docs/generated/docs/class_analog_voltage__inherit__graph.map new file mode 100644 index 000000000..83c5c6e5a --- /dev/null +++ b/docs/generated/docs/class_analog_voltage__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_analog_voltage__inherit__graph.md5 b/docs/generated/docs/class_analog_voltage__inherit__graph.md5 new file mode 100644 index 000000000..ea99ed267 --- /dev/null +++ b/docs/generated/docs/class_analog_voltage__inherit__graph.md5 @@ -0,0 +1 @@ +a86a9b720bff89a6f049742deb440012 \ No newline at end of file diff --git a/docs/generated/docs/class_analog_voltage__inherit__graph.png b/docs/generated/docs/class_analog_voltage__inherit__graph.png new file mode 100644 index 000000000..4e067dd5c Binary files /dev/null and b/docs/generated/docs/class_analog_voltage__inherit__graph.png differ diff --git a/docs/generated/docs/class_angle_correction-members.html b/docs/generated/docs/class_angle_correction-members.html new file mode 100644 index 000000000..91d795f4e --- /dev/null +++ b/docs/generated/docs/class_angle_correction-members.html @@ -0,0 +1,110 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
AngleCorrection Member List
+
+
+ +

This is the complete list of members for AngleCorrection, including all inherited members.

+ + + + + + + + + +
AngleCorrection(float offset, float min_angle=0, String config_path="")AngleCorrection
connectFrom(ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)Transform< float, float >inline
get_config_schema() overrideAngleCorrectionvirtual
get_configuration(JsonObject &doc) overrideAngleCorrectionvirtual
set_configuration(const JsonObject &config) overrideAngleCorrectionvirtual
set_input(float input, uint8_t inputChannel=0) overrideAngleCorrectionvirtual
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
+
+ + + + diff --git a/docs/generated/docs/class_angle_correction.html b/docs/generated/docs/class_angle_correction.html new file mode 100644 index 000000000..8520bb66b --- /dev/null +++ b/docs/generated/docs/class_angle_correction.html @@ -0,0 +1,303 @@ + + + + + + + +SensESP: AngleCorrection Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
AngleCorrection Class Reference
+
+
+ +

#include <angle_correction.h>

+
+Inheritance diagram for AngleCorrection:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 AngleCorrection (float offset, float min_angle=0, String config_path="")
 
virtual void set_input (float input, uint8_t inputChannel=0) override
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
+

Detailed Description

+
+

Definition at line 9 of file angle_correction.h.

+

Constructor & Destructor Documentation

+ +

◆ AngleCorrection()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
AngleCorrection::AngleCorrection (float offset,
float min_angle = 0,
String config_path = "" 
)
+
+ +

Definition at line 5 of file angle_correction.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String AngleCorrection::get_config_schema ()
+
+overridevirtual
+
+ +

Definition at line 40 of file angle_correction.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void AngleCorrection::get_configuration (JsonObject & doc)
+
+overridevirtual
+
+ +

Definition at line 25 of file angle_correction.cpp.

+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool AngleCorrection::set_configuration (const JsonObject & config)
+
+overridevirtual
+
+ +

Definition at line 42 of file angle_correction.cpp.

+ +
+
+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void AngleCorrection::set_input (float input,
uint8_t inputChannel = 0 
)
+
+overridevirtual
+
+ +

Definition at line 11 of file angle_correction.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/class_angle_correction.js b/docs/generated/docs/class_angle_correction.js similarity index 80% rename from docs/class_angle_correction.js rename to docs/generated/docs/class_angle_correction.js index 9e10631d7..1398a5368 100644 --- a/docs/class_angle_correction.js +++ b/docs/generated/docs/class_angle_correction.js @@ -2,7 +2,7 @@ var class_angle_correction = [ [ "AngleCorrection", "class_angle_correction.html#a6a023df6e49e8ada977738dc8cbe150c", null ], [ "get_config_schema", "class_angle_correction.html#ad31bbb6a8fd400879eceba5f0b2880fe", null ], - [ "get_configuration", "class_angle_correction.html#a454172cb376cbeb9f3b7467392bf582e", null ], + [ "get_configuration", "class_angle_correction.html#aaef0a4f1bd578470a12d046cd745df3b", null ], [ "set_configuration", "class_angle_correction.html#a53b1594b6161feff6f218a2aa7a05ad3", null ], [ "set_input", "class_angle_correction.html#afd9a559ce1218e9b78137ff1a9c6d77d", null ] ]; \ No newline at end of file diff --git a/docs/generated/docs/class_angle_correction__inherit__graph.map b/docs/generated/docs/class_angle_correction__inherit__graph.map new file mode 100644 index 000000000..40cbb0c81 --- /dev/null +++ b/docs/generated/docs/class_angle_correction__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_angle_correction__inherit__graph.md5 b/docs/generated/docs/class_angle_correction__inherit__graph.md5 new file mode 100644 index 000000000..da4c9b6da --- /dev/null +++ b/docs/generated/docs/class_angle_correction__inherit__graph.md5 @@ -0,0 +1 @@ +45c770ec01ec6e513a71bc18d44d294c \ No newline at end of file diff --git a/docs/generated/docs/class_angle_correction__inherit__graph.png b/docs/generated/docs/class_angle_correction__inherit__graph.png new file mode 100644 index 000000000..bab6589b5 Binary files /dev/null and b/docs/generated/docs/class_angle_correction__inherit__graph.png differ diff --git a/docs/generated/docs/class_b_m_e280-members.html b/docs/generated/docs/class_b_m_e280-members.html new file mode 100644 index 000000000..ef5894256 --- /dev/null +++ b/docs/generated/docs/class_b_m_e280-members.html @@ -0,0 +1,121 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
BME280 Member List
+
+
+ +

This is the complete list of members for BME280, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
adafruit_bme280BME280
attach(std::function< void()> observer)Observable
BME280(uint8_t addr=0x77, String config_path="")BME280
config_pathConfigurable
Configurable(String config_path)Configurable
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
+
+ + + + diff --git a/docs/generated/docs/class_b_m_e280.html b/docs/generated/docs/class_b_m_e280.html new file mode 100644 index 000000000..9283ad960 --- /dev/null +++ b/docs/generated/docs/class_b_m_e280.html @@ -0,0 +1,229 @@ + + + + + + + +SensESP: BME280 Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
BME280 Class Reference
+
+
+ +

#include <bme280.h>

+
+Inheritance diagram for BME280:
+
+
Inheritance graph
+ + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 BME280 (uint8_t addr=0x77, String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
+ + + + + + +

+Public Attributes

Adafruit_BME280 * adafruit_bme280
 
- Public Attributes inherited from Configurable
const String config_path
 
+ + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
+

Detailed Description

+
+

Definition at line 20 of file bme280.h.

+

Constructor & Destructor Documentation

+ +

◆ BME280()

+ +
+
+ + + + + + + + + + + + + + + + + + +
BME280::BME280 (uint8_t addr = 0x77,
String config_path = "" 
)
+
+ +

Definition at line 9 of file bme280.cpp.

+ +
+
+

Member Data Documentation

+ +

◆ adafruit_bme280

+ +
+
+ + + + +
Adafruit_BME280* BME280::adafruit_bme280
+
+ +

Definition at line 23 of file bme280.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_b_m_e280.js b/docs/generated/docs/class_b_m_e280.js new file mode 100644 index 000000000..6de7ce0eb --- /dev/null +++ b/docs/generated/docs/class_b_m_e280.js @@ -0,0 +1,5 @@ +var class_b_m_e280 = +[ + [ "BME280", "class_b_m_e280.html#a7eb425e9c7b1eebc6bad4288de80dcab", null ], + [ "adafruit_bme280", "class_b_m_e280.html#ac977ead8ac47915501544b240fee22fc", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_b_m_e280__inherit__graph.map b/docs/generated/docs/class_b_m_e280__inherit__graph.map new file mode 100644 index 000000000..3438795a4 --- /dev/null +++ b/docs/generated/docs/class_b_m_e280__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/class_b_m_e280__inherit__graph.md5 b/docs/generated/docs/class_b_m_e280__inherit__graph.md5 new file mode 100644 index 000000000..1a88cb508 --- /dev/null +++ b/docs/generated/docs/class_b_m_e280__inherit__graph.md5 @@ -0,0 +1 @@ +37d7eedf56385080b17896bf34edc572 \ No newline at end of file diff --git a/docs/generated/docs/class_b_m_e280__inherit__graph.png b/docs/generated/docs/class_b_m_e280__inherit__graph.png new file mode 100644 index 000000000..dcf42bd03 Binary files /dev/null and b/docs/generated/docs/class_b_m_e280__inherit__graph.png differ diff --git a/docs/generated/docs/class_b_m_e280_value-members.html b/docs/generated/docs/class_b_m_e280_value-members.html new file mode 100644 index 000000000..5869ce76c --- /dev/null +++ b/docs/generated/docs/class_b_m_e280_value-members.html @@ -0,0 +1,126 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
BME280Value Member List
+
+
+ +

This is the complete list of members for BME280Value, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
bme280BME280Value
BME280Value(BME280 *bme280, BME280ValType val_type, uint read_delay=500, String config_path="")BME280Value
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connect_to(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
enable() override finalBME280Valuevirtual
Enable(uint8_t priority=0)Enable
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< float >inlinevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_priority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< float >inline
+
+ + + + diff --git a/docs/generated/docs/class_b_m_e280_value.html b/docs/generated/docs/class_b_m_e280_value.html new file mode 100644 index 000000000..52f4191d3 --- /dev/null +++ b/docs/generated/docs/class_b_m_e280_value.html @@ -0,0 +1,296 @@ + + + + + + + +SensESP: BME280Value Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
BME280Value Class Reference
+
+
+ +

#include <bme280.h>

+
+Inheritance diagram for BME280Value:
+
+
Inheritance graph
+ + + + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 BME280Value (BME280 *bme280, BME280ValType val_type, uint read_delay=500, String config_path="")
 
void enable () override final
 
- Public Member Functions inherited from NumericSensor
 NumericSensor (String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connect_to (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connect_to (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
+ + + + + + +

+Public Attributes

BME280bme280
 
- Public Attributes inherited from Configurable
const String config_path
 
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
+

Detailed Description

+
+

Definition at line 35 of file bme280.h.

+

Constructor & Destructor Documentation

+ +

◆ BME280Value()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BME280Value::BME280Value (BME280bme280,
BME280ValType val_type,
uint read_delay = 500,
String config_path = "" 
)
+
+ +

Definition at line 31 of file bme280.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+ + + + + +
+ + + + + + + +
void BME280Value::enable ()
+
+finaloverridevirtual
+
+

Called during the initialization process. Override this method to add runtime initialization code to your class

+ +

Reimplemented from Enable.

+ +

Definition at line 43 of file bme280.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+

Member Data Documentation

+ +

◆ bme280

+ +
+
+ + + + +
BME280* BME280Value::bme280
+
+ +

Definition at line 40 of file bme280.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_b_m_e280_value.js b/docs/generated/docs/class_b_m_e280_value.js new file mode 100644 index 000000000..ef837417e --- /dev/null +++ b/docs/generated/docs/class_b_m_e280_value.js @@ -0,0 +1,6 @@ +var class_b_m_e280_value = +[ + [ "BME280Value", "class_b_m_e280_value.html#a59605de196c5141aac67b51522902183", null ], + [ "enable", "class_b_m_e280_value.html#afac9027689bc79c15e329bebec201c1b", null ], + [ "bme280", "class_b_m_e280_value.html#a333a82519078ad9ec9b3d5828b42bc2b", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_b_m_e280_value__inherit__graph.map b/docs/generated/docs/class_b_m_e280_value__inherit__graph.map new file mode 100644 index 000000000..cc43e4a37 --- /dev/null +++ b/docs/generated/docs/class_b_m_e280_value__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_b_m_e280_value__inherit__graph.md5 b/docs/generated/docs/class_b_m_e280_value__inherit__graph.md5 new file mode 100644 index 000000000..5105eda76 --- /dev/null +++ b/docs/generated/docs/class_b_m_e280_value__inherit__graph.md5 @@ -0,0 +1 @@ +c09df4d1b891e2ad2ba4bf151f5d6a4d \ No newline at end of file diff --git a/docs/generated/docs/class_b_m_e280_value__inherit__graph.png b/docs/generated/docs/class_b_m_e280_value__inherit__graph.png new file mode 100644 index 000000000..e18e1c829 Binary files /dev/null and b/docs/generated/docs/class_b_m_e280_value__inherit__graph.png differ diff --git a/docs/generated/docs/class_b_m_e280_value_afac9027689bc79c15e329bebec201c1b_cgraph.map b/docs/generated/docs/class_b_m_e280_value_afac9027689bc79c15e329bebec201c1b_cgraph.map new file mode 100644 index 000000000..0bf47534d --- /dev/null +++ b/docs/generated/docs/class_b_m_e280_value_afac9027689bc79c15e329bebec201c1b_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_b_m_e280_value_afac9027689bc79c15e329bebec201c1b_cgraph.md5 b/docs/generated/docs/class_b_m_e280_value_afac9027689bc79c15e329bebec201c1b_cgraph.md5 new file mode 100644 index 000000000..3dfc5d16f --- /dev/null +++ b/docs/generated/docs/class_b_m_e280_value_afac9027689bc79c15e329bebec201c1b_cgraph.md5 @@ -0,0 +1 @@ +e3ad10d8484f5018e3380a1689498b5f \ No newline at end of file diff --git a/docs/generated/docs/class_b_m_e280_value_afac9027689bc79c15e329bebec201c1b_cgraph.png b/docs/generated/docs/class_b_m_e280_value_afac9027689bc79c15e329bebec201c1b_cgraph.png new file mode 100644 index 000000000..d8be8b9b5 Binary files /dev/null and b/docs/generated/docs/class_b_m_e280_value_afac9027689bc79c15e329bebec201c1b_cgraph.png differ diff --git a/docs/generated/docs/class_b_m_p280-members.html b/docs/generated/docs/class_b_m_p280-members.html new file mode 100644 index 000000000..54536bc93 --- /dev/null +++ b/docs/generated/docs/class_b_m_p280-members.html @@ -0,0 +1,121 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
BMP280 Member List
+
+
+ +

This is the complete list of members for BMP280, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
adafruit_bmp280BMP280
attach(std::function< void()> observer)Observable
BMP280(uint8_t addr=0x77, String config_path="")BMP280
config_pathConfigurable
Configurable(String config_path)Configurable
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
+
+ + + + diff --git a/docs/generated/docs/class_b_m_p280.html b/docs/generated/docs/class_b_m_p280.html new file mode 100644 index 000000000..9d0f439ae --- /dev/null +++ b/docs/generated/docs/class_b_m_p280.html @@ -0,0 +1,229 @@ + + + + + + + +SensESP: BMP280 Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
BMP280 Class Reference
+
+
+ +

#include <bmp280.h>

+
+Inheritance diagram for BMP280:
+
+
Inheritance graph
+ + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 BMP280 (uint8_t addr=0x77, String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
+ + + + + + +

+Public Attributes

Adafruit_BMP280 * adafruit_bmp280
 
- Public Attributes inherited from Configurable
const String config_path
 
+ + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
+

Detailed Description

+
+

Definition at line 20 of file bmp280.h.

+

Constructor & Destructor Documentation

+ +

◆ BMP280()

+ +
+
+ + + + + + + + + + + + + + + + + + +
BMP280::BMP280 (uint8_t addr = 0x77,
String config_path = "" 
)
+
+ +

Definition at line 9 of file bmp280.cpp.

+ +
+
+

Member Data Documentation

+ +

◆ adafruit_bmp280

+ +
+
+ + + + +
Adafruit_BMP280* BMP280::adafruit_bmp280
+
+ +

Definition at line 23 of file bmp280.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_b_m_p280.js b/docs/generated/docs/class_b_m_p280.js new file mode 100644 index 000000000..85920d16d --- /dev/null +++ b/docs/generated/docs/class_b_m_p280.js @@ -0,0 +1,5 @@ +var class_b_m_p280 = +[ + [ "BMP280", "class_b_m_p280.html#a70a4ccddabb11d3da232a4b0339d4851", null ], + [ "adafruit_bmp280", "class_b_m_p280.html#ac3e52141522ed5f9d96f184c55e31a99", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_b_m_p280__inherit__graph.map b/docs/generated/docs/class_b_m_p280__inherit__graph.map new file mode 100644 index 000000000..882fa2049 --- /dev/null +++ b/docs/generated/docs/class_b_m_p280__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/class_b_m_p280__inherit__graph.md5 b/docs/generated/docs/class_b_m_p280__inherit__graph.md5 new file mode 100644 index 000000000..3ed440917 --- /dev/null +++ b/docs/generated/docs/class_b_m_p280__inherit__graph.md5 @@ -0,0 +1 @@ +dc0b5bb4353100425de2275702388455 \ No newline at end of file diff --git a/docs/generated/docs/class_b_m_p280__inherit__graph.png b/docs/generated/docs/class_b_m_p280__inherit__graph.png new file mode 100644 index 000000000..ab79994f4 Binary files /dev/null and b/docs/generated/docs/class_b_m_p280__inherit__graph.png differ diff --git a/docs/generated/docs/class_b_m_p280_value-members.html b/docs/generated/docs/class_b_m_p280_value-members.html new file mode 100644 index 000000000..93329e389 --- /dev/null +++ b/docs/generated/docs/class_b_m_p280_value-members.html @@ -0,0 +1,126 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
BMP280Value Member List
+
+
+ +

This is the complete list of members for BMP280Value, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
bmp280BMP280Value
BMP280Value(BMP280 *bmp280, BMP280ValType val_type, uint read_delay=500, String config_path="")BMP280Value
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connect_to(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
enable() override finalBMP280Valuevirtual
Enable(uint8_t priority=0)Enable
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< float >inlinevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_priority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< float >inline
+
+ + + + diff --git a/docs/generated/docs/class_b_m_p280_value.html b/docs/generated/docs/class_b_m_p280_value.html new file mode 100644 index 000000000..8894fa612 --- /dev/null +++ b/docs/generated/docs/class_b_m_p280_value.html @@ -0,0 +1,296 @@ + + + + + + + +SensESP: BMP280Value Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
BMP280Value Class Reference
+
+
+ +

#include <bmp280.h>

+
+Inheritance diagram for BMP280Value:
+
+
Inheritance graph
+ + + + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 BMP280Value (BMP280 *bmp280, BMP280ValType val_type, uint read_delay=500, String config_path="")
 
void enable () override final
 
- Public Member Functions inherited from NumericSensor
 NumericSensor (String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connect_to (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connect_to (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
+ + + + + + +

+Public Attributes

BMP280bmp280
 
- Public Attributes inherited from Configurable
const String config_path
 
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
+

Detailed Description

+
+

Definition at line 34 of file bmp280.h.

+

Constructor & Destructor Documentation

+ +

◆ BMP280Value()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BMP280Value::BMP280Value (BMP280bmp280,
BMP280ValType val_type,
uint read_delay = 500,
String config_path = "" 
)
+
+ +

Definition at line 19 of file bmp280.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+ + + + + +
+ + + + + + + +
void BMP280Value::enable ()
+
+finaloverridevirtual
+
+

Called during the initialization process. Override this method to add runtime initialization code to your class

+ +

Reimplemented from Enable.

+ +

Definition at line 30 of file bmp280.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+

Member Data Documentation

+ +

◆ bmp280

+ +
+
+ + + + +
BMP280* BMP280Value::bmp280
+
+ +

Definition at line 39 of file bmp280.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_b_m_p280_value.js b/docs/generated/docs/class_b_m_p280_value.js new file mode 100644 index 000000000..8c3bfd864 --- /dev/null +++ b/docs/generated/docs/class_b_m_p280_value.js @@ -0,0 +1,6 @@ +var class_b_m_p280_value = +[ + [ "BMP280Value", "class_b_m_p280_value.html#a9862d2cc3be55366831f97613a805973", null ], + [ "enable", "class_b_m_p280_value.html#a29c3968e8ceb876e9e5731d1df863b63", null ], + [ "bmp280", "class_b_m_p280_value.html#a93dfd7d1bb90299ba31505749b482aae", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_b_m_p280_value__inherit__graph.map b/docs/generated/docs/class_b_m_p280_value__inherit__graph.map new file mode 100644 index 000000000..33d0aa51f --- /dev/null +++ b/docs/generated/docs/class_b_m_p280_value__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_b_m_p280_value__inherit__graph.md5 b/docs/generated/docs/class_b_m_p280_value__inherit__graph.md5 new file mode 100644 index 000000000..78ca9cfc8 --- /dev/null +++ b/docs/generated/docs/class_b_m_p280_value__inherit__graph.md5 @@ -0,0 +1 @@ +8b58bef17d733618a8e7dc83ccf9d4e4 \ No newline at end of file diff --git a/docs/generated/docs/class_b_m_p280_value__inherit__graph.png b/docs/generated/docs/class_b_m_p280_value__inherit__graph.png new file mode 100644 index 000000000..610f18e71 Binary files /dev/null and b/docs/generated/docs/class_b_m_p280_value__inherit__graph.png differ diff --git a/docs/generated/docs/class_b_m_p280_value_a29c3968e8ceb876e9e5731d1df863b63_cgraph.map b/docs/generated/docs/class_b_m_p280_value_a29c3968e8ceb876e9e5731d1df863b63_cgraph.map new file mode 100644 index 000000000..be79c60a4 --- /dev/null +++ b/docs/generated/docs/class_b_m_p280_value_a29c3968e8ceb876e9e5731d1df863b63_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_b_m_p280_value_a29c3968e8ceb876e9e5731d1df863b63_cgraph.md5 b/docs/generated/docs/class_b_m_p280_value_a29c3968e8ceb876e9e5731d1df863b63_cgraph.md5 new file mode 100644 index 000000000..8d2e93949 --- /dev/null +++ b/docs/generated/docs/class_b_m_p280_value_a29c3968e8ceb876e9e5731d1df863b63_cgraph.md5 @@ -0,0 +1 @@ +01d70844ce314ebb88248dcf222538d3 \ No newline at end of file diff --git a/docs/generated/docs/class_b_m_p280_value_a29c3968e8ceb876e9e5731d1df863b63_cgraph.png b/docs/generated/docs/class_b_m_p280_value_a29c3968e8ceb876e9e5731d1df863b63_cgraph.png new file mode 100644 index 000000000..6d7226376 Binary files /dev/null and b/docs/generated/docs/class_b_m_p280_value_a29c3968e8ceb876e9e5731d1df863b63_cgraph.png differ diff --git a/docs/generated/docs/class_base_analog_reader-members.html b/docs/generated/docs/class_base_analog_reader-members.html new file mode 100644 index 000000000..02c0eece7 --- /dev/null +++ b/docs/generated/docs/class_base_analog_reader-members.html @@ -0,0 +1,104 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
BaseAnalogReader Member List
+
+
+ +

This is the complete list of members for BaseAnalogReader, including all inherited members.

+ + + +
configure()=0BaseAnalogReaderpure virtual
read()=0BaseAnalogReaderpure virtual
+
+ + + + diff --git a/docs/generated/docs/class_base_analog_reader.html b/docs/generated/docs/class_base_analog_reader.html new file mode 100644 index 000000000..3fc72eb77 --- /dev/null +++ b/docs/generated/docs/class_base_analog_reader.html @@ -0,0 +1,179 @@ + + + + + + + +SensESP: BaseAnalogReader Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
BaseAnalogReader Class Referenceabstract
+
+
+ +

#include <analog_reader.h>

+ + + + + + +

+Public Member Functions

virtual bool configure ()=0
 
virtual float read ()=0
 
+

Detailed Description

+
+

Definition at line 10 of file analog_reader.h.

+

Member Function Documentation

+ +

◆ configure()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool BaseAnalogReader::configure ()
+
+pure virtual
+
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ read()

+ +
+
+ + + + + +
+ + + + + + + +
virtual float BaseAnalogReader::read ()
+
+pure virtual
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/generated/docs/class_base_analog_reader.js b/docs/generated/docs/class_base_analog_reader.js new file mode 100644 index 000000000..ab804e834 --- /dev/null +++ b/docs/generated/docs/class_base_analog_reader.js @@ -0,0 +1,5 @@ +var class_base_analog_reader = +[ + [ "configure", "class_base_analog_reader.html#a4967330c789c7bce878ceeeb2108ea65", null ], + [ "read", "class_base_analog_reader.html#a47be844ead62b7e39e44b00587b756e7", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_base_analog_reader_a4967330c789c7bce878ceeeb2108ea65_icgraph.map b/docs/generated/docs/class_base_analog_reader_a4967330c789c7bce878ceeeb2108ea65_icgraph.map new file mode 100644 index 000000000..7a33cf9b9 --- /dev/null +++ b/docs/generated/docs/class_base_analog_reader_a4967330c789c7bce878ceeeb2108ea65_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_base_analog_reader_a4967330c789c7bce878ceeeb2108ea65_icgraph.md5 b/docs/generated/docs/class_base_analog_reader_a4967330c789c7bce878ceeeb2108ea65_icgraph.md5 new file mode 100644 index 000000000..ffdc9ef15 --- /dev/null +++ b/docs/generated/docs/class_base_analog_reader_a4967330c789c7bce878ceeeb2108ea65_icgraph.md5 @@ -0,0 +1 @@ +1ca39002d65c8e612de04ce5eece1f21 \ No newline at end of file diff --git a/docs/generated/docs/class_base_analog_reader_a4967330c789c7bce878ceeeb2108ea65_icgraph.png b/docs/generated/docs/class_base_analog_reader_a4967330c789c7bce878ceeeb2108ea65_icgraph.png new file mode 100644 index 000000000..0a64ccbc8 Binary files /dev/null and b/docs/generated/docs/class_base_analog_reader_a4967330c789c7bce878ceeeb2108ea65_icgraph.png differ diff --git a/docs/generated/docs/class_change_filter-members.html b/docs/generated/docs/class_change_filter-members.html new file mode 100644 index 000000000..bc8d446d8 --- /dev/null +++ b/docs/generated/docs/class_change_filter-members.html @@ -0,0 +1,114 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ChangeFilter Member List
+
+
+ +

This is the complete list of members for ChangeFilter, including all inherited members.

+ + + + + + + + + + + + + +
ChangeFilter(float min_delta=0.0, float max_delta=9999.0, int max_skips=99, String config_path="")ChangeFilter
connectFrom(ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)Transform< float, float >inline
get_config_schema() overrideChangeFiltervirtual
get_configuration(JsonObject &doc) overrideChangeFiltervirtual
max_deltaChangeFilterprotected
max_skipsChangeFilterprotected
min_deltaChangeFilterprotected
set_configuration(const JsonObject &config) overrideChangeFiltervirtual
set_input(float new_value, uint8_t input_channel=0) overrideChangeFiltervirtual
skipsChangeFilterprotected
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
+
+ + + + diff --git a/docs/generated/docs/class_change_filter.html b/docs/generated/docs/class_change_filter.html new file mode 100644 index 000000000..58b199b14 --- /dev/null +++ b/docs/generated/docs/class_change_filter.html @@ -0,0 +1,419 @@ + + + + + + + +SensESP: ChangeFilter Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ChangeFilter Class Reference
+
+
+ +

#include <change_filter.h>

+
+Inheritance diagram for ChangeFilter:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ChangeFilter (float min_delta=0.0, float max_delta=9999.0, int max_skips=99, String config_path="")
 
virtual void set_input (float new_value, uint8_t input_channel=0) override
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
+ + + + + + + + + +

+Protected Attributes

float min_delta
 
float max_delta
 
int max_skips
 
int skips
 
+

Detailed Description

+

ChangeFilter is a numeric passthrough transform that will only pass that value through if it is "sufficiently different" from the last value passed through. More specifically, the absolute value of the difference between the new value and the last passed value has to be greater than or equal to the specified min_delta, and less than or equal to the specified max_delta. If the consecutive skip count ever reaches max_skips, the value will be let through regardless.

+ +

Definition at line 16 of file change_filter.h.

+

Constructor & Destructor Documentation

+ +

◆ ChangeFilter()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChangeFilter::ChangeFilter (float min_delta = 0.0,
float max_delta = 9999.0,
int max_skips = 99,
String config_path = "" 
)
+
+ +

Definition at line 11 of file change_filter.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String ChangeFilter::get_config_schema ()
+
+overridevirtual
+
+ +

Definition at line 47 of file change_filter.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void ChangeFilter::get_configuration (JsonObject & doc)
+
+overridevirtual
+
+ +

Definition at line 32 of file change_filter.cpp.

+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool ChangeFilter::set_configuration (const JsonObject & config)
+
+overridevirtual
+
+ +

Definition at line 49 of file change_filter.cpp.

+ +
+
+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ChangeFilter::set_input (float new_value,
uint8_t input_channel = 0 
)
+
+overridevirtual
+
+ +

Definition at line 21 of file change_filter.cpp.

+ +
+
+

Member Data Documentation

+ +

◆ max_delta

+ +
+
+ + + + + +
+ + + + +
float ChangeFilter::max_delta
+
+protected
+
+ +

Definition at line 28 of file change_filter.h.

+ +
+
+ +

◆ max_skips

+ +
+
+ + + + + +
+ + + + +
int ChangeFilter::max_skips
+
+protected
+
+ +

Definition at line 29 of file change_filter.h.

+ +
+
+ +

◆ min_delta

+ +
+
+ + + + + +
+ + + + +
float ChangeFilter::min_delta
+
+protected
+
+ +

Definition at line 27 of file change_filter.h.

+ +
+
+ +

◆ skips

+ +
+
+ + + + + +
+ + + + +
int ChangeFilter::skips
+
+protected
+
+ +

Definition at line 30 of file change_filter.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_change_filter.js b/docs/generated/docs/class_change_filter.js new file mode 100644 index 000000000..e2d0cb557 --- /dev/null +++ b/docs/generated/docs/class_change_filter.js @@ -0,0 +1,12 @@ +var class_change_filter = +[ + [ "ChangeFilter", "class_change_filter.html#ae7e753c0391e335c7b6cc4ec14bad7c9", null ], + [ "get_config_schema", "class_change_filter.html#a769403176db0e4a619811bbba603d597", null ], + [ "get_configuration", "class_change_filter.html#a92d946de57540d88deb54364a8827f7d", null ], + [ "set_configuration", "class_change_filter.html#a0bbe692080d7ee9a41fcd77a3f581ca9", null ], + [ "set_input", "class_change_filter.html#a48249b125e44834d6641484b49f3a877", null ], + [ "max_delta", "class_change_filter.html#a95afe5f733a86231157059b272b4295a", null ], + [ "max_skips", "class_change_filter.html#a3cac91e9ec0a56ae72ad4e0e27fef205", null ], + [ "min_delta", "class_change_filter.html#af9585e67bbf9636617127ef86f4ada81", null ], + [ "skips", "class_change_filter.html#ae51076f79fdfc36e34b8383a0e13e700", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_change_filter__inherit__graph.map b/docs/generated/docs/class_change_filter__inherit__graph.map new file mode 100644 index 000000000..6973e3441 --- /dev/null +++ b/docs/generated/docs/class_change_filter__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_change_filter__inherit__graph.md5 b/docs/generated/docs/class_change_filter__inherit__graph.md5 new file mode 100644 index 000000000..980842776 --- /dev/null +++ b/docs/generated/docs/class_change_filter__inherit__graph.md5 @@ -0,0 +1 @@ +aa76981e82fc1d0a23a645bb1da5c1a2 \ No newline at end of file diff --git a/docs/generated/docs/class_change_filter__inherit__graph.png b/docs/generated/docs/class_change_filter__inherit__graph.png new file mode 100644 index 000000000..371534ce6 Binary files /dev/null and b/docs/generated/docs/class_change_filter__inherit__graph.png differ diff --git a/docs/class_configurable-members.html b/docs/generated/docs/class_configurable-members.html similarity index 88% rename from docs/class_configurable-members.html rename to docs/generated/docs/class_configurable-members.html index 0574bb8ae..44d124a76 100644 --- a/docs/class_configurable-members.html +++ b/docs/generated/docs/class_configurable-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -97,7 +93,7 @@ config_pathConfigurable Configurable(String config_path)Configurable get_config_schema()Configurablevirtual - get_configuration(JsonBuffer &buf)Configurablevirtual + get_configuration(JsonObject &configObject)Configurablevirtual load_configuration()Configurableprotectedvirtual save_configuration()Configurablevirtual set_configuration(const JsonObject &config)Configurablevirtual @@ -106,9 +102,7 @@ diff --git a/docs/generated/docs/class_configurable.html b/docs/generated/docs/class_configurable.html new file mode 100644 index 000000000..62f4cb541 --- /dev/null +++ b/docs/generated/docs/class_configurable.html @@ -0,0 +1,455 @@ + + + + + + + +SensESP: Configurable Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <configurable.h>

+
+Inheritance diagram for Configurable:
+
+
Inheritance graph
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[legend]
+ + + + + + + + + + + + +

+Public Member Functions

 Configurable (String config_path)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
+ + + +

+Public Attributes

const String config_path
 
+ + + +

+Protected Member Functions

virtual void load_configuration ()
 
+

Detailed Description

+

A Configurable is any object that is capable of having configuration data that can be set remotely using a RESTful API, and can be persisted to the local file system.

+ +

Definition at line 15 of file configurable.h.

+

Constructor & Destructor Documentation

+ +

◆ Configurable()

+ +
+
+ + + + + + + + +
Configurable::Configurable (String config_path = "")
+
+

Create a configurable object who's configuration is saved using the specified config_path.

+
Parameters
+ + +
config_pathThe partial path used for the URL when configuring this object remotely with a browser. The config_path also represents the path to the local file where the configuration data is persisted. Given this, be sure to chose a path that is both valid for URLs as well as file names. A configuration path should always start with a forward slash. Leaving the config_path blank indicates that this object does not need or want configuration data support.
+
+
+ +

Definition at line 16 of file configurable.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String Configurable::get_config_schema ()
+
+virtual
+
+

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
+ +

Reimplemented in OneWireTemperature, WSClient, and Networking.

+ +

Definition at line 36 of file configurable.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void Configurable::get_configuration (JsonObject & configObject)
+
+virtual
+
+

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonDocument::as<JsonObject>() and returned.

+ +

Reimplemented in OneWireTemperature, WSClient, and Networking.

+ +

Definition at line 26 of file configurable.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + + + + + + + +
+ +
+
+ +

◆ load_configuration()

+ +
+
+ + + + + +
+ + + + + + + +
void Configurable::load_configuration ()
+
+protectedvirtual
+
+

Loads a configuration previously saved with save_configuration() and passes the configuration to set_configuration().

+ +

Definition at line 38 of file configurable.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + + + +
+ +
+
+ +

◆ save_configuration()

+ +
+
+ + + + + +
+ + + + + + + +
void Configurable::save_configuration ()
+
+virtual
+
+

Persists the configuration returned by get_configuration() to the local file system.

+ +

Definition at line 66 of file configurable.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + + + + + + + +
+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Configurable::set_configuration (const JsonObject & config)
+
+virtual
+
+

Sets the current state of local member variables using the data stored in config.

+ +

Reimplemented in OneWireTemperature, WSClient, and Networking.

+ +

Definition at line 31 of file configurable.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + + + +
+ +
+
+

Member Data Documentation

+ +

◆ config_path

+ +
+
+ + + + +
const String Configurable::config_path
+
+ +

Definition at line 31 of file configurable.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/class_configurable.js b/docs/generated/docs/class_configurable.js similarity index 86% rename from docs/class_configurable.js rename to docs/generated/docs/class_configurable.js index e470b47cd..9d5b7c7d1 100644 --- a/docs/class_configurable.js +++ b/docs/generated/docs/class_configurable.js @@ -2,7 +2,7 @@ var class_configurable = [ [ "Configurable", "class_configurable.html#a8972a439fb9b734ff68d27c699640f78", null ], [ "get_config_schema", "class_configurable.html#a73131c4e7dd8134f23a93de861e1c0e4", null ], - [ "get_configuration", "class_configurable.html#a787559a1a907f909d6088d2ec6825b44", null ], + [ "get_configuration", "class_configurable.html#a20b0c34bc7386994b6f24863c58a39e7", null ], [ "load_configuration", "class_configurable.html#ac2ba4044c81acc2fc6bf95cce411f6a4", null ], [ "save_configuration", "class_configurable.html#a657419f13060caa20c45a41935b9d53a", null ], [ "set_configuration", "class_configurable.html#a6e0281fe25cfbdf024bdb05147ffb52b", null ], diff --git a/docs/generated/docs/class_configurable__inherit__graph.map b/docs/generated/docs/class_configurable__inherit__graph.map new file mode 100644 index 000000000..c3a723385 --- /dev/null +++ b/docs/generated/docs/class_configurable__inherit__graph.map @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/class_configurable__inherit__graph.md5 b/docs/generated/docs/class_configurable__inherit__graph.md5 new file mode 100644 index 000000000..c471f2315 --- /dev/null +++ b/docs/generated/docs/class_configurable__inherit__graph.md5 @@ -0,0 +1 @@ +3ffcbc7d03f974e0543b5082bab28bc7 \ No newline at end of file diff --git a/docs/generated/docs/class_configurable__inherit__graph.png b/docs/generated/docs/class_configurable__inherit__graph.png new file mode 100644 index 000000000..60143e481 Binary files /dev/null and b/docs/generated/docs/class_configurable__inherit__graph.png differ diff --git a/docs/generated/docs/class_configurable_a20b0c34bc7386994b6f24863c58a39e7_icgraph.map b/docs/generated/docs/class_configurable_a20b0c34bc7386994b6f24863c58a39e7_icgraph.map new file mode 100644 index 000000000..5aa411c94 --- /dev/null +++ b/docs/generated/docs/class_configurable_a20b0c34bc7386994b6f24863c58a39e7_icgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/docs/generated/docs/class_configurable_a20b0c34bc7386994b6f24863c58a39e7_icgraph.md5 b/docs/generated/docs/class_configurable_a20b0c34bc7386994b6f24863c58a39e7_icgraph.md5 new file mode 100644 index 000000000..ccdda23e3 --- /dev/null +++ b/docs/generated/docs/class_configurable_a20b0c34bc7386994b6f24863c58a39e7_icgraph.md5 @@ -0,0 +1 @@ +d120d915b75ae2ad7a4d776acff5e129 \ No newline at end of file diff --git a/docs/generated/docs/class_configurable_a20b0c34bc7386994b6f24863c58a39e7_icgraph.png b/docs/generated/docs/class_configurable_a20b0c34bc7386994b6f24863c58a39e7_icgraph.png new file mode 100644 index 000000000..fc0d5f4f8 Binary files /dev/null and b/docs/generated/docs/class_configurable_a20b0c34bc7386994b6f24863c58a39e7_icgraph.png differ diff --git a/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.map b/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.map new file mode 100644 index 000000000..a12885328 --- /dev/null +++ b/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.md5 b/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.md5 new file mode 100644 index 000000000..012bee540 --- /dev/null +++ b/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.md5 @@ -0,0 +1 @@ +97ddf44da97607e6f06c03c75c019a67 \ No newline at end of file diff --git a/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.png b/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.png new file mode 100644 index 000000000..e61e64f44 Binary files /dev/null and b/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_cgraph.png differ diff --git a/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.map b/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.map new file mode 100644 index 000000000..8a6ad3280 --- /dev/null +++ b/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.md5 b/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.md5 new file mode 100644 index 000000000..b4c5c3f0e --- /dev/null +++ b/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.md5 @@ -0,0 +1 @@ +db86df232d247c944e4115270fb34d4d \ No newline at end of file diff --git a/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.png b/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.png new file mode 100644 index 000000000..8bce89471 Binary files /dev/null and b/docs/generated/docs/class_configurable_a657419f13060caa20c45a41935b9d53a_icgraph.png differ diff --git a/docs/generated/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.map b/docs/generated/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.map new file mode 100644 index 000000000..87cc9d5be --- /dev/null +++ b/docs/generated/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.md5 b/docs/generated/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.md5 new file mode 100644 index 000000000..482ebfd12 --- /dev/null +++ b/docs/generated/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.md5 @@ -0,0 +1 @@ +e8a8a767f765231d9edd5df3e0375097 \ No newline at end of file diff --git a/docs/generated/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.png b/docs/generated/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.png new file mode 100644 index 000000000..644982918 Binary files /dev/null and b/docs/generated/docs/class_configurable_a6e0281fe25cfbdf024bdb05147ffb52b_icgraph.png differ diff --git a/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.map b/docs/generated/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.map similarity index 100% rename from docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.map rename to docs/generated/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.map diff --git a/docs/generated/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.md5 b/docs/generated/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.md5 new file mode 100644 index 000000000..c25939dab --- /dev/null +++ b/docs/generated/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.md5 @@ -0,0 +1 @@ +9ac77b9f23f7a0c9c50d3e7e49ec517a \ No newline at end of file diff --git a/docs/generated/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.png b/docs/generated/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.png new file mode 100644 index 000000000..25b18bae8 Binary files /dev/null and b/docs/generated/docs/class_configurable_a73131c4e7dd8134f23a93de861e1c0e4_icgraph.png differ diff --git a/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.map b/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.map similarity index 100% rename from docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.map rename to docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.map diff --git a/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.md5 b/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.md5 new file mode 100644 index 000000000..663e196f2 --- /dev/null +++ b/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.md5 @@ -0,0 +1 @@ +dd7827a31d3efe76db4d786cc7a33a62 \ No newline at end of file diff --git a/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.png b/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.png new file mode 100644 index 000000000..c7d6162a4 Binary files /dev/null and b/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_cgraph.png differ diff --git a/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.map b/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.map new file mode 100644 index 000000000..cac407375 --- /dev/null +++ b/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.md5 b/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.md5 new file mode 100644 index 000000000..b8712a59e --- /dev/null +++ b/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.md5 @@ -0,0 +1 @@ +5f866e74911b48286563c0d9883c2338 \ No newline at end of file diff --git a/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.png b/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.png new file mode 100644 index 000000000..584202a19 Binary files /dev/null and b/docs/generated/docs/class_configurable_ac2ba4044c81acc2fc6bf95cce411f6a4_icgraph.png differ diff --git a/docs/generated/docs/class_curve_interpolator-members.html b/docs/generated/docs/class_curve_interpolator-members.html new file mode 100644 index 000000000..8ca5fa1f1 --- /dev/null +++ b/docs/generated/docs/class_curve_interpolator-members.html @@ -0,0 +1,114 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
CurveInterpolator Member List
+
+
+ +

This is the complete list of members for CurveInterpolator, including all inherited members.

+ + + + + + + + + + + + + +
add_sample(const Sample &new_sample)CurveInterpolator
addSample(const Sample &new_sample)CurveInterpolatorinline
clear_samples()CurveInterpolator
clearSamples()CurveInterpolatorinline
connectFrom(ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)Transform< float, float >inline
CurveInterpolator(std::set< Sample > *defaults=NULL, String config_path="")CurveInterpolator
get_config_schema() overrideCurveInterpolatorvirtual
get_configuration(JsonObject &doc) overrideCurveInterpolatorvirtual
set_configuration(const JsonObject &config) overrideCurveInterpolatorvirtual
set_input(float input, uint8_t input_channel=0) override finalCurveInterpolator
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
+
+ + + + diff --git a/docs/generated/docs/class_curve_interpolator.html b/docs/generated/docs/class_curve_interpolator.html new file mode 100644 index 000000000..96d1381ab --- /dev/null +++ b/docs/generated/docs/class_curve_interpolator.html @@ -0,0 +1,442 @@ + + + + + + + +SensESP: CurveInterpolator Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
CurveInterpolator Class Reference
+
+
+ +

#include <curveinterpolator.h>

+
+Inheritance diagram for CurveInterpolator:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + +

+Classes

class  Sample
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 CurveInterpolator (std::set< Sample > *defaults=NULL, String config_path="")
 
void set_input (float input, uint8_t input_channel=0) override final
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
void clear_samples ()
 
void clearSamples ()
 
void add_sample (const Sample &new_sample)
 
void addSample (const Sample &new_sample)
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
+

Detailed Description

+

CurveInterpolator uses a collection of input/output samples that approximate a non-linear curve. The output is the linear interpolation between the two sample points that the input falls between. It is used primarily for non-linear analog gauges such as temperature gauges and oil pressure gauges, which get their input from analog sensors that are variable resistors.

+ +

Definition at line 14 of file curveinterpolator.h.

+

Constructor & Destructor Documentation

+ +

◆ CurveInterpolator()

+ +
+
+ + + + + + + + + + + + + + + + + + +
CurveInterpolator::CurveInterpolator (std::set< Sample > * defaults = NULL,
String config_path = "" 
)
+
+ +

Definition at line 13 of file curveinterpolator.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ add_sample()

+ +
+
+ + + + + + + + +
void CurveInterpolator::add_sample (const Samplenew_sample)
+
+ +

Definition at line 114 of file curveinterpolator.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ addSample()

+ +
+
+ + + + + +
+ + + + + + + + +
void CurveInterpolator::addSample (const Samplenew_sample)
+
+inline
+
+ +

Definition at line 52 of file curveinterpolator.h.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ clear_samples()

+ +
+
+ + + + + + + +
void CurveInterpolator::clear_samples ()
+
+ +

Definition at line 112 of file curveinterpolator.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ clearSamples()

+ +
+
+ + + + + +
+ + + + + + + +
void CurveInterpolator::clearSamples ()
+
+inline
+
+ +

Definition at line 45 of file curveinterpolator.h.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String CurveInterpolator::get_config_schema ()
+
+overridevirtual
+
+ +

Definition at line 85 of file curveinterpolator.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void CurveInterpolator::get_configuration (JsonObject & doc)
+
+overridevirtual
+
+ +

Definition at line 61 of file curveinterpolator.cpp.

+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool CurveInterpolator::set_configuration (const JsonObject & config)
+
+overridevirtual
+
+ +

Definition at line 87 of file curveinterpolator.cpp.

+ +
+
+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void CurveInterpolator::set_input (float input,
uint8_t input_channel = 0 
)
+
+finaloverride
+
+ +

Definition at line 25 of file curveinterpolator.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_curve_interpolator.js b/docs/generated/docs/class_curve_interpolator.js new file mode 100644 index 000000000..f9daff045 --- /dev/null +++ b/docs/generated/docs/class_curve_interpolator.js @@ -0,0 +1,13 @@ +var class_curve_interpolator = +[ + [ "Sample", "class_curve_interpolator_1_1_sample.html", "class_curve_interpolator_1_1_sample" ], + [ "CurveInterpolator", "class_curve_interpolator.html#a09bdf144307f1264c36d5afaea5c96a3", null ], + [ "add_sample", "class_curve_interpolator.html#a938e1bdc8256ef255c27ffc65c8360b7", null ], + [ "addSample", "class_curve_interpolator.html#a263eaf111e6b5f47e72c6e13d77dea99", null ], + [ "clear_samples", "class_curve_interpolator.html#a89d37139f9b601e8a1c74335811c2af2", null ], + [ "clearSamples", "class_curve_interpolator.html#afb1dbb8e85015e2909dff8495875f8f5", null ], + [ "get_config_schema", "class_curve_interpolator.html#a6f9c593782d05c95ba92810b8f70f287", null ], + [ "get_configuration", "class_curve_interpolator.html#ab375c3b1d191900f1c5561d87ad634cb", null ], + [ "set_configuration", "class_curve_interpolator.html#acfda195c475a261d2e2a3af365fd6c19", null ], + [ "set_input", "class_curve_interpolator.html#af2ce224bb3f29245ea8d90cee0c5bdb6", null ] +]; \ No newline at end of file diff --git a/docs/class_curve_interpolator_1_1_sample-members.html b/docs/generated/docs/class_curve_interpolator_1_1_sample-members.html similarity index 92% rename from docs/class_curve_interpolator_1_1_sample-members.html rename to docs/generated/docs/class_curve_interpolator_1_1_sample-members.html index fa9c7a4b2..6a2357a19 100644 --- a/docs/class_curve_interpolator_1_1_sample-members.html +++ b/docs/generated/docs/class_curve_interpolator_1_1_sample-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -105,9 +101,7 @@ diff --git a/docs/class_curve_interpolator_1_1_sample.html b/docs/generated/docs/class_curve_interpolator_1_1_sample.html similarity index 95% rename from docs/class_curve_interpolator_1_1_sample.html rename to docs/generated/docs/class_curve_interpolator_1_1_sample.html index fd0d41ba2..35b2fc6a9 100644 --- a/docs/class_curve_interpolator_1_1_sample.html +++ b/docs/generated/docs/class_curve_interpolator_1_1_sample.html @@ -3,7 +3,7 @@ - + SensESP: CurveInterpolator::Sample Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -169,7 +165,7 @@

-

Definition at line 8 of file curveinterpolator.cpp.

+

Definition at line 7 of file curveinterpolator.cpp.

@@ -189,7 +185,7 @@

-

Definition at line 11 of file curveinterpolator.cpp.

+

Definition at line 10 of file curveinterpolator.cpp.

@@ -275,9 +271,7 @@

diff --git a/docs/class_curve_interpolator_1_1_sample.js b/docs/generated/docs/class_curve_interpolator_1_1_sample.js similarity index 100% rename from docs/class_curve_interpolator_1_1_sample.js rename to docs/generated/docs/class_curve_interpolator_1_1_sample.js diff --git a/docs/generated/docs/class_curve_interpolator__inherit__graph.map b/docs/generated/docs/class_curve_interpolator__inherit__graph.map new file mode 100644 index 000000000..b8ee073c3 --- /dev/null +++ b/docs/generated/docs/class_curve_interpolator__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_curve_interpolator__inherit__graph.md5 b/docs/generated/docs/class_curve_interpolator__inherit__graph.md5 new file mode 100644 index 000000000..2e925ac97 --- /dev/null +++ b/docs/generated/docs/class_curve_interpolator__inherit__graph.md5 @@ -0,0 +1 @@ +52d8e96c5acf592b3ab3dab615f16373 \ No newline at end of file diff --git a/docs/generated/docs/class_curve_interpolator__inherit__graph.png b/docs/generated/docs/class_curve_interpolator__inherit__graph.png new file mode 100644 index 000000000..2b34db463 Binary files /dev/null and b/docs/generated/docs/class_curve_interpolator__inherit__graph.png differ diff --git a/docs/generated/docs/class_curve_interpolator_a263eaf111e6b5f47e72c6e13d77dea99_cgraph.map b/docs/generated/docs/class_curve_interpolator_a263eaf111e6b5f47e72c6e13d77dea99_cgraph.map new file mode 100644 index 000000000..70291f95e --- /dev/null +++ b/docs/generated/docs/class_curve_interpolator_a263eaf111e6b5f47e72c6e13d77dea99_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_curve_interpolator_a263eaf111e6b5f47e72c6e13d77dea99_cgraph.md5 b/docs/generated/docs/class_curve_interpolator_a263eaf111e6b5f47e72c6e13d77dea99_cgraph.md5 new file mode 100644 index 000000000..07b5314fa --- /dev/null +++ b/docs/generated/docs/class_curve_interpolator_a263eaf111e6b5f47e72c6e13d77dea99_cgraph.md5 @@ -0,0 +1 @@ +4dd142180222b54b9282796aeebe4a5f \ No newline at end of file diff --git a/docs/generated/docs/class_curve_interpolator_a263eaf111e6b5f47e72c6e13d77dea99_cgraph.png b/docs/generated/docs/class_curve_interpolator_a263eaf111e6b5f47e72c6e13d77dea99_cgraph.png new file mode 100644 index 000000000..c5ad6f632 Binary files /dev/null and b/docs/generated/docs/class_curve_interpolator_a263eaf111e6b5f47e72c6e13d77dea99_cgraph.png differ diff --git a/docs/generated/docs/class_curve_interpolator_a89d37139f9b601e8a1c74335811c2af2_icgraph.map b/docs/generated/docs/class_curve_interpolator_a89d37139f9b601e8a1c74335811c2af2_icgraph.map new file mode 100644 index 000000000..916d1f686 --- /dev/null +++ b/docs/generated/docs/class_curve_interpolator_a89d37139f9b601e8a1c74335811c2af2_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_curve_interpolator_a89d37139f9b601e8a1c74335811c2af2_icgraph.md5 b/docs/generated/docs/class_curve_interpolator_a89d37139f9b601e8a1c74335811c2af2_icgraph.md5 new file mode 100644 index 000000000..ee8fee4e2 --- /dev/null +++ b/docs/generated/docs/class_curve_interpolator_a89d37139f9b601e8a1c74335811c2af2_icgraph.md5 @@ -0,0 +1 @@ +fe40b9dcecd0d723c65f3f21611fb91c \ No newline at end of file diff --git a/docs/generated/docs/class_curve_interpolator_a89d37139f9b601e8a1c74335811c2af2_icgraph.png b/docs/generated/docs/class_curve_interpolator_a89d37139f9b601e8a1c74335811c2af2_icgraph.png new file mode 100644 index 000000000..14d8ddf71 Binary files /dev/null and b/docs/generated/docs/class_curve_interpolator_a89d37139f9b601e8a1c74335811c2af2_icgraph.png differ diff --git a/docs/generated/docs/class_curve_interpolator_a938e1bdc8256ef255c27ffc65c8360b7_icgraph.map b/docs/generated/docs/class_curve_interpolator_a938e1bdc8256ef255c27ffc65c8360b7_icgraph.map new file mode 100644 index 000000000..cf23f0ad4 --- /dev/null +++ b/docs/generated/docs/class_curve_interpolator_a938e1bdc8256ef255c27ffc65c8360b7_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_curve_interpolator_a938e1bdc8256ef255c27ffc65c8360b7_icgraph.md5 b/docs/generated/docs/class_curve_interpolator_a938e1bdc8256ef255c27ffc65c8360b7_icgraph.md5 new file mode 100644 index 000000000..e26fcd773 --- /dev/null +++ b/docs/generated/docs/class_curve_interpolator_a938e1bdc8256ef255c27ffc65c8360b7_icgraph.md5 @@ -0,0 +1 @@ +e8f6e43c4cd3059ebfe88d218dca3236 \ No newline at end of file diff --git a/docs/generated/docs/class_curve_interpolator_a938e1bdc8256ef255c27ffc65c8360b7_icgraph.png b/docs/generated/docs/class_curve_interpolator_a938e1bdc8256ef255c27ffc65c8360b7_icgraph.png new file mode 100644 index 000000000..71b9e8853 Binary files /dev/null and b/docs/generated/docs/class_curve_interpolator_a938e1bdc8256ef255c27ffc65c8360b7_icgraph.png differ diff --git a/docs/generated/docs/class_curve_interpolator_afb1dbb8e85015e2909dff8495875f8f5_cgraph.map b/docs/generated/docs/class_curve_interpolator_afb1dbb8e85015e2909dff8495875f8f5_cgraph.map new file mode 100644 index 000000000..3f28e27ae --- /dev/null +++ b/docs/generated/docs/class_curve_interpolator_afb1dbb8e85015e2909dff8495875f8f5_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_curve_interpolator_afb1dbb8e85015e2909dff8495875f8f5_cgraph.md5 b/docs/generated/docs/class_curve_interpolator_afb1dbb8e85015e2909dff8495875f8f5_cgraph.md5 new file mode 100644 index 000000000..dfbdc6e61 --- /dev/null +++ b/docs/generated/docs/class_curve_interpolator_afb1dbb8e85015e2909dff8495875f8f5_cgraph.md5 @@ -0,0 +1 @@ +8dd535a1e658d396d80f76245f3784a2 \ No newline at end of file diff --git a/docs/generated/docs/class_curve_interpolator_afb1dbb8e85015e2909dff8495875f8f5_cgraph.png b/docs/generated/docs/class_curve_interpolator_afb1dbb8e85015e2909dff8495875f8f5_cgraph.png new file mode 100644 index 000000000..c63403f95 Binary files /dev/null and b/docs/generated/docs/class_curve_interpolator_afb1dbb8e85015e2909dff8495875f8f5_cgraph.png differ diff --git a/docs/generated/docs/class_dallas_temperature_sensors-members.html b/docs/generated/docs/class_dallas_temperature_sensors-members.html new file mode 100644 index 000000000..9daf38baf --- /dev/null +++ b/docs/generated/docs/class_dallas_temperature_sensors-members.html @@ -0,0 +1,123 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
DallasTemperatureSensors Member List
+
+
+ +

This is the complete list of members for DallasTemperatureSensors, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
DallasTemperatureSensors(int pin, String config_path="")DallasTemperatureSensors
enable() override finalDallasTemperatureSensorsinlinevirtual
Enable(uint8_t priority=0)Enable
enable_all()Enablestatic
enableAll()Enableinlinestatic
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_next_address(OWDevAddr *addr)DallasTemperatureSensors
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
register_address(const OWDevAddr &addr)DallasTemperatureSensors
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
sensorsDallasTemperatureSensors
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
+
+ + + + diff --git a/docs/class_dallas_temperature_sensors.html b/docs/generated/docs/class_dallas_temperature_sensors.html similarity index 82% rename from docs/class_dallas_temperature_sensors.html rename to docs/generated/docs/class_dallas_temperature_sensors.html index 934d6dad2..eea6146ed 100644 --- a/docs/class_dallas_temperature_sensors.html +++ b/docs/generated/docs/class_dallas_temperature_sensors.html @@ -3,7 +3,7 @@ - + SensESP: DallasTemperatureSensors Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -100,13 +96,13 @@
Inheritance diagram for DallasTemperatureSensors:
-
Inheritance graph
- - - - - - +
Inheritance graph
+ + + + + +
[legend]
@@ -131,8 +127,8 @@ - - + + @@ -142,14 +138,10 @@ - - - - - - - - + + + +
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
@@ -165,14 +157,13 @@ - - + + + + - - -

Public Attributes

static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
static void enable_all ()
 
static void enableAll ()
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 

Detailed Description

@@ -204,14 +195,14 @@

-

Definition at line 34 of file onewire_temperature.cpp.

+

Definition at line 31 of file onewire_temperature.cpp.

Here is the call graph for this function:
-
- - - +
+ + +
@@ -264,7 +255,7 @@

-

Definition at line 83 of file onewire_temperature.cpp.

+

Definition at line 80 of file onewire_temperature.cpp.

@@ -284,7 +275,7 @@

-

Definition at line 67 of file onewire_temperature.cpp.

+

Definition at line 64 of file onewire_temperature.cpp.

@@ -315,9 +306,7 @@

diff --git a/docs/class_dallas_temperature_sensors.js b/docs/generated/docs/class_dallas_temperature_sensors.js similarity index 100% rename from docs/class_dallas_temperature_sensors.js rename to docs/generated/docs/class_dallas_temperature_sensors.js diff --git a/docs/class_dallas_temperature_sensors__inherit__graph.map b/docs/generated/docs/class_dallas_temperature_sensors__inherit__graph.map similarity index 100% rename from docs/class_dallas_temperature_sensors__inherit__graph.map rename to docs/generated/docs/class_dallas_temperature_sensors__inherit__graph.map diff --git a/docs/generated/docs/class_dallas_temperature_sensors__inherit__graph.md5 b/docs/generated/docs/class_dallas_temperature_sensors__inherit__graph.md5 new file mode 100644 index 000000000..46162b291 --- /dev/null +++ b/docs/generated/docs/class_dallas_temperature_sensors__inherit__graph.md5 @@ -0,0 +1 @@ +2523d53585d2e342165e1b5ffd73c4e2 \ No newline at end of file diff --git a/docs/generated/docs/class_dallas_temperature_sensors__inherit__graph.png b/docs/generated/docs/class_dallas_temperature_sensors__inherit__graph.png new file mode 100644 index 000000000..59214ce16 Binary files /dev/null and b/docs/generated/docs/class_dallas_temperature_sensors__inherit__graph.png differ diff --git a/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.map b/docs/generated/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.map similarity index 100% rename from docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.map rename to docs/generated/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.map diff --git a/docs/generated/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.md5 b/docs/generated/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.md5 new file mode 100644 index 000000000..c8c473d64 --- /dev/null +++ b/docs/generated/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.md5 @@ -0,0 +1 @@ +9be567e29c515fd2cbeaac7dfd73ccbc \ No newline at end of file diff --git a/docs/generated/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.png b/docs/generated/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.png new file mode 100644 index 000000000..47be395e3 Binary files /dev/null and b/docs/generated/docs/class_dallas_temperature_sensors_a778aa28e0e329028f2811c5ed71cb11d_cgraph.png differ diff --git a/docs/generated/docs/class_debounce-members.html b/docs/generated/docs/class_debounce-members.html new file mode 100644 index 000000000..124a3e30e --- /dev/null +++ b/docs/generated/docs/class_debounce-members.html @@ -0,0 +1,109 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Debounce Member List
+
+
+ +

This is the complete list of members for Debounce, including all inherited members.

+ + + + + + + + +
connectFrom(ValueProducer< T > *producer0, ValueProducer< T > *producer1=NULL, ValueProducer< T > *producer2=NULL, ValueProducer< T > *producer3=NULL, ValueProducer< T > *producer4=NULL)Transform< T, T >inline
Debounce(int ms_min_delay=200, String config_path="")Debounce
last_timeDebounceprotected
ms_min_delayDebounceprotected
set_input(bool new_value, uint8_t input_channel=0) overrideDebouncevirtual
SymmetricTransform(String config_path="")SymmetricTransform< T >inline
Transform(String config_path="")Transform< T, T >inline
+
+ + + + diff --git a/docs/generated/docs/class_debounce.html b/docs/generated/docs/class_debounce.html new file mode 100644 index 000000000..20c9b96ce --- /dev/null +++ b/docs/generated/docs/class_debounce.html @@ -0,0 +1,266 @@ + + + + + + + +SensESP: Debounce Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Debounce Class Reference
+
+
+ +

#include <debounce.h>

+
+Inheritance diagram for Debounce:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + +

+Public Member Functions

 Debounce (int ms_min_delay=200, String config_path="")
 
virtual void set_input (bool new_value, uint8_t input_channel=0) override
 
- Public Member Functions inherited from SymmetricTransform< T >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< T, T >
 Transform (String config_path="")
 
Transform< T, T > * connectFrom (ValueProducer< T > *producer0, ValueProducer< T > *producer1=NULL, ValueProducer< T > *producer2=NULL, ValueProducer< T > *producer3=NULL, ValueProducer< T > *producer4=NULL)
 
+ + + + + +

+Protected Attributes

unsigned long last_time
 
int ms_min_delay
 
+

Detailed Description

+

Debounce is a boolean passthrough transform that will only accept value changes that are sufficiently spaced apart to be passed on to the next consumer.

+ +

Definition at line 11 of file debounce.h.

+

Constructor & Destructor Documentation

+ +

◆ Debounce()

+ +
+
+ + + + + + + + + + + + + + + + + + +
Debounce::Debounce (int ms_min_delay = 200,
String config_path = "" 
)
+
+ +

Definition at line 3 of file debounce.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Debounce::set_input (bool new_value,
uint8_t input_channel = 0 
)
+
+overridevirtual
+
+ +

Definition at line 8 of file debounce.cpp.

+ +
+
+

Member Data Documentation

+ +

◆ last_time

+ +
+
+ + + + + +
+ + + + +
unsigned long Debounce::last_time
+
+protected
+
+ +

Definition at line 18 of file debounce.h.

+ +
+
+ +

◆ ms_min_delay

+ +
+
+ + + + + +
+ + + + +
int Debounce::ms_min_delay
+
+protected
+
+ +

Definition at line 19 of file debounce.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_debounce.js b/docs/generated/docs/class_debounce.js new file mode 100644 index 000000000..3336802cc --- /dev/null +++ b/docs/generated/docs/class_debounce.js @@ -0,0 +1,7 @@ +var class_debounce = +[ + [ "Debounce", "class_debounce.html#ade9ea26c6050fc08d43e0758c2a572b2", null ], + [ "set_input", "class_debounce.html#a4101506b2f5c17184e976f2fb43b1b1b", null ], + [ "last_time", "class_debounce.html#a9d6da3eb69ba8fe8ef73a564cfad2e21", null ], + [ "ms_min_delay", "class_debounce.html#a446259f6501c61e5188dda23f420dbfe", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_debounce__inherit__graph.map b/docs/generated/docs/class_debounce__inherit__graph.map new file mode 100644 index 000000000..04e67988b --- /dev/null +++ b/docs/generated/docs/class_debounce__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_debounce__inherit__graph.md5 b/docs/generated/docs/class_debounce__inherit__graph.md5 new file mode 100644 index 000000000..0929e6032 --- /dev/null +++ b/docs/generated/docs/class_debounce__inherit__graph.md5 @@ -0,0 +1 @@ +4b803336921a70708e0cf00765504652 \ No newline at end of file diff --git a/docs/generated/docs/class_debounce__inherit__graph.png b/docs/generated/docs/class_debounce__inherit__graph.png new file mode 100644 index 000000000..4ba373ff8 Binary files /dev/null and b/docs/generated/docs/class_debounce__inherit__graph.png differ diff --git a/docs/generated/docs/class_difference-members.html b/docs/generated/docs/class_difference-members.html new file mode 100644 index 000000000..0a57ef5e9 --- /dev/null +++ b/docs/generated/docs/class_difference-members.html @@ -0,0 +1,110 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Difference Member List
+
+
+ +

This is the complete list of members for Difference, including all inherited members.

+ + + + + + + + + +
connectFrom(ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)Transform< float, float >inline
Difference(float k1, float k2, String config_path="")Difference
get_config_schema() overrideDifferencevirtual
get_configuration(JsonObject &doc) overrideDifferencevirtual
set_configuration(const JsonObject &config) overrideDifferencevirtual
set_input(float input, uint8_t inputChannel) overrideDifferencevirtual
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
+
+ + + + diff --git a/docs/generated/docs/class_difference.html b/docs/generated/docs/class_difference.html new file mode 100644 index 000000000..a2c7a80f6 --- /dev/null +++ b/docs/generated/docs/class_difference.html @@ -0,0 +1,303 @@ + + + + + + + +SensESP: Difference Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Difference Class Reference
+
+
+ +

#include <difference.h>

+
+Inheritance diagram for Difference:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Difference (float k1, float k2, String config_path="")
 
virtual void set_input (float input, uint8_t inputChannel) override
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
+

Detailed Description

+
+

Definition at line 7 of file difference.h.

+

Constructor & Destructor Documentation

+ +

◆ Difference()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Difference::Difference (float k1,
float k2,
String config_path = "" 
)
+
+ +

Definition at line 5 of file difference.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String Difference::get_config_schema ()
+
+overridevirtual
+
+ +

Definition at line 35 of file difference.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void Difference::get_configuration (JsonObject & doc)
+
+overridevirtual
+
+ +

Definition at line 20 of file difference.cpp.

+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Difference::set_configuration (const JsonObject & config)
+
+overridevirtual
+
+ +

Definition at line 37 of file difference.cpp.

+ +
+
+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Difference::set_input (float input,
uint8_t inputChannel 
)
+
+overridevirtual
+
+ +

Definition at line 10 of file difference.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/class_difference.js b/docs/generated/docs/class_difference.js similarity index 80% rename from docs/class_difference.js rename to docs/generated/docs/class_difference.js index b3a36865f..7383c4b3c 100644 --- a/docs/class_difference.js +++ b/docs/generated/docs/class_difference.js @@ -2,7 +2,7 @@ var class_difference = [ [ "Difference", "class_difference.html#ab37fbe4fe6592f7591a124c1b90f8f48", null ], [ "get_config_schema", "class_difference.html#ac5b6559e3820f2f58bed5d120a440a55", null ], - [ "get_configuration", "class_difference.html#a70f6832fd0b14c5eb5c2c05188757b72", null ], + [ "get_configuration", "class_difference.html#ae36f623e39d0dceb670ae023e3ce1f52", null ], [ "set_configuration", "class_difference.html#a57e134a00cd6688d147f93c662520040", null ], [ "set_input", "class_difference.html#a432ef87751c6bee8e5dadc610dfcb4ff", null ] ]; \ No newline at end of file diff --git a/docs/generated/docs/class_difference__inherit__graph.map b/docs/generated/docs/class_difference__inherit__graph.map new file mode 100644 index 000000000..1dcb77f40 --- /dev/null +++ b/docs/generated/docs/class_difference__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_difference__inherit__graph.md5 b/docs/generated/docs/class_difference__inherit__graph.md5 new file mode 100644 index 000000000..159e029c9 --- /dev/null +++ b/docs/generated/docs/class_difference__inherit__graph.md5 @@ -0,0 +1 @@ +6a5939573e4011e62de832c054298bbe \ No newline at end of file diff --git a/docs/generated/docs/class_difference__inherit__graph.png b/docs/generated/docs/class_difference__inherit__graph.png new file mode 100644 index 000000000..a7dc50bea Binary files /dev/null and b/docs/generated/docs/class_difference__inherit__graph.png differ diff --git a/docs/generated/docs/class_digital_input-members.html b/docs/generated/docs/class_digital_input-members.html new file mode 100644 index 000000000..7cf8ecedd --- /dev/null +++ b/docs/generated/docs/class_digital_input-members.html @@ -0,0 +1,122 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
DigitalInput Member List
+
+
+ +

This is the complete list of members for DigitalInput, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
DigitalInput(uint8_t pin, int pin_mode, int interrupt_type, String config_path="")DigitalInput
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
interrupt_typeDigitalInputprotected
load_configuration()Configurableprotectedvirtual
notify()Observable
pinDigitalInputprotected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
+
+ + + + diff --git a/docs/class_digital_input.html b/docs/generated/docs/class_digital_input.html similarity index 82% rename from docs/class_digital_input.html rename to docs/generated/docs/class_digital_input.html index 628b11b03..134992264 100644 --- a/docs/class_digital_input.html +++ b/docs/generated/docs/class_digital_input.html @@ -3,7 +3,7 @@ - + SensESP: DigitalInput Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -100,15 +96,15 @@
Inheritance diagram for DigitalInput:
-
Inheritance graph
- - - - - - - - +
Inheritance graph
+ + + + + + + +
[legend]
@@ -127,8 +123,8 @@ - - + + @@ -140,14 +136,10 @@ - - - - - - - - + + + +
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
@@ -155,9 +147,6 @@ - - -

Protected Attributes

 
int interrupt_type
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
@@ -165,8 +154,10 @@ - - + + + + @@ -279,9 +270,7 @@

diff --git a/docs/class_digital_input.js b/docs/generated/docs/class_digital_input.js similarity index 100% rename from docs/class_digital_input.js rename to docs/generated/docs/class_digital_input.js diff --git a/docs/class_digital_input__inherit__graph.map b/docs/generated/docs/class_digital_input__inherit__graph.map similarity index 100% rename from docs/class_digital_input__inherit__graph.map rename to docs/generated/docs/class_digital_input__inherit__graph.map diff --git a/docs/generated/docs/class_digital_input__inherit__graph.md5 b/docs/generated/docs/class_digital_input__inherit__graph.md5 new file mode 100644 index 000000000..c110b3c23 --- /dev/null +++ b/docs/generated/docs/class_digital_input__inherit__graph.md5 @@ -0,0 +1 @@ +34ee08c3cbc2c52b441af2fa2fea4c65 \ No newline at end of file diff --git a/docs/generated/docs/class_digital_input__inherit__graph.png b/docs/generated/docs/class_digital_input__inherit__graph.png new file mode 100644 index 000000000..642f3629b Binary files /dev/null and b/docs/generated/docs/class_digital_input__inherit__graph.png differ diff --git a/docs/generated/docs/class_digital_input_counter-members.html b/docs/generated/docs/class_digital_input_counter-members.html new file mode 100644 index 000000000..85cd9b6cb --- /dev/null +++ b/docs/generated/docs/class_digital_input_counter-members.html @@ -0,0 +1,127 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+

Additional Inherited Members

static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
+ + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
DigitalInputCounter Member List
+
+
+ +

This is the complete list of members for DigitalInputCounter, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< int > *consumer, uint8_t input_channel=0)ValueProducer< int >inline
connect_to(Transform< int, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< int >inline
connectTo(ValueConsumer< int > *consumer, uint8_t input_channel=0)ValueProducer< int >inline
connectTo(Transform< int, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< int >inline
DigitalInput(uint8_t pin, int pin_mode, int interrupt_type, String config_path="")DigitalInput
DigitalInputCounter(uint8_t pin, int pin_mode, int interrupt_type, uint read_delay, String config_path="")DigitalInputCounter
enable() override finalDigitalInputCountervirtual
Enable(uint8_t priority=0)Enable
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< int >inlinevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
interrupt_typeDigitalInputprotected
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< int >protected
pinDigitalInputprotected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_priority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< int >inline
+
+ + + + diff --git a/docs/class_digital_input_counter.html b/docs/generated/docs/class_digital_input_counter.html similarity index 81% rename from docs/class_digital_input_counter.html rename to docs/generated/docs/class_digital_input_counter.html index b6c7a1de3..51049ffd0 100644 --- a/docs/class_digital_input_counter.html +++ b/docs/generated/docs/class_digital_input_counter.html @@ -3,7 +3,7 @@ - + SensESP: DigitalInputCounter Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -99,15 +95,15 @@
Inheritance diagram for DigitalInputCounter:
-
Inheritance graph
- - - - - - - - +
Inheritance graph
+ + + + + + + +
[legend]
@@ -136,23 +132,23 @@ - - - - - - - - + + + + - - - - + + + + + + + +
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< int >
 ValueProducer ()
 
virtual const int & get ()
 
void connectTo (ValueConsumer< int > *pConsumer, uint8_t inputChannel=0)
 
Transform< int, T2 > * connectTo (Transform< int, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
void connect_to (ValueConsumer< int > *consumer, uint8_t input_channel=0)
 
Transform< int, T2 > * connect_to (Transform< int, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< int > *consumer, uint8_t input_channel=0)
 
Transform< int, T2 > * connectTo (Transform< int, T2 > *consumer_producer, uint8_t input_channel=0)
 
@@ -160,8 +156,10 @@ - - + + + + @@ -173,16 +171,13 @@ - - -

Additional Inherited Members

static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
 
int interrupt_type
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< int >
int output
 

Detailed Description

-

Definition at line 31 of file digital_input.h.

+

Definition at line 34 of file digital_input.h.

Constructor & Destructor Documentation

◆ DigitalInputCounter()

@@ -228,7 +223,7 @@

-

Definition at line 41 of file digital_input.cpp.

+

Definition at line 53 of file digital_input.cpp.

@@ -259,14 +254,14 @@

Enable.

-

Definition at line 51 of file digital_input.cpp.

+

Definition at line 62 of file digital_input.cpp.

Here is the call graph for this function:
-
- - - +
+ + +
@@ -282,9 +277,7 @@

diff --git a/docs/class_digital_input_counter.js b/docs/generated/docs/class_digital_input_counter.js similarity index 100% rename from docs/class_digital_input_counter.js rename to docs/generated/docs/class_digital_input_counter.js diff --git a/docs/generated/docs/class_digital_input_counter__inherit__graph.map b/docs/generated/docs/class_digital_input_counter__inherit__graph.map new file mode 100644 index 000000000..a7232e74e --- /dev/null +++ b/docs/generated/docs/class_digital_input_counter__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_digital_input_counter__inherit__graph.md5 b/docs/generated/docs/class_digital_input_counter__inherit__graph.md5 new file mode 100644 index 000000000..305319b96 --- /dev/null +++ b/docs/generated/docs/class_digital_input_counter__inherit__graph.md5 @@ -0,0 +1 @@ +e51d7bb1e5b299f1ad3a159298fad745 \ No newline at end of file diff --git a/docs/generated/docs/class_digital_input_counter__inherit__graph.png b/docs/generated/docs/class_digital_input_counter__inherit__graph.png new file mode 100644 index 000000000..c22f04150 Binary files /dev/null and b/docs/generated/docs/class_digital_input_counter__inherit__graph.png differ diff --git a/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.map b/docs/generated/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.map similarity index 100% rename from docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.map rename to docs/generated/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.map diff --git a/docs/generated/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.md5 b/docs/generated/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.md5 new file mode 100644 index 000000000..df02288fc --- /dev/null +++ b/docs/generated/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.md5 @@ -0,0 +1 @@ +2333f10c435a0e87f10831b910ebe2da \ No newline at end of file diff --git a/docs/generated/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.png b/docs/generated/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.png new file mode 100644 index 000000000..821a8ee03 Binary files /dev/null and b/docs/generated/docs/class_digital_input_counter_a9848278592225d90ff71b99ce940771e_cgraph.png differ diff --git a/docs/generated/docs/class_digital_input_value-members.html b/docs/generated/docs/class_digital_input_value-members.html new file mode 100644 index 000000000..32a1d75ae --- /dev/null +++ b/docs/generated/docs/class_digital_input_value-members.html @@ -0,0 +1,127 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
DigitalInputValue Member List
+
+
+ +

This is the complete list of members for DigitalInputValue, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< int > *consumer, uint8_t input_channel=0)ValueProducer< int >inline
connect_to(Transform< int, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< int >inline
connectTo(ValueConsumer< int > *consumer, uint8_t input_channel=0)ValueProducer< int >inline
connectTo(Transform< int, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< int >inline
DigitalInput(uint8_t pin, int pin_mode, int interrupt_type, String config_path="")DigitalInput
DigitalInputValue(uint8_t pin, int pin_mode, int interrupt_type, int read_delay=1000, String config_path="")DigitalInputValue
enable() override finalDigitalInputValuevirtual
Enable(uint8_t priority=0)Enable
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< int >inlinevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
interrupt_typeDigitalInputprotected
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< int >protected
pinDigitalInputprotected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_priority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< int >inline
+
+ + + + diff --git a/docs/generated/docs/class_digital_input_value.html b/docs/generated/docs/class_digital_input_value.html new file mode 100644 index 000000000..cac633d96 --- /dev/null +++ b/docs/generated/docs/class_digital_input_value.html @@ -0,0 +1,284 @@ + + + + + + + +SensESP: DigitalInputValue Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
DigitalInputValue Class Reference
+
+
+ +

#include <digital_input.h>

+
+Inheritance diagram for DigitalInputValue:
+
+
Inheritance graph
+ + + + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 DigitalInputValue (uint8_t pin, int pin_mode, int interrupt_type, int read_delay=1000, String config_path="")
 
virtual void enable () override final
 
- Public Member Functions inherited from DigitalInput
 DigitalInput (uint8_t pin, int pin_mode, int interrupt_type, String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< int >
 ValueProducer ()
 
virtual const int & get ()
 
void connect_to (ValueConsumer< int > *consumer, uint8_t input_channel=0)
 
Transform< int, T2 > * connect_to (Transform< int, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< int > *consumer, uint8_t input_channel=0)
 
Transform< int, T2 > * connectTo (Transform< int, T2 > *consumer_producer, uint8_t input_channel=0)
 
+ + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from DigitalInput
uint8_t pin
 
int interrupt_type
 
- Protected Attributes inherited from ValueProducer< int >
int output
 
+

Detailed Description

+
+

Definition at line 18 of file digital_input.h.

+

Constructor & Destructor Documentation

+ +

◆ DigitalInputValue()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DigitalInputValue::DigitalInputValue (uint8_t pin,
int pin_mode,
int interrupt_type,
int read_delay = 1000,
String config_path = "" 
)
+
+ +

Definition at line 13 of file digital_input.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+ + + + + +
+ + + + + + + +
void DigitalInputValue::enable ()
+
+finaloverridevirtual
+
+

Called during the initialization process. Override this method to add runtime initialization code to your class

+ +

Reimplemented from Enable.

+ +

Definition at line 20 of file digital_input.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_digital_input_value.js b/docs/generated/docs/class_digital_input_value.js new file mode 100644 index 000000000..2c90fe430 --- /dev/null +++ b/docs/generated/docs/class_digital_input_value.js @@ -0,0 +1,5 @@ +var class_digital_input_value = +[ + [ "DigitalInputValue", "class_digital_input_value.html#ad7195dc579200d7e8b04fb00fff3ea35", null ], + [ "enable", "class_digital_input_value.html#a504c6c9ad6578156df7eb524f9635912", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_digital_input_value__inherit__graph.map b/docs/generated/docs/class_digital_input_value__inherit__graph.map new file mode 100644 index 000000000..1a801723c --- /dev/null +++ b/docs/generated/docs/class_digital_input_value__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_digital_input_value__inherit__graph.md5 b/docs/generated/docs/class_digital_input_value__inherit__graph.md5 new file mode 100644 index 000000000..fd27357dd --- /dev/null +++ b/docs/generated/docs/class_digital_input_value__inherit__graph.md5 @@ -0,0 +1 @@ +43ab1ab355ad6c13751a6d93e508d16b \ No newline at end of file diff --git a/docs/generated/docs/class_digital_input_value__inherit__graph.png b/docs/generated/docs/class_digital_input_value__inherit__graph.png new file mode 100644 index 000000000..0a04d70ab Binary files /dev/null and b/docs/generated/docs/class_digital_input_value__inherit__graph.png differ diff --git a/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.map b/docs/generated/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.map similarity index 100% rename from docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.map rename to docs/generated/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.map diff --git a/docs/generated/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.md5 b/docs/generated/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.md5 new file mode 100644 index 000000000..da35d613b --- /dev/null +++ b/docs/generated/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.md5 @@ -0,0 +1 @@ +8b399f97074742bbc561cd59bd27fa76 \ No newline at end of file diff --git a/docs/generated/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.png b/docs/generated/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.png new file mode 100644 index 000000000..c49d174ab Binary files /dev/null and b/docs/generated/docs/class_digital_input_value_a504c6c9ad6578156df7eb524f9635912_cgraph.png differ diff --git a/docs/generated/docs/class_digital_output-members.html b/docs/generated/docs/class_digital_output-members.html new file mode 100644 index 000000000..644fd36a2 --- /dev/null +++ b/docs/generated/docs/class_digital_output-members.html @@ -0,0 +1,107 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
DigitalOutput Member List
+
+
+ +

This is the complete list of members for DigitalOutput, including all inherited members.

+ + + + + + +
connect_from(ValueProducer< T > *producer, uint8_t input_channel=0)ValueConsumer< T >inline
connectFrom(ValueProducer< T > *producer, uint8_t input_channel=0)ValueConsumer< T >inline
DigitalOutput(int pin)DigitalOutput
set_input(bool new_value, uint8_t input_channel=0) overrideDigitalOutput
ValueConsumer::set_input(T new_value, uint8_t input_channel=0)ValueConsumer< T >inlinevirtual
+
+ + + + diff --git a/docs/generated/docs/class_digital_output.html b/docs/generated/docs/class_digital_output.html new file mode 100644 index 000000000..a850c1650 --- /dev/null +++ b/docs/generated/docs/class_digital_output.html @@ -0,0 +1,196 @@ + + + + + + + +SensESP: DigitalOutput Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
DigitalOutput Class Reference
+
+
+ +

#include <digital_output.h>

+
+Inheritance diagram for DigitalOutput:
+
+
Inheritance graph
+ + + + +
[legend]
+ + + + + + + + + + + + + +

+Public Member Functions

 DigitalOutput (int pin)
 
void set_input (bool new_value, uint8_t input_channel=0) override
 
- Public Member Functions inherited from ValueConsumer< T >
virtual void set_input (T new_value, uint8_t input_channel=0)
 
void connect_from (ValueProducer< T > *producer, uint8_t input_channel=0)
 
void connectFrom (ValueProducer< T > *producer, uint8_t input_channel=0)
 
+

Detailed Description

+
+

Definition at line 9 of file digital_output.h.

+

Constructor & Destructor Documentation

+ +

◆ DigitalOutput()

+ +
+
+ + + + + + + + +
DigitalOutput::DigitalOutput (int pin)
+
+ +

Definition at line 5 of file digital_output.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void DigitalOutput::set_input (bool new_value,
uint8_t input_channel = 0 
)
+
+override
+
+ +

Definition at line 10 of file digital_output.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_digital_output.js b/docs/generated/docs/class_digital_output.js new file mode 100644 index 000000000..0bf905f7f --- /dev/null +++ b/docs/generated/docs/class_digital_output.js @@ -0,0 +1,5 @@ +var class_digital_output = +[ + [ "DigitalOutput", "class_digital_output.html#a49b9011baf6e4280e6a4f8be0177bc1b", null ], + [ "set_input", "class_digital_output.html#a565a9c57af6dbc61d4895c4b35fe3a6a", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_digital_output__inherit__graph.map b/docs/generated/docs/class_digital_output__inherit__graph.map new file mode 100644 index 000000000..dfaaa1a19 --- /dev/null +++ b/docs/generated/docs/class_digital_output__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_digital_output__inherit__graph.md5 b/docs/generated/docs/class_digital_output__inherit__graph.md5 new file mode 100644 index 000000000..c5d9a8019 --- /dev/null +++ b/docs/generated/docs/class_digital_output__inherit__graph.md5 @@ -0,0 +1 @@ +9ac5b1b3924107c08b3c8e4ab6eddf1f \ No newline at end of file diff --git a/docs/generated/docs/class_digital_output__inherit__graph.png b/docs/generated/docs/class_digital_output__inherit__graph.png new file mode 100644 index 000000000..4ff5b615d Binary files /dev/null and b/docs/generated/docs/class_digital_output__inherit__graph.png differ diff --git a/docs/generated/docs/class_enable-members.html b/docs/generated/docs/class_enable-members.html new file mode 100644 index 000000000..a512d5d27 --- /dev/null +++ b/docs/generated/docs/class_enable-members.html @@ -0,0 +1,109 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Enable Member List
+
+
+ +

This is the complete list of members for Enable, including all inherited members.

+ + + + + + + + +
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get_enable_priority()Enableinline
operator<(const Enable &lhs, const Enable &rhs)Enablefriend
set_priority(uint8_t priority)Enableinline
+
+ + + + diff --git a/docs/generated/docs/class_enable.html b/docs/generated/docs/class_enable.html new file mode 100644 index 000000000..6a7682d31 --- /dev/null +++ b/docs/generated/docs/class_enable.html @@ -0,0 +1,409 @@ + + + + + + + +SensESP: Enable Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <enable.h>

+
+Inheritance diagram for Enable:
+
+
Inheritance graph
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[legend]
+ + + + + + + + + + +

+Public Member Functions

 Enable (uint8_t priority=0)
 
virtual void enable ()
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
+ + + + + +

+Static Public Member Functions

static void enable_all ()
 
static void enableAll ()
 
+ + + +

+Friends

bool operator< (const Enable &lhs, const Enable &rhs)
 
+

Detailed Description

+

Classes that implement "Enable" will have their enable() method called automatically at startup when the SensESP app itself is enabled. The optional priority allows for certain classes to be initialized first. The default priority is zero. A higher priority (i.e. greater than zero) will be enabled before a lower one (i.e. less than zero).

+ +

Definition at line 18 of file enable.h.

+

Constructor & Destructor Documentation

+ +

◆ Enable()

+ +
+
+ + + + + + + + +
Enable::Enable (uint8_t priority = 0)
+
+ +

Definition at line 7 of file enable.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void Enable::enable ()
+
+inlinevirtual
+
+

Called during the initialization process. Override this method to add runtime initialization code to your class

+ +

Reimplemented in UltrasonicDistance, WifiSignal, IPAddrDev, Uptime, FreeMem, SystemHz, SHT31Value, Read9DOF, OneWireTemperature, DallasTemperatureSensors, MAX31856Thermocouple, INA219Value, GPSInput, DigitalInputCounter, DigitalInputValue, BMP280Value, BME280Value, AnalogInput, ADS1x15Value< T_ads_1x15 >, and ADS1x15< T_Ada_1x15 >.

+ +

Definition at line 26 of file enable.h.

+ +
+
+ +

◆ enable_all()

+ +
+
+ + + + + +
+ + + + + + + +
void Enable::enable_all ()
+
+static
+
+

Called by the SensESP framework to initialize all of the objects marked with this class. They will be initialized in priorty order. If you want to see see the name of each sensor and transport in the serial monitor as each one is enabled, add the following to your project's platformio.ini file:

+

build_unflags = -fno-rtti

+ +

Definition at line 11 of file enable.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + + +
+ +
+
+ +

◆ enableAll()

+ +
+
+ + + + + +
+ + + + + + + +
static void Enable::enableAll ()
+
+inlinestatic
+
+ +

Definition at line 45 of file enable.h.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ get_enable_priority()

+ +
+
+ + + + + +
+ + + + + + + +
const uint8_t Enable::get_enable_priority ()
+
+inline
+
+ +

Definition at line 28 of file enable.h.

+ +
+
+ +

◆ set_priority()

+ +
+
+ + + + + +
+ + + + + + + + +
void Enable::set_priority (uint8_t priority)
+
+inline
+
+ +

Definition at line 30 of file enable.h.

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+

Friends And Related Function Documentation

+ +

◆ operator<

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool operator< (const Enablelhs,
const Enablerhs 
)
+
+friend
+
+ +

Definition at line 50 of file enable.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_enable.js b/docs/generated/docs/class_enable.js new file mode 100644 index 000000000..4cb6c2278 --- /dev/null +++ b/docs/generated/docs/class_enable.js @@ -0,0 +1,8 @@ +var class_enable = +[ + [ "Enable", "class_enable.html#a62d0a37863086502e168bfa8ab94ebc0", null ], + [ "enable", "class_enable.html#a62ea021bf8d986150be346977a8eede3", null ], + [ "get_enable_priority", "class_enable.html#a52c13a29b7cdd574f65e8dffa5c24470", null ], + [ "set_priority", "class_enable.html#affdeaa165e0c553dd3490487a65432c8", null ], + [ "operator<", "class_enable.html#a5e6385aea4a61b890368ce0b411f690c", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_enable__inherit__graph.map b/docs/generated/docs/class_enable__inherit__graph.map new file mode 100644 index 000000000..4c90dc1d3 --- /dev/null +++ b/docs/generated/docs/class_enable__inherit__graph.map @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/class_enable__inherit__graph.md5 b/docs/generated/docs/class_enable__inherit__graph.md5 new file mode 100644 index 000000000..4969b6fc7 --- /dev/null +++ b/docs/generated/docs/class_enable__inherit__graph.md5 @@ -0,0 +1 @@ +3fd38b8ca0711ed6b7cf5a31b2bf3b34 \ No newline at end of file diff --git a/docs/generated/docs/class_enable__inherit__graph.png b/docs/generated/docs/class_enable__inherit__graph.png new file mode 100644 index 000000000..71416453d Binary files /dev/null and b/docs/generated/docs/class_enable__inherit__graph.png differ diff --git a/docs/generated/docs/class_enable_a0c8851096f3f60293bd4ffee5c7cd1ef_icgraph.map b/docs/generated/docs/class_enable_a0c8851096f3f60293bd4ffee5c7cd1ef_icgraph.map new file mode 100644 index 000000000..cfa27be47 --- /dev/null +++ b/docs/generated/docs/class_enable_a0c8851096f3f60293bd4ffee5c7cd1ef_icgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_enable_a0c8851096f3f60293bd4ffee5c7cd1ef_icgraph.md5 b/docs/generated/docs/class_enable_a0c8851096f3f60293bd4ffee5c7cd1ef_icgraph.md5 new file mode 100644 index 000000000..d8704c6d7 --- /dev/null +++ b/docs/generated/docs/class_enable_a0c8851096f3f60293bd4ffee5c7cd1ef_icgraph.md5 @@ -0,0 +1 @@ +0eabe6baf13780a367b8a9d6c5c3c761 \ No newline at end of file diff --git a/docs/generated/docs/class_enable_a0c8851096f3f60293bd4ffee5c7cd1ef_icgraph.png b/docs/generated/docs/class_enable_a0c8851096f3f60293bd4ffee5c7cd1ef_icgraph.png new file mode 100644 index 000000000..c58e789b9 Binary files /dev/null and b/docs/generated/docs/class_enable_a0c8851096f3f60293bd4ffee5c7cd1ef_icgraph.png differ diff --git a/docs/generated/docs/class_enable_addb956e5a06d89d698efd787205a9dc2_cgraph.map b/docs/generated/docs/class_enable_addb956e5a06d89d698efd787205a9dc2_cgraph.map new file mode 100644 index 000000000..1653de91e --- /dev/null +++ b/docs/generated/docs/class_enable_addb956e5a06d89d698efd787205a9dc2_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_enable_addb956e5a06d89d698efd787205a9dc2_cgraph.md5 b/docs/generated/docs/class_enable_addb956e5a06d89d698efd787205a9dc2_cgraph.md5 new file mode 100644 index 000000000..2203d380d --- /dev/null +++ b/docs/generated/docs/class_enable_addb956e5a06d89d698efd787205a9dc2_cgraph.md5 @@ -0,0 +1 @@ +7f7fc52eb6843a03122d57c4ee033727 \ No newline at end of file diff --git a/docs/generated/docs/class_enable_addb956e5a06d89d698efd787205a9dc2_cgraph.png b/docs/generated/docs/class_enable_addb956e5a06d89d698efd787205a9dc2_cgraph.png new file mode 100644 index 000000000..f232e6d51 Binary files /dev/null and b/docs/generated/docs/class_enable_addb956e5a06d89d698efd787205a9dc2_cgraph.png differ diff --git a/docs/generated/docs/class_enable_affdeaa165e0c553dd3490487a65432c8_icgraph.map b/docs/generated/docs/class_enable_affdeaa165e0c553dd3490487a65432c8_icgraph.map new file mode 100644 index 000000000..c4bf4f75a --- /dev/null +++ b/docs/generated/docs/class_enable_affdeaa165e0c553dd3490487a65432c8_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_enable_affdeaa165e0c553dd3490487a65432c8_icgraph.md5 b/docs/generated/docs/class_enable_affdeaa165e0c553dd3490487a65432c8_icgraph.md5 new file mode 100644 index 000000000..7093013c2 --- /dev/null +++ b/docs/generated/docs/class_enable_affdeaa165e0c553dd3490487a65432c8_icgraph.md5 @@ -0,0 +1 @@ +30e2e991e2866af8618c6ab934b92d61 \ No newline at end of file diff --git a/docs/generated/docs/class_enable_affdeaa165e0c553dd3490487a65432c8_icgraph.png b/docs/generated/docs/class_enable_affdeaa165e0c553dd3490487a65432c8_icgraph.png new file mode 100644 index 000000000..fc1d5c819 Binary files /dev/null and b/docs/generated/docs/class_enable_affdeaa165e0c553dd3490487a65432c8_icgraph.png differ diff --git a/docs/generated/docs/class_free_mem-members.html b/docs/generated/docs/class_free_mem-members.html new file mode 100644 index 000000000..7fcd2ecc9 --- /dev/null +++ b/docs/generated/docs/class_free_mem-members.html @@ -0,0 +1,128 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
FreeMem Member List
+
+
+ +

This is the complete list of members for FreeMem, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< uint32_t > *consumer, uint8_t input_channel=0)ValueProducer< uint32_t >inline
connect_to(Transform< uint32_t, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< uint32_t >inline
connectTo(ValueConsumer< uint32_t > *consumer, uint8_t input_channel=0)ValueProducer< uint32_t >inline
connectTo(Transform< uint32_t, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< uint32_t >inline
enable() override finalFreeMemvirtual
Enable(uint8_t priority=0)Enable
enable_all()Enablestatic
enableAll()Enableinlinestatic
FreeMem()FreeMeminline
get()ValueProducer< uint32_t >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
get_value_name()FreeMeminline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< uint32_t >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< uint32_t >inline
+
+ + + + diff --git a/docs/class_free_mem.html b/docs/generated/docs/class_free_mem.html similarity index 80% rename from docs/class_free_mem.html rename to docs/generated/docs/class_free_mem.html index b2d906a02..6f4391293 100644 --- a/docs/class_free_mem.html +++ b/docs/generated/docs/class_free_mem.html @@ -3,7 +3,7 @@ - + SensESP: FreeMem Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -99,14 +95,14 @@
Inheritance diagram for FreeMem:
-
Inheritance graph
- - - - - - - +
Inheritance graph
+ + + + + + +
[legend]
@@ -129,8 +125,8 @@ - - + + @@ -140,23 +136,23 @@ - - - - - - - - + + + + - - - - + + + + + + + +
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< uint32_t >
 ValueProducer ()
 
virtual const uint32_t & get ()
 
void connectTo (ValueConsumer< uint32_t > *pConsumer, uint8_t inputChannel=0)
 
Transform< uint32_t, T2 > * connectTo (Transform< uint32_t, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
void connect_to (ValueConsumer< uint32_t > *consumer, uint8_t input_channel=0)
 
Transform< uint32_t, T2 > * connect_to (Transform< uint32_t, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< uint32_t > *consumer, uint8_t input_channel=0)
 
Transform< uint32_t, T2 > * connectTo (Transform< uint32_t, T2 > *consumer_producer, uint8_t input_channel=0)
 
@@ -164,24 +160,23 @@ - - + + + + - - -

Additional Inherited Members

static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< uint32_t >
uint32_t output
 

Detailed Description

-

Definition at line 19 of file system_info.h.

+

Definition at line 20 of file system_info.h.

Constructor & Destructor Documentation

◆ FreeMem()

@@ -206,7 +201,7 @@

-

Definition at line 21 of file system_info.h.

+

Definition at line 22 of file system_info.h.

@@ -237,7 +232,7 @@

Enable.

-

Definition at line 42 of file system_info.cpp.

+

Definition at line 37 of file system_info.cpp.

@@ -264,7 +259,7 @@

-

Definition at line 23 of file system_info.h.

+

Definition at line 24 of file system_info.h.

@@ -278,9 +273,7 @@

    - +
diff --git a/docs/class_free_mem.js b/docs/generated/docs/class_free_mem.js similarity index 100% rename from docs/class_free_mem.js rename to docs/generated/docs/class_free_mem.js diff --git a/docs/generated/docs/class_free_mem__inherit__graph.map b/docs/generated/docs/class_free_mem__inherit__graph.map new file mode 100644 index 000000000..07b793955 --- /dev/null +++ b/docs/generated/docs/class_free_mem__inherit__graph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/generated/docs/class_free_mem__inherit__graph.md5 b/docs/generated/docs/class_free_mem__inherit__graph.md5 new file mode 100644 index 000000000..019f11b9a --- /dev/null +++ b/docs/generated/docs/class_free_mem__inherit__graph.md5 @@ -0,0 +1 @@ +e3239260927f1519880e35a26040585f \ No newline at end of file diff --git a/docs/generated/docs/class_free_mem__inherit__graph.png b/docs/generated/docs/class_free_mem__inherit__graph.png new file mode 100644 index 000000000..34c188f72 Binary files /dev/null and b/docs/generated/docs/class_free_mem__inherit__graph.png differ diff --git a/docs/generated/docs/class_frequency-members.html b/docs/generated/docs/class_frequency-members.html new file mode 100644 index 000000000..3d0e5c615 --- /dev/null +++ b/docs/generated/docs/class_frequency-members.html @@ -0,0 +1,110 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Frequency Member List
+
+
+ +

This is the complete list of members for Frequency, including all inherited members.

+ + + + + + + + + +
connectFrom(ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)Transform< int, float >inline
enable() overrideFrequencyvirtual
Frequency(float k=1, String config_path="")Frequency
get_config_schema() overrideFrequencyvirtual
get_configuration(JsonObject &doc) overrideFrequencyvirtual
set_configuration(const JsonObject &config) overrideFrequencyvirtual
set_input(int input, uint8_t inputChannel=0) overrideFrequencyvirtual
Transform(String config_path="")Transform< int, float >inline
+
+ + + + diff --git a/docs/generated/docs/class_frequency.html b/docs/generated/docs/class_frequency.html new file mode 100644 index 000000000..e0fb96e76 --- /dev/null +++ b/docs/generated/docs/class_frequency.html @@ -0,0 +1,322 @@ + + + + + + + +SensESP: Frequency Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Frequency Class Reference
+
+
+ +

#include <frequency.h>

+
+Inheritance diagram for Frequency:
+
+
Inheritance graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Frequency (float k=1, String config_path="")
 
virtual void set_input (int input, uint8_t inputChannel=0) override
 
virtual void enable () override
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from Transform< int, float >
 Transform (String config_path="")
 
Transform< int, float > * connectFrom (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
+

Detailed Description

+
+

Definition at line 8 of file frequency.h.

+

Constructor & Destructor Documentation

+ +

◆ Frequency()

+ +
+
+ + + + + + + + + + + + + + + + + + +
Frequency::Frequency (float k = 1,
String config_path = "" 
)
+
+ +

Definition at line 5 of file frequency.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+ + + + + +
+ + + + + + + +
void Frequency::enable ()
+
+overridevirtual
+
+ +

Definition at line 10 of file frequency.cpp.

+ +
+
+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String Frequency::get_config_schema ()
+
+overridevirtual
+
+ +

Definition at line 33 of file frequency.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void Frequency::get_configuration (JsonObject & doc)
+
+overridevirtual
+
+ +

Definition at line 20 of file frequency.cpp.

+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Frequency::set_configuration (const JsonObject & config)
+
+overridevirtual
+
+ +

Definition at line 35 of file frequency.cpp.

+ +
+
+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Frequency::set_input (int input,
uint8_t inputChannel = 0 
)
+
+overridevirtual
+
+ +

Definition at line 12 of file frequency.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/class_frequency.js b/docs/generated/docs/class_frequency.js similarity index 83% rename from docs/class_frequency.js rename to docs/generated/docs/class_frequency.js index 3cde1da5c..858b98ed1 100644 --- a/docs/class_frequency.js +++ b/docs/generated/docs/class_frequency.js @@ -3,7 +3,7 @@ var class_frequency = [ "Frequency", "class_frequency.html#abbaff61b74433bb8a990685be24c3c8b", null ], [ "enable", "class_frequency.html#a0d6846952b3295809421ac18633e397e", null ], [ "get_config_schema", "class_frequency.html#a93e3f28917f7faa7411b95745171f6af", null ], - [ "get_configuration", "class_frequency.html#ae121e43d37643d390bc607def68e0e02", null ], + [ "get_configuration", "class_frequency.html#a35901f2d996c2e598e1ca0f95ea0e62b", null ], [ "set_configuration", "class_frequency.html#a87d16c67ce064b9b0f671747808c3963", null ], [ "set_input", "class_frequency.html#a99df388f446a8aa46f465fe464023f55", null ] ]; \ No newline at end of file diff --git a/docs/generated/docs/class_frequency__inherit__graph.map b/docs/generated/docs/class_frequency__inherit__graph.map new file mode 100644 index 000000000..cf7b67c93 --- /dev/null +++ b/docs/generated/docs/class_frequency__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_frequency__inherit__graph.md5 b/docs/generated/docs/class_frequency__inherit__graph.md5 new file mode 100644 index 000000000..90b5fee15 --- /dev/null +++ b/docs/generated/docs/class_frequency__inherit__graph.md5 @@ -0,0 +1 @@ +8616d39924d2417938352aa002b977b4 \ No newline at end of file diff --git a/docs/generated/docs/class_frequency__inherit__graph.png b/docs/generated/docs/class_frequency__inherit__graph.png new file mode 100644 index 000000000..9ebeb651f Binary files /dev/null and b/docs/generated/docs/class_frequency__inherit__graph.png differ diff --git a/docs/class_g_p_g_g_a_sentence_parser-members.html b/docs/generated/docs/class_g_p_g_g_a_sentence_parser-members.html similarity index 92% rename from docs/class_g_p_g_g_a_sentence_parser-members.html rename to docs/generated/docs/class_g_p_g_g_a_sentence_parser-members.html index acd36be1f..30ae13b70 100644 --- a/docs/class_g_p_g_g_a_sentence_parser-members.html +++ b/docs/generated/docs/class_g_p_g_g_a_sentence_parser-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -105,9 +101,7 @@ diff --git a/docs/class_g_p_g_g_a_sentence_parser.html b/docs/generated/docs/class_g_p_g_g_a_sentence_parser.html similarity index 81% rename from docs/class_g_p_g_g_a_sentence_parser.html rename to docs/generated/docs/class_g_p_g_g_a_sentence_parser.html index dcb8c53d5..3742f267b 100644 --- a/docs/class_g_p_g_g_a_sentence_parser.html +++ b/docs/generated/docs/class_g_p_g_g_a_sentence_parser.html @@ -3,7 +3,7 @@ - + SensESP: GPGGASentenceParser Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -99,10 +95,10 @@
Inheritance diagram for GPGGASentenceParser:
-
Inheritance graph
- - - +
Inheritance graph
+ + +
[legend]
@@ -128,7 +124,7 @@

Detailed Description

-

Definition at line 61 of file nmea_parser.h.

+

Definition at line 60 of file nmea_parser.h.

Constructor & Destructor Documentation

◆ GPGGASentenceParser()

@@ -154,7 +150,7 @@

-

Definition at line 63 of file nmea_parser.h.

+

Definition at line 62 of file nmea_parser.h.

@@ -201,23 +197,23 @@

SentenceParser.

-

Definition at line 189 of file nmea_parser.cpp.

+

Definition at line 181 of file nmea_parser.cpp.

Here is the call graph for this function:
-
- - - - - - - - - - - - +
+ + + + + + + + + + + +
@@ -248,14 +244,14 @@

SentenceParser.

-

Definition at line 65 of file nmea_parser.h.

+

Definition at line 64 of file nmea_parser.h.

Here is the caller graph for this function:
-
- - - +
+ + +
@@ -271,9 +267,7 @@

diff --git a/docs/class_g_p_g_g_a_sentence_parser.js b/docs/generated/docs/class_g_p_g_g_a_sentence_parser.js similarity index 100% rename from docs/class_g_p_g_g_a_sentence_parser.js rename to docs/generated/docs/class_g_p_g_g_a_sentence_parser.js diff --git a/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.map b/docs/generated/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.map similarity index 100% rename from docs/class_g_p_g_g_a_sentence_parser__inherit__graph.map rename to docs/generated/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.map diff --git a/docs/generated/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.md5 b/docs/generated/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.md5 new file mode 100644 index 000000000..9375d876a --- /dev/null +++ b/docs/generated/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.md5 @@ -0,0 +1 @@ +c3509a2b456451ce58e79061d7e1aab1 \ No newline at end of file diff --git a/docs/generated/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.png b/docs/generated/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.png new file mode 100644 index 000000000..5f37d3447 Binary files /dev/null and b/docs/generated/docs/class_g_p_g_g_a_sentence_parser__inherit__graph.png differ diff --git a/docs/generated/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.map b/docs/generated/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.map new file mode 100644 index 000000000..07a5d55c2 --- /dev/null +++ b/docs/generated/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/docs/generated/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.md5 b/docs/generated/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.md5 new file mode 100644 index 000000000..50f931e75 --- /dev/null +++ b/docs/generated/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.md5 @@ -0,0 +1 @@ +4d349710de24e90db5d40b20503b5c41 \ No newline at end of file diff --git a/docs/generated/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.png b/docs/generated/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.png new file mode 100644 index 000000000..f8f3dc092 Binary files /dev/null and b/docs/generated/docs/class_g_p_g_g_a_sentence_parser_a6bce986c2fb84af7c54477cd7d43f1b1_cgraph.png differ diff --git a/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.map b/docs/generated/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.map similarity index 100% rename from docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.map rename to docs/generated/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.map diff --git a/docs/generated/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.md5 b/docs/generated/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.md5 new file mode 100644 index 000000000..f083d38e0 --- /dev/null +++ b/docs/generated/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.md5 @@ -0,0 +1 @@ +97829dbe1d7702fb0e2d100f490720c8 \ No newline at end of file diff --git a/docs/generated/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.png b/docs/generated/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.png new file mode 100644 index 000000000..d12bde451 Binary files /dev/null and b/docs/generated/docs/class_g_p_g_g_a_sentence_parser_ac70d60b587cd0e48479c397bb30983a3_icgraph.png differ diff --git a/docs/class_g_p_g_l_l_sentence_parser-members.html b/docs/generated/docs/class_g_p_g_l_l_sentence_parser-members.html similarity index 92% rename from docs/class_g_p_g_l_l_sentence_parser-members.html rename to docs/generated/docs/class_g_p_g_l_l_sentence_parser-members.html index 6bb246d8f..be38fb0cc 100644 --- a/docs/class_g_p_g_l_l_sentence_parser-members.html +++ b/docs/generated/docs/class_g_p_g_l_l_sentence_parser-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -105,9 +101,7 @@ diff --git a/docs/class_g_p_g_l_l_sentence_parser.html b/docs/generated/docs/class_g_p_g_l_l_sentence_parser.html similarity index 85% rename from docs/class_g_p_g_l_l_sentence_parser.html rename to docs/generated/docs/class_g_p_g_l_l_sentence_parser.html index a3545ab87..5b58fa05c 100644 --- a/docs/class_g_p_g_l_l_sentence_parser.html +++ b/docs/generated/docs/class_g_p_g_l_l_sentence_parser.html @@ -3,7 +3,7 @@ - + SensESP: GPGLLSentenceParser Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -99,10 +95,10 @@
Inheritance diagram for GPGLLSentenceParser:
-
Inheritance graph
- - - +
Inheritance graph
+ + +
[legend]
@@ -201,19 +197,19 @@

SentenceParser.

-

Definition at line 264 of file nmea_parser.cpp.

+

Definition at line 257 of file nmea_parser.cpp.

Here is the call graph for this function:
-
- - - - - - - - +
+ + + + + + + +
@@ -248,10 +244,10 @@

Here is the caller graph for this function:
-
- - - +
+ + +
@@ -267,9 +263,7 @@

diff --git a/docs/class_g_p_g_l_l_sentence_parser.js b/docs/generated/docs/class_g_p_g_l_l_sentence_parser.js similarity index 100% rename from docs/class_g_p_g_l_l_sentence_parser.js rename to docs/generated/docs/class_g_p_g_l_l_sentence_parser.js diff --git a/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.map b/docs/generated/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.map similarity index 100% rename from docs/class_g_p_g_l_l_sentence_parser__inherit__graph.map rename to docs/generated/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.map diff --git a/docs/generated/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.md5 b/docs/generated/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.md5 new file mode 100644 index 000000000..4c59a0f4b --- /dev/null +++ b/docs/generated/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.md5 @@ -0,0 +1 @@ +12e71152ac0d8c3a0ba73f20ee379b18 \ No newline at end of file diff --git a/docs/generated/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.png b/docs/generated/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.png new file mode 100644 index 000000000..c583da58b Binary files /dev/null and b/docs/generated/docs/class_g_p_g_l_l_sentence_parser__inherit__graph.png differ diff --git a/docs/generated/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.map b/docs/generated/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.map new file mode 100644 index 000000000..694690e9f --- /dev/null +++ b/docs/generated/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.md5 b/docs/generated/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.md5 new file mode 100644 index 000000000..eea2bea70 --- /dev/null +++ b/docs/generated/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.md5 @@ -0,0 +1 @@ +4d57e4d3d0bf1494758276e538340a5a \ No newline at end of file diff --git a/docs/generated/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.png b/docs/generated/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.png new file mode 100644 index 000000000..5af870215 Binary files /dev/null and b/docs/generated/docs/class_g_p_g_l_l_sentence_parser_ab1583e721b24183fcc59f2b2826b8c52_cgraph.png differ diff --git a/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.map b/docs/generated/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.map similarity index 100% rename from docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.map rename to docs/generated/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.map diff --git a/docs/generated/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.md5 b/docs/generated/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.md5 new file mode 100644 index 000000000..27949c5c2 --- /dev/null +++ b/docs/generated/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.md5 @@ -0,0 +1 @@ +66d75f1418a2d2ccd67ee8f6e2401fe0 \ No newline at end of file diff --git a/docs/generated/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.png b/docs/generated/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.png new file mode 100644 index 000000000..f7488c939 Binary files /dev/null and b/docs/generated/docs/class_g_p_g_l_l_sentence_parser_acbee347184ae22343a9af2515ae57c98_icgraph.png differ diff --git a/docs/class_g_p_r_m_c_sentence_parser-members.html b/docs/generated/docs/class_g_p_r_m_c_sentence_parser-members.html similarity index 92% rename from docs/class_g_p_r_m_c_sentence_parser-members.html rename to docs/generated/docs/class_g_p_r_m_c_sentence_parser-members.html index cd06d4a82..b775dc643 100644 --- a/docs/class_g_p_r_m_c_sentence_parser-members.html +++ b/docs/generated/docs/class_g_p_r_m_c_sentence_parser-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@

- +
@@ -105,9 +101,7 @@ diff --git a/docs/class_g_p_r_m_c_sentence_parser.html b/docs/generated/docs/class_g_p_r_m_c_sentence_parser.html similarity index 80% rename from docs/class_g_p_r_m_c_sentence_parser.html rename to docs/generated/docs/class_g_p_r_m_c_sentence_parser.html index 7c8a8636e..39fd3828a 100644 --- a/docs/class_g_p_r_m_c_sentence_parser.html +++ b/docs/generated/docs/class_g_p_r_m_c_sentence_parser.html @@ -3,7 +3,7 @@ - + SensESP: GPRMCSentenceParser Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -99,10 +95,10 @@
Inheritance diagram for GPRMCSentenceParser:
-
Inheritance graph
- - - +
Inheritance graph
+ + +
[legend]
@@ -128,7 +124,7 @@

Detailed Description

-

Definition at line 77 of file nmea_parser.h.

+

Definition at line 78 of file nmea_parser.h.

Constructor & Destructor Documentation

◆ GPRMCSentenceParser()

@@ -154,7 +150,7 @@

-

Definition at line 79 of file nmea_parser.h.

+

Definition at line 80 of file nmea_parser.h.

@@ -201,24 +197,24 @@

SentenceParser.

-

Definition at line 291 of file nmea_parser.cpp.

+

Definition at line 285 of file nmea_parser.cpp.

Here is the call graph for this function:
-
- - - - - - - - - - - - - +
+ + + + + + + + + + + + +
@@ -249,14 +245,14 @@

SentenceParser.

-

Definition at line 81 of file nmea_parser.h.

+

Definition at line 82 of file nmea_parser.h.

Here is the caller graph for this function:
-
- - - +
+ + +
@@ -272,9 +268,7 @@

diff --git a/docs/class_g_p_r_m_c_sentence_parser.js b/docs/generated/docs/class_g_p_r_m_c_sentence_parser.js similarity index 100% rename from docs/class_g_p_r_m_c_sentence_parser.js rename to docs/generated/docs/class_g_p_r_m_c_sentence_parser.js diff --git a/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.map b/docs/generated/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.map similarity index 100% rename from docs/class_g_p_r_m_c_sentence_parser__inherit__graph.map rename to docs/generated/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.map diff --git a/docs/generated/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.md5 b/docs/generated/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.md5 new file mode 100644 index 000000000..46a9cdf04 --- /dev/null +++ b/docs/generated/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.md5 @@ -0,0 +1 @@ +f9eaec59e2c32f2bc4a9e545e178aac3 \ No newline at end of file diff --git a/docs/generated/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.png b/docs/generated/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.png new file mode 100644 index 000000000..0679ff042 Binary files /dev/null and b/docs/generated/docs/class_g_p_r_m_c_sentence_parser__inherit__graph.png differ diff --git a/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.map b/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.map new file mode 100644 index 000000000..a3f3ef933 --- /dev/null +++ b/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.md5 b/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.md5 new file mode 100644 index 000000000..2313a33db --- /dev/null +++ b/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.md5 @@ -0,0 +1 @@ +eec103eee4fde33a683d974535d0e8c9 \ No newline at end of file diff --git a/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.png b/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.png new file mode 100644 index 000000000..2cf94a6c7 Binary files /dev/null and b/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a67589bcbddabbe32aac949c3ca9f4a75_cgraph.png differ diff --git a/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.map b/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.map similarity index 100% rename from docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.map rename to docs/generated/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.map diff --git a/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.md5 b/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.md5 new file mode 100644 index 000000000..1da2ac1cf --- /dev/null +++ b/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.md5 @@ -0,0 +1 @@ +025062350e185bcbe6da6438b3819273 \ No newline at end of file diff --git a/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.png b/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.png new file mode 100644 index 000000000..40a4776b6 Binary files /dev/null and b/docs/generated/docs/class_g_p_r_m_c_sentence_parser_a75afdae2ce4e8a27676d86ef2f5cbf9f_icgraph.png differ diff --git a/docs/generated/docs/class_g_p_s_input-members.html b/docs/generated/docs/class_g_p_s_input-members.html new file mode 100644 index 000000000..e4900859c --- /dev/null +++ b/docs/generated/docs/class_g_p_s_input-members.html @@ -0,0 +1,121 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
GPSInput Member List
+
+
+ +

This is the complete list of members for GPSInput, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
enable() override finalGPSInputvirtual
Enable(uint8_t priority=0)Enable
enable_all()Enablestatic
enableAll()Enableinlinestatic
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
GPSInput(Stream *rx_stream, String config_path="")GPSInput
load_configuration()Configurableprotectedvirtual
nmea_dataGPSInput
notify()Observable
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
+
+ + + + diff --git a/docs/class_g_p_s_input.html b/docs/generated/docs/class_g_p_s_input.html similarity index 77% rename from docs/class_g_p_s_input.html rename to docs/generated/docs/class_g_p_s_input.html index be9a144b6..2fda95645 100644 --- a/docs/class_g_p_s_input.html +++ b/docs/generated/docs/class_g_p_s_input.html @@ -3,7 +3,7 @@ - + SensESP: GPSInput Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -100,13 +96,13 @@
Inheritance diagram for GPSInput:
-
Inheritance graph
- - - - - - +
Inheritance graph
+ + + + + +
[legend]
@@ -127,8 +123,8 @@ - - + + @@ -138,14 +134,10 @@ - - - - - - - - + + + +
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
@@ -161,14 +153,13 @@ - - + + + + - - -

Public Attributes

static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
static void enable_all ()
 
static void enableAll ()
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 

Detailed Description

-
- - - - - - +
+ + + + + +
@@ -243,16 +234,7 @@

Enable.

-

Definition at line 23 of file gps.cpp.

-
-Here is the call graph for this function:
-
-
- - - - -
+

Definition at line 21 of file gps.cpp.

@@ -283,9 +265,7 @@

diff --git a/docs/class_g_p_s_input.js b/docs/generated/docs/class_g_p_s_input.js similarity index 100% rename from docs/class_g_p_s_input.js rename to docs/generated/docs/class_g_p_s_input.js diff --git a/docs/class_g_p_s_input__inherit__graph.map b/docs/generated/docs/class_g_p_s_input__inherit__graph.map similarity index 100% rename from docs/class_g_p_s_input__inherit__graph.map rename to docs/generated/docs/class_g_p_s_input__inherit__graph.map diff --git a/docs/generated/docs/class_g_p_s_input__inherit__graph.md5 b/docs/generated/docs/class_g_p_s_input__inherit__graph.md5 new file mode 100644 index 000000000..6eb9394aa --- /dev/null +++ b/docs/generated/docs/class_g_p_s_input__inherit__graph.md5 @@ -0,0 +1 @@ +a49ad26fd994cccf861a7e389d86149c \ No newline at end of file diff --git a/docs/generated/docs/class_g_p_s_input__inherit__graph.png b/docs/generated/docs/class_g_p_s_input__inherit__graph.png new file mode 100644 index 000000000..fb933fe3b Binary files /dev/null and b/docs/generated/docs/class_g_p_s_input__inherit__graph.png differ diff --git a/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.map b/docs/generated/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.map similarity index 100% rename from docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.map rename to docs/generated/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.map diff --git a/docs/generated/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.md5 b/docs/generated/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.md5 new file mode 100644 index 000000000..d834ae603 --- /dev/null +++ b/docs/generated/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.md5 @@ -0,0 +1 @@ +a06d7dc0c91fe1842a7d0264974fea84 \ No newline at end of file diff --git a/docs/generated/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.png b/docs/generated/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.png new file mode 100644 index 000000000..f1c48448d Binary files /dev/null and b/docs/generated/docs/class_g_p_s_input_ac434000c2641c7ef06badb2d51f79520_cgraph.png differ diff --git a/docs/class_h_t_t_p_server-members.html b/docs/generated/docs/class_h_t_t_p_server-members.html similarity index 92% rename from docs/class_h_t_t_p_server-members.html rename to docs/generated/docs/class_h_t_t_p_server-members.html index bc84c4a8d..2140b4eb8 100644 --- a/docs/class_h_t_t_p_server-members.html +++ b/docs/generated/docs/class_h_t_t_p_server-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -107,9 +103,7 @@ diff --git a/docs/generated/docs/class_h_t_t_p_server.html b/docs/generated/docs/class_h_t_t_p_server.html new file mode 100644 index 000000000..8893dcc75 --- /dev/null +++ b/docs/generated/docs/class_h_t_t_p_server.html @@ -0,0 +1,387 @@ + + + + + + + +SensESP: HTTPServer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
HTTPServer Class Reference
+
+
+ +

#include <http.h>

+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 HTTPServer (std::function< void()> reset_device)
 
 ~HTTPServer ()
 
void enable ()
 
void handle_not_found (AsyncWebServerRequest *request)
 
void handle_config (AsyncWebServerRequest *request)
 
void handle_device_reset (AsyncWebServerRequest *request)
 
void handle_device_restart (AsyncWebServerRequest *request)
 
void handle_info (AsyncWebServerRequest *request)
 
+

Detailed Description

+
+

Definition at line 8 of file http.h.

+

Constructor & Destructor Documentation

+ +

◆ HTTPServer()

+ +
+
+ + + + + + + + +
HTTPServer::HTTPServer (std::function< void()> reset_device)
+
+ +

Definition at line 29 of file http.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + + + + + + + + + + + +
+ +
+
+ +

◆ ~HTTPServer()

+ +
+
+ + + + + +
+ + + + + + + +
HTTPServer::~HTTPServer ()
+
+inline
+
+ +

Definition at line 11 of file http.h.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+ + + + + +
+ + + + + + + +
void HTTPServer::enable ()
+
+inline
+
+ +

Definition at line 12 of file http.h.

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ handle_config()

+ +
+
+ + + + + + + + +
void HTTPServer::handle_config (AsyncWebServerRequest * request)
+
+ +

Definition at line 190 of file http.cpp.

+ +
+
+ +

◆ handle_device_reset()

+ +
+
+ + + + + + + + +
void HTTPServer::handle_device_reset (AsyncWebServerRequest * request)
+
+ +

Definition at line 195 of file http.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ handle_device_restart()

+ +
+
+ + + + + + + + +
void HTTPServer::handle_device_restart (AsyncWebServerRequest * request)
+
+ +

Definition at line 202 of file http.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ handle_info()

+ +
+
+ + + + + + + + +
void HTTPServer::handle_info (AsyncWebServerRequest * request)
+
+ +

Definition at line 207 of file http.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ handle_not_found()

+ +
+
+ + + + + + + + +
void HTTPServer::handle_not_found (AsyncWebServerRequest * request)
+
+ +

Definition at line 129 of file http.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/class_h_t_t_p_server.js b/docs/generated/docs/class_h_t_t_p_server.js similarity index 100% rename from docs/class_h_t_t_p_server.js rename to docs/generated/docs/class_h_t_t_p_server.js diff --git a/docs/generated/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.map b/docs/generated/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.map new file mode 100644 index 000000000..2d2f01808 --- /dev/null +++ b/docs/generated/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.md5 b/docs/generated/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.md5 new file mode 100644 index 000000000..1cf5ae37e --- /dev/null +++ b/docs/generated/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.md5 @@ -0,0 +1 @@ +82223c6376eb5066ea356bde9836beae \ No newline at end of file diff --git a/docs/generated/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.png b/docs/generated/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.png new file mode 100644 index 000000000..0f4f7eb69 Binary files /dev/null and b/docs/generated/docs/class_h_t_t_p_server_a6f5600d8187ec82cb83e84252a387c38_icgraph.png differ diff --git a/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.map b/docs/generated/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.map similarity index 100% rename from docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.map rename to docs/generated/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.map diff --git a/docs/generated/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.md5 b/docs/generated/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.md5 new file mode 100644 index 000000000..ec6d80707 --- /dev/null +++ b/docs/generated/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.md5 @@ -0,0 +1 @@ +8dc3d58eb7a45ccf04d04403721122b8 \ No newline at end of file diff --git a/docs/generated/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.png b/docs/generated/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.png new file mode 100644 index 000000000..4094d8584 Binary files /dev/null and b/docs/generated/docs/class_h_t_t_p_server_a8b03465f1ad5631d0e20cc67e5419562_icgraph.png differ diff --git a/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.map b/docs/generated/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.map similarity index 100% rename from docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.map rename to docs/generated/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.map diff --git a/docs/generated/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.md5 b/docs/generated/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.md5 new file mode 100644 index 000000000..a3a07c00b --- /dev/null +++ b/docs/generated/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.md5 @@ -0,0 +1 @@ +84007812ed3378cea2c0bd4ea40da071 \ No newline at end of file diff --git a/docs/generated/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.png b/docs/generated/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.png new file mode 100644 index 000000000..71e91f5a0 Binary files /dev/null and b/docs/generated/docs/class_h_t_t_p_server_aafce79dc976b69b318f8fe69f45542be_icgraph.png differ diff --git a/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.map b/docs/generated/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.map similarity index 100% rename from docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.map rename to docs/generated/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.map diff --git a/docs/generated/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.md5 b/docs/generated/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.md5 new file mode 100644 index 000000000..b3e42d5a9 --- /dev/null +++ b/docs/generated/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.md5 @@ -0,0 +1 @@ +61a821767014993d5fc873eb16b5e84c \ No newline at end of file diff --git a/docs/generated/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.png b/docs/generated/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.png new file mode 100644 index 000000000..966ed9f95 Binary files /dev/null and b/docs/generated/docs/class_h_t_t_p_server_ab088a2530794acb9db8a8e1910729c35_icgraph.png differ diff --git a/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_cgraph.map b/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_cgraph.map new file mode 100644 index 000000000..af39acd17 --- /dev/null +++ b/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_cgraph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_cgraph.md5 b/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_cgraph.md5 new file mode 100644 index 000000000..98cbd6214 --- /dev/null +++ b/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_cgraph.md5 @@ -0,0 +1 @@ +1bac9ecc34e908c331a2998d056fae00 \ No newline at end of file diff --git a/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_cgraph.png b/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_cgraph.png new file mode 100644 index 000000000..f1a6e24d4 Binary files /dev/null and b/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_cgraph.png differ diff --git a/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.map b/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.map similarity index 100% rename from docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.map rename to docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.map diff --git a/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.md5 b/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.md5 new file mode 100644 index 000000000..a146caa47 --- /dev/null +++ b/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.md5 @@ -0,0 +1 @@ +cc82143968ec45d566b669b662c31b27 \ No newline at end of file diff --git a/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.png b/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.png new file mode 100644 index 000000000..b80590d55 Binary files /dev/null and b/docs/generated/docs/class_h_t_t_p_server_ac854fa80c31eba36ad3f2dd5f02d4a14_icgraph.png differ diff --git a/docs/generated/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.map b/docs/generated/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.map new file mode 100644 index 000000000..fe37580e1 --- /dev/null +++ b/docs/generated/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.md5 b/docs/generated/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.md5 new file mode 100644 index 000000000..37400c3e0 --- /dev/null +++ b/docs/generated/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.md5 @@ -0,0 +1 @@ +3c7c570de59498bbbad496ea3dd80f97 \ No newline at end of file diff --git a/docs/generated/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.png b/docs/generated/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.png new file mode 100644 index 000000000..5fd0ef9b9 Binary files /dev/null and b/docs/generated/docs/class_h_t_t_p_server_adacba9a090d5b0465da86dd6c82953a9_cgraph.png differ diff --git a/docs/generated/docs/class_hysteresis-members.html b/docs/generated/docs/class_hysteresis-members.html new file mode 100644 index 000000000..c8c67639c --- /dev/null +++ b/docs/generated/docs/class_hysteresis-members.html @@ -0,0 +1,117 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Hysteresis< IN, OUT > Member List
+
+
+ +

This is the complete list of members for Hysteresis< IN, OUT >, including all inherited members.

+ + + + + + + + + + + + + + + + +
connectFrom(ValueProducer< OUT > *producer0, ValueProducer< OUT > *producer1=NULL, ValueProducer< OUT > *producer2=NULL, ValueProducer< OUT > *producer3=NULL, ValueProducer< OUT > *producer4=NULL)Transform< IN, OUT >inline
get_config_schema() overrideLambdaTransform< IN, OUT, IN, IN, OUT, OUT >inline
get_configuration(JsonObject &doc) overrideLambdaTransform< IN, OUT, IN, IN, OUT, OUT >inline
Hysteresis(IN lower_threshold, IN upper_threshold, OUT low_output, OUT high_output, String config_path="")Hysteresis< IN, OUT >inline
LambdaTransform(OUT(*function)(IN input), String config_path="")LambdaTransform< IN, OUT, IN, IN, OUT, OUT >inline
LambdaTransform(OUT(*function)(IN input), const ParamInfo *param_info, String config_path="")LambdaTransform< IN, OUT, IN, IN, OUT, OUT >inline
LambdaTransform(OUT(*function)(IN input, IN param1), IN param1, const ParamInfo *param_info, String config_path="")LambdaTransform< IN, OUT, IN, IN, OUT, OUT >inline
LambdaTransform(OUT(*function)(IN input, IN param1, IN param2), IN param1, IN param2, const ParamInfo *param_info, String config_path="")LambdaTransform< IN, OUT, IN, IN, OUT, OUT >inline
LambdaTransform(OUT(*function)(IN input, IN param1, IN param2, OUT param3), IN param1, IN param2, OUT param3, const ParamInfo *param_info, String config_path="")LambdaTransform< IN, OUT, IN, IN, OUT, OUT >inline
LambdaTransform(OUT(*function)(IN input, IN param1, IN param2, OUT param3, OUT param4), IN param1, IN param2, OUT param3, OUT param4, const ParamInfo *param_info, String config_path="")LambdaTransform< IN, OUT, IN, IN, OUT, OUT >inline
LambdaTransform(OUT(*function)(IN input, IN param1, IN param2, OUT param3, OUT param4, bool param5), IN param1, IN param2, OUT param3, OUT param4, bool param5, const ParamInfo *param_info, String config_path="")LambdaTransform< IN, OUT, IN, IN, OUT, OUT >inline
LambdaTransform(OUT(*function)(IN input, IN param1, IN param2, OUT param3, OUT param4, bool param5, bool param6), IN param1, IN param2, OUT param3, OUT param4, bool param5, bool param6, const ParamInfo *param_info, String config_path="")LambdaTransform< IN, OUT, IN, IN, OUT, OUT >inline
set_configuration(const JsonObject &config) overrideLambdaTransform< IN, OUT, IN, IN, OUT, OUT >inline
set_input(IN input, uint8_t input_channel=0) overrideLambdaTransform< IN, OUT, IN, IN, OUT, OUT >inline
Transform(String config_path="")Transform< IN, OUT >inline
+
+ + + + diff --git a/docs/generated/docs/class_hysteresis.html b/docs/generated/docs/class_hysteresis.html new file mode 100644 index 000000000..c841ee1aa --- /dev/null +++ b/docs/generated/docs/class_hysteresis.html @@ -0,0 +1,242 @@ + + + + + + + +SensESP: Hysteresis< IN, OUT > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Hysteresis< IN, OUT > Class Template Reference
+
+
+ +

Hysteresis function. + More...

+ +

#include <hysteresis.h>

+
+Inheritance diagram for Hysteresis< IN, OUT >:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Hysteresis (IN lower_threshold, IN upper_threshold, OUT low_output, OUT high_output, String config_path="")
 
- Public Member Functions inherited from LambdaTransform< IN, OUT, IN, IN, OUT, OUT >
 LambdaTransform (OUT(*function)(IN input), String config_path="")
 
 LambdaTransform (OUT(*function)(IN input), const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (OUT(*function)(IN input, IN param1), IN param1, const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (OUT(*function)(IN input, IN param1, IN param2), IN param1, IN param2, const ParamInfo *param_info, String config_path="")
 LambdaTransform constructor for two-parameter function. More...
 
 LambdaTransform (OUT(*function)(IN input, IN param1, IN param2, OUT param3), IN param1, IN param2, OUT param3, const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (OUT(*function)(IN input, IN param1, IN param2, OUT param3, OUT param4), IN param1, IN param2, OUT param3, OUT param4, const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (OUT(*function)(IN input, IN param1, IN param2, OUT param3, OUT param4, bool param5), IN param1, IN param2, OUT param3, OUT param4, bool param5, const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (OUT(*function)(IN input, IN param1, IN param2, OUT param3, OUT param4, bool param5, bool param6), IN param1, IN param2, OUT param3, OUT param4, bool param5, bool param6, const ParamInfo *param_info, String config_path="")
 
void set_input (IN input, uint8_t input_channel=0) override
 
void get_configuration (JsonObject &doc) override
 
bool set_configuration (const JsonObject &config) override
 
String get_config_schema () override
 
- Public Member Functions inherited from Transform< IN, OUT >
 Transform (String config_path="")
 
Transform< IN, OUT > * connectFrom (ValueProducer< OUT > *producer0, ValueProducer< OUT > *producer1=NULL, ValueProducer< OUT > *producer2=NULL, ValueProducer< OUT > *producer3=NULL, ValueProducer< OUT > *producer4=NULL)
 
+

Detailed Description

+

template<class IN, class OUT>
+class Hysteresis< IN, OUT >

+ +

Hysteresis function.

+

Hysteresis is a threshold switch with a dead zone: to prevent switching back and forth at the threshold value, input has to rise above the upper threshold before being switched high, and has to decrease below the lower threshold before being switched back low.

+
Template Parameters
+ + + +
INInput variable type
OUTOutput variable type
+
+
+
Parameters
+ + + + + + +
[in]lower_thresholdLower threshold value
[in]upper_thresholdUpper threshold value
[in]low_outputOutput value when hysteresis function output is low
[in]high_outputOutput value when hysteresis function output is high
[in]config_pathConfiguration path for the transform
+
+
+ +

Definition at line 31 of file hysteresis.h.

+

Constructor & Destructor Documentation

+ +

◆ Hysteresis()

+ +
+
+
+template<class IN , class OUT >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Hysteresis< IN, OUT >::Hysteresis (IN lower_threshold,
IN upper_threshold,
OUT low_output,
OUT high_output,
String config_path = "" 
)
+
+inline
+
+ +

Definition at line 33 of file hysteresis.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/generated/docs/class_hysteresis.js b/docs/generated/docs/class_hysteresis.js new file mode 100644 index 000000000..19fc4427c --- /dev/null +++ b/docs/generated/docs/class_hysteresis.js @@ -0,0 +1,4 @@ +var class_hysteresis = +[ + [ "Hysteresis", "class_hysteresis.html#aa3f2f59d852e7ab8d8ee0b9cb799a04d", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_hysteresis__inherit__graph.map b/docs/generated/docs/class_hysteresis__inherit__graph.map new file mode 100644 index 000000000..85d343231 --- /dev/null +++ b/docs/generated/docs/class_hysteresis__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_hysteresis__inherit__graph.md5 b/docs/generated/docs/class_hysteresis__inherit__graph.md5 new file mode 100644 index 000000000..4ad1d48e0 --- /dev/null +++ b/docs/generated/docs/class_hysteresis__inherit__graph.md5 @@ -0,0 +1 @@ +ea5427d36b0528d4552a03f49704e06a \ No newline at end of file diff --git a/docs/generated/docs/class_hysteresis__inherit__graph.png b/docs/generated/docs/class_hysteresis__inherit__graph.png new file mode 100644 index 000000000..88f11b12a Binary files /dev/null and b/docs/generated/docs/class_hysteresis__inherit__graph.png differ diff --git a/docs/generated/docs/class_i_n_a219-members.html b/docs/generated/docs/class_i_n_a219-members.html new file mode 100644 index 000000000..77136843d --- /dev/null +++ b/docs/generated/docs/class_i_n_a219-members.html @@ -0,0 +1,121 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
INA219 Member List
+
+
+ +

This is the complete list of members for INA219, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
enable()Enableinlinevirtual
Enable(uint8_t priority=0)Enable
enable_all()Enablestatic
enableAll()Enableinlinestatic
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
ina219INA219
INA219(uint8_t addr=0x40, INA219CAL_t calibration_setting=cal32_2, String config_path="")INA219
load_configuration()Configurableprotectedvirtual
notify()Observable
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
+
+ + + + diff --git a/docs/generated/docs/class_i_n_a219.html b/docs/generated/docs/class_i_n_a219.html new file mode 100644 index 000000000..a211536aa --- /dev/null +++ b/docs/generated/docs/class_i_n_a219.html @@ -0,0 +1,245 @@ + + + + + + + +SensESP: INA219 Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
INA219 Class Reference
+
+
+ +

#include <ina219.h>

+
+Inheritance diagram for INA219:
+
+
Inheritance graph
+ + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 INA219 (uint8_t addr=0x40, INA219CAL_t calibration_setting=cal32_2, String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
+ + + + + + +

+Public Attributes

Adafruit_INA219 * ina219
 
- Public Attributes inherited from Configurable
const String config_path
 
+ + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
+

Detailed Description

+
+

Definition at line 21 of file ina219.h.

+

Constructor & Destructor Documentation

+ +

◆ INA219()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
INA219::INA219 (uint8_t addr = 0x40,
INA219CAL_t calibration_setting = cal32_2,
String config_path = "" 
)
+
+ +

Definition at line 9 of file ina219.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + +
+ +
+
+

Member Data Documentation

+ +

◆ ina219

+ +
+
+ + + + +
Adafruit_INA219* INA219::ina219
+
+ +

Definition at line 25 of file ina219.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_i_n_a219.js b/docs/generated/docs/class_i_n_a219.js new file mode 100644 index 000000000..e179d59f9 --- /dev/null +++ b/docs/generated/docs/class_i_n_a219.js @@ -0,0 +1,5 @@ +var class_i_n_a219 = +[ + [ "INA219", "class_i_n_a219.html#adc0300a6f6fa99ee85786a354614e343", null ], + [ "ina219", "class_i_n_a219.html#a3bdfe18ddb1ca53b53f48ac8672a94d0", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_i_n_a219__inherit__graph.map b/docs/generated/docs/class_i_n_a219__inherit__graph.map new file mode 100644 index 000000000..9893668ac --- /dev/null +++ b/docs/generated/docs/class_i_n_a219__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/class_i_n_a219__inherit__graph.md5 b/docs/generated/docs/class_i_n_a219__inherit__graph.md5 new file mode 100644 index 000000000..afd1f24ab --- /dev/null +++ b/docs/generated/docs/class_i_n_a219__inherit__graph.md5 @@ -0,0 +1 @@ +8d03a435bfe4351d5542ca3f099dc528 \ No newline at end of file diff --git a/docs/generated/docs/class_i_n_a219__inherit__graph.png b/docs/generated/docs/class_i_n_a219__inherit__graph.png new file mode 100644 index 000000000..4b416face Binary files /dev/null and b/docs/generated/docs/class_i_n_a219__inherit__graph.png differ diff --git a/docs/generated/docs/class_i_n_a219_adc0300a6f6fa99ee85786a354614e343_cgraph.map b/docs/generated/docs/class_i_n_a219_adc0300a6f6fa99ee85786a354614e343_cgraph.map new file mode 100644 index 000000000..0cbd037d8 --- /dev/null +++ b/docs/generated/docs/class_i_n_a219_adc0300a6f6fa99ee85786a354614e343_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_i_n_a219_adc0300a6f6fa99ee85786a354614e343_cgraph.md5 b/docs/generated/docs/class_i_n_a219_adc0300a6f6fa99ee85786a354614e343_cgraph.md5 new file mode 100644 index 000000000..02ff68cd9 --- /dev/null +++ b/docs/generated/docs/class_i_n_a219_adc0300a6f6fa99ee85786a354614e343_cgraph.md5 @@ -0,0 +1 @@ +8f438d9a8a8b7b7b4fd8ec022101137c \ No newline at end of file diff --git a/docs/generated/docs/class_i_n_a219_adc0300a6f6fa99ee85786a354614e343_cgraph.png b/docs/generated/docs/class_i_n_a219_adc0300a6f6fa99ee85786a354614e343_cgraph.png new file mode 100644 index 000000000..5ad6be6ca Binary files /dev/null and b/docs/generated/docs/class_i_n_a219_adc0300a6f6fa99ee85786a354614e343_cgraph.png differ diff --git a/docs/generated/docs/class_i_n_a219_value-members.html b/docs/generated/docs/class_i_n_a219_value-members.html new file mode 100644 index 000000000..d1a7c84af --- /dev/null +++ b/docs/generated/docs/class_i_n_a219_value-members.html @@ -0,0 +1,126 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
INA219Value Member List
+
+
+ +

This is the complete list of members for INA219Value, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connect_to(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
enable() override finalINA219Valuevirtual
Enable(uint8_t priority=0)Enable
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< float >inlinevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
ina219INA219Value
INA219Value(INA219 *ina219, INA219ValType val_type, uint read_delay=500, String config_path="")INA219Value
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_priority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< float >inline
+
+ + + + diff --git a/docs/generated/docs/class_i_n_a219_value.html b/docs/generated/docs/class_i_n_a219_value.html new file mode 100644 index 000000000..5b5a39ec6 --- /dev/null +++ b/docs/generated/docs/class_i_n_a219_value.html @@ -0,0 +1,296 @@ + + + + + + + +SensESP: INA219Value Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
INA219Value Class Reference
+
+
+ +

#include <ina219.h>

+
+Inheritance diagram for INA219Value:
+
+
Inheritance graph
+ + + + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 INA219Value (INA219 *ina219, INA219ValType val_type, uint read_delay=500, String config_path="")
 
void enable () override final
 
- Public Member Functions inherited from NumericSensor
 NumericSensor (String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connect_to (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connect_to (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
+ + + + + + +

+Public Attributes

INA219ina219
 
- Public Attributes inherited from Configurable
const String config_path
 
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
+

Detailed Description

+
+

Definition at line 33 of file ina219.h.

+

Constructor & Destructor Documentation

+ +

◆ INA219Value()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INA219Value::INA219Value (INA219ina219,
INA219ValType val_type,
uint read_delay = 500,
String config_path = "" 
)
+
+ +

Definition at line 26 of file ina219.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+ + + + + +
+ + + + + + + +
void INA219Value::enable ()
+
+finaloverridevirtual
+
+

Called during the initialization process. Override this method to add runtime initialization code to your class

+ +

Reimplemented from Enable.

+ +

Definition at line 35 of file ina219.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+

Member Data Documentation

+ +

◆ ina219

+ +
+
+ + + + +
INA219* INA219Value::ina219
+
+ +

Definition at line 38 of file ina219.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_i_n_a219_value.js b/docs/generated/docs/class_i_n_a219_value.js new file mode 100644 index 000000000..214ad4c66 --- /dev/null +++ b/docs/generated/docs/class_i_n_a219_value.js @@ -0,0 +1,6 @@ +var class_i_n_a219_value = +[ + [ "INA219Value", "class_i_n_a219_value.html#a929d4abc76063b697a4836da30d1d5c6", null ], + [ "enable", "class_i_n_a219_value.html#a25ba9003cc31670bbcf36d5b8cd0a3f4", null ], + [ "ina219", "class_i_n_a219_value.html#afbc6bf7ce37f6c243d0f944bfa9cfef3", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_i_n_a219_value__inherit__graph.map b/docs/generated/docs/class_i_n_a219_value__inherit__graph.map new file mode 100644 index 000000000..b5fc2ec5f --- /dev/null +++ b/docs/generated/docs/class_i_n_a219_value__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_i_n_a219_value__inherit__graph.md5 b/docs/generated/docs/class_i_n_a219_value__inherit__graph.md5 new file mode 100644 index 000000000..24fe5c345 --- /dev/null +++ b/docs/generated/docs/class_i_n_a219_value__inherit__graph.md5 @@ -0,0 +1 @@ +cb8fb71950e15a4dc254bf08ca60b258 \ No newline at end of file diff --git a/docs/generated/docs/class_i_n_a219_value__inherit__graph.png b/docs/generated/docs/class_i_n_a219_value__inherit__graph.png new file mode 100644 index 000000000..418c37302 Binary files /dev/null and b/docs/generated/docs/class_i_n_a219_value__inherit__graph.png differ diff --git a/docs/generated/docs/class_i_n_a219_value_a25ba9003cc31670bbcf36d5b8cd0a3f4_cgraph.map b/docs/generated/docs/class_i_n_a219_value_a25ba9003cc31670bbcf36d5b8cd0a3f4_cgraph.map new file mode 100644 index 000000000..a4d1e5c91 --- /dev/null +++ b/docs/generated/docs/class_i_n_a219_value_a25ba9003cc31670bbcf36d5b8cd0a3f4_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_i_n_a219_value_a25ba9003cc31670bbcf36d5b8cd0a3f4_cgraph.md5 b/docs/generated/docs/class_i_n_a219_value_a25ba9003cc31670bbcf36d5b8cd0a3f4_cgraph.md5 new file mode 100644 index 000000000..3e64dea77 --- /dev/null +++ b/docs/generated/docs/class_i_n_a219_value_a25ba9003cc31670bbcf36d5b8cd0a3f4_cgraph.md5 @@ -0,0 +1 @@ +4d4b82daa8641f87fd69073fc26c4a3b \ No newline at end of file diff --git a/docs/generated/docs/class_i_n_a219_value_a25ba9003cc31670bbcf36d5b8cd0a3f4_cgraph.png b/docs/generated/docs/class_i_n_a219_value_a25ba9003cc31670bbcf36d5b8cd0a3f4_cgraph.png new file mode 100644 index 000000000..6bf005ee3 Binary files /dev/null and b/docs/generated/docs/class_i_n_a219_value_a25ba9003cc31670bbcf36d5b8cd0a3f4_cgraph.png differ diff --git a/docs/generated/docs/class_i_p_addr_dev-members.html b/docs/generated/docs/class_i_p_addr_dev-members.html new file mode 100644 index 000000000..47a32b9b3 --- /dev/null +++ b/docs/generated/docs/class_i_p_addr_dev-members.html @@ -0,0 +1,129 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IPAddrDev Member List
+
+
+ +

This is the complete list of members for IPAddrDev, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< String > *consumer, uint8_t input_channel=0)ValueProducer< String >inline
connect_to(Transform< String, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< String >inline
connectTo(ValueConsumer< String > *consumer, uint8_t input_channel=0)ValueProducer< String >inline
connectTo(Transform< String, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< String >inline
Enable(uint8_t priority=0)Enable
enable() override finalIPAddrDevvirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< String >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
get_value_name()IPAddrDevinline
IPAddrDev()IPAddrDevinline
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< String >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
StringSensor(String config_path="")StringSensor
ValueProducer()ValueProducer< String >inline
+
+ + + + diff --git a/docs/class_i_p_addr_dev.html b/docs/generated/docs/class_i_p_addr_dev.html similarity index 81% rename from docs/class_i_p_addr_dev.html rename to docs/generated/docs/class_i_p_addr_dev.html index 4084d05bc..861105076 100644 --- a/docs/class_i_p_addr_dev.html +++ b/docs/generated/docs/class_i_p_addr_dev.html @@ -3,7 +3,7 @@ - + SensESP: IPAddrDev Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -99,15 +95,15 @@
Inheritance diagram for IPAddrDev:
-
Inheritance graph
- - - - - - - - +
Inheritance graph
+ + + + + + + +
[legend]
@@ -133,8 +129,8 @@ - - + + @@ -144,23 +140,23 @@ - - - - - - - - + + + + - - - - + + + + + + + +
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< String >
 ValueProducer ()
 
virtual const String & get ()
 
void connectTo (ValueConsumer< String > *pConsumer, uint8_t inputChannel=0)
 
Transform< String, T2 > * connectTo (Transform< String, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
void connect_to (ValueConsumer< String > *consumer, uint8_t input_channel=0)
 
Transform< String, T2 > * connect_to (Transform< String, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< String > *consumer, uint8_t input_channel=0)
 
Transform< String, T2 > * connectTo (Transform< String, T2 > *consumer_producer, uint8_t input_channel=0)
 
@@ -168,24 +164,23 @@ - - + + + + - - -

Additional Inherited Members

static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< String >
String output
 

Detailed Description

-

Definition at line 37 of file system_info.h.

+

Definition at line 40 of file system_info.h.

Constructor & Destructor Documentation

◆ IPAddrDev()

@@ -210,7 +205,7 @@

-

Definition at line 39 of file system_info.h.

+

Definition at line 42 of file system_info.h.

@@ -241,7 +236,7 @@

Enable.

-

Definition at line 62 of file system_info.cpp.

+

Definition at line 55 of file system_info.cpp.

@@ -268,7 +263,7 @@

-

Definition at line 41 of file system_info.h.

+

Definition at line 44 of file system_info.h.

@@ -282,9 +277,7 @@

diff --git a/docs/class_i_p_addr_dev.js b/docs/generated/docs/class_i_p_addr_dev.js similarity index 100% rename from docs/class_i_p_addr_dev.js rename to docs/generated/docs/class_i_p_addr_dev.js diff --git a/docs/generated/docs/class_i_p_addr_dev__inherit__graph.map b/docs/generated/docs/class_i_p_addr_dev__inherit__graph.map new file mode 100644 index 000000000..e56d8f43a --- /dev/null +++ b/docs/generated/docs/class_i_p_addr_dev__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_i_p_addr_dev__inherit__graph.md5 b/docs/generated/docs/class_i_p_addr_dev__inherit__graph.md5 new file mode 100644 index 000000000..d9d9ecb8f --- /dev/null +++ b/docs/generated/docs/class_i_p_addr_dev__inherit__graph.md5 @@ -0,0 +1 @@ +01597876f452bbc0a8714916333fef4b \ No newline at end of file diff --git a/docs/generated/docs/class_i_p_addr_dev__inherit__graph.png b/docs/generated/docs/class_i_p_addr_dev__inherit__graph.png new file mode 100644 index 000000000..78ac6cae1 Binary files /dev/null and b/docs/generated/docs/class_i_p_addr_dev__inherit__graph.png differ diff --git a/docs/generated/docs/class_integer_sensor-members.html b/docs/generated/docs/class_integer_sensor-members.html new file mode 100644 index 000000000..966f7b504 --- /dev/null +++ b/docs/generated/docs/class_integer_sensor-members.html @@ -0,0 +1,127 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntegerSensor Member List
+
+
+ +

This is the complete list of members for IntegerSensor, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< int > *consumer, uint8_t input_channel=0)ValueProducer< int >inline
connect_to(Transform< int, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< int >inline
connectTo(ValueConsumer< int > *consumer, uint8_t input_channel=0)ValueProducer< int >inline
connectTo(Transform< int, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< int >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< int >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
IntegerSensor(String config_path="")IntegerSensor
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< int >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< int >inline
+
+ + + + diff --git a/docs/class_integer_sensor.html b/docs/generated/docs/class_integer_sensor.html similarity index 79% rename from docs/class_integer_sensor.html rename to docs/generated/docs/class_integer_sensor.html index b3de0eedb..aff89c5df 100644 --- a/docs/class_integer_sensor.html +++ b/docs/generated/docs/class_integer_sensor.html @@ -3,7 +3,7 @@ - + SensESP: IntegerSensor Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -99,14 +95,14 @@
Inheritance diagram for IntegerSensor:
-
Inheritance graph
- - - - - - - +
Inheritance graph
+ + + + + + +
[legend]
@@ -125,8 +121,8 @@ - - + + @@ -138,23 +134,23 @@ - - - - - - - - + + + + - - - - + + + + + + + +
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< int >
 ValueProducer ()
 
virtual const int & get ()
 
void connectTo (ValueConsumer< int > *pConsumer, uint8_t inputChannel=0)
 
Transform< int, T2 > * connectTo (Transform< int, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
void connect_to (ValueConsumer< int > *consumer, uint8_t input_channel=0)
 
Transform< int, T2 > * connect_to (Transform< int, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< int > *consumer, uint8_t input_channel=0)
 
Transform< int, T2 > * connectTo (Transform< int, T2 > *consumer_producer, uint8_t input_channel=0)
 
@@ -162,17 +158,16 @@ - - + + + + - - - @@ -197,7 +192,7 @@

-

Definition at line 19 of file sensor.cpp.

+

Definition at line 12 of file sensor.cpp.

@@ -211,9 +206,7 @@

diff --git a/docs/class_integer_sensor.js b/docs/generated/docs/class_integer_sensor.js similarity index 100% rename from docs/class_integer_sensor.js rename to docs/generated/docs/class_integer_sensor.js diff --git a/docs/generated/docs/class_integer_sensor__inherit__graph.map b/docs/generated/docs/class_integer_sensor__inherit__graph.map new file mode 100644 index 000000000..02b11be01 --- /dev/null +++ b/docs/generated/docs/class_integer_sensor__inherit__graph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/generated/docs/class_integer_sensor__inherit__graph.md5 b/docs/generated/docs/class_integer_sensor__inherit__graph.md5 new file mode 100644 index 000000000..34c08cb7a --- /dev/null +++ b/docs/generated/docs/class_integer_sensor__inherit__graph.md5 @@ -0,0 +1 @@ +82d45b7266895c10282a172b024bd39c \ No newline at end of file diff --git a/docs/generated/docs/class_integer_sensor__inherit__graph.png b/docs/generated/docs/class_integer_sensor__inherit__graph.png new file mode 100644 index 000000000..f0d36f018 Binary files /dev/null and b/docs/generated/docs/class_integer_sensor__inherit__graph.png differ diff --git a/docs/generated/docs/class_integer_threshold-members.html b/docs/generated/docs/class_integer_threshold-members.html new file mode 100644 index 000000000..b0dc3da88 --- /dev/null +++ b/docs/generated/docs/class_integer_threshold-members.html @@ -0,0 +1,114 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+

Additional Inherited Members

static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< int >
int output
 
+ + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
IntegerThreshold Member List
+
+
+ +

This is the complete list of members for IntegerThreshold, including all inherited members.

+ + + + + + + + + + + + + +
connectFrom(ValueProducer< bool > *producer0, ValueProducer< bool > *producer1=NULL, ValueProducer< bool > *producer2=NULL, ValueProducer< bool > *producer3=NULL, ValueProducer< bool > *producer4=NULL)Transform< int, bool >inline
get_config_schema() overrideIntegerThresholdvirtual
get_configuration(JsonObject &doc) overrideIntegerThresholdvirtual
in_rangeThresholdTransform< int, bool >protected
IntegerThreshold(int min_value, int max_value, bool in_range=true, String config_path="")IntegerThresholdinline
max_valueThresholdTransform< int, bool >protected
min_valueThresholdTransform< int, bool >protected
out_rangeThresholdTransform< int, bool >protected
set_configuration(const JsonObject &config) overrideIntegerThresholdvirtual
set_input(int new_value, uint8_t input_channel=0) overrideThresholdTransform< int, bool >virtual
ThresholdTransform(int min_value, int max_value, bool in_range, bool out_range, String config_path="")ThresholdTransform< int, bool >inline
Transform(String config_path="")Transform< int, bool >inline
+
+ + + + diff --git a/docs/generated/docs/class_integer_threshold.html b/docs/generated/docs/class_integer_threshold.html new file mode 100644 index 000000000..85741721d --- /dev/null +++ b/docs/generated/docs/class_integer_threshold.html @@ -0,0 +1,292 @@ + + + + + + + +SensESP: IntegerThreshold Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IntegerThreshold Class Reference
+
+
+ +

#include <threshold.h>

+
+Inheritance diagram for IntegerThreshold:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 IntegerThreshold (int min_value, int max_value, bool in_range=true, String config_path="")
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from ThresholdTransform< int, bool >
 ThresholdTransform (int min_value, int max_value, bool in_range, bool out_range, String config_path="")
 
virtual void set_input (int new_value, uint8_t input_channel=0) override
 
- Public Member Functions inherited from Transform< int, bool >
 Transform (String config_path="")
 
Transform< int, bool > * connectFrom (ValueProducer< bool > *producer0, ValueProducer< bool > *producer1=NULL, ValueProducer< bool > *producer2=NULL, ValueProducer< bool > *producer3=NULL, ValueProducer< bool > *producer4=NULL)
 
+ + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from ThresholdTransform< int, bool >
int min_value
 
int max_value
 
bool in_range
 
bool out_range
 
+

Detailed Description

+

A Transform that translates an integer value into a boolean value. min_value and MaxValue set a range. If input value is in the range, the output will be the value of in_range. Otherwise, it will be !in_range.

+ +

Definition at line 59 of file threshold.h.

+

Constructor & Destructor Documentation

+ +

◆ IntegerThreshold()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IntegerThreshold::IntegerThreshold (int min_value,
int max_value,
bool in_range = true,
String config_path = "" 
)
+
+inline
+
+ +

Definition at line 61 of file threshold.h.

+ +
+
+

Member Function Documentation

+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String IntegerThreshold::get_config_schema ()
+
+overridevirtual
+
+ +

Definition at line 80 of file threshold.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void IntegerThreshold::get_configuration (JsonObject & doc)
+
+overridevirtual
+
+ +

Definition at line 48 of file threshold.cpp.

+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool IntegerThreshold::set_configuration (const JsonObject & config)
+
+overridevirtual
+
+ +

Definition at line 65 of file threshold.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_integer_threshold.js b/docs/generated/docs/class_integer_threshold.js new file mode 100644 index 000000000..471e204f9 --- /dev/null +++ b/docs/generated/docs/class_integer_threshold.js @@ -0,0 +1,7 @@ +var class_integer_threshold = +[ + [ "IntegerThreshold", "class_integer_threshold.html#a63bb646505b2c51b0d57b0799d062d86", null ], + [ "get_config_schema", "class_integer_threshold.html#a23437fadcb2212cadb7d25724d2fd90c", null ], + [ "get_configuration", "class_integer_threshold.html#a87724e11f2fade5b245f4099a9f0323c", null ], + [ "set_configuration", "class_integer_threshold.html#a92097f9bf12f55f4ccea4c44e63b1ff2", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_integer_threshold__inherit__graph.map b/docs/generated/docs/class_integer_threshold__inherit__graph.map new file mode 100644 index 000000000..592a4c989 --- /dev/null +++ b/docs/generated/docs/class_integer_threshold__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_integer_threshold__inherit__graph.md5 b/docs/generated/docs/class_integer_threshold__inherit__graph.md5 new file mode 100644 index 000000000..34acd496a --- /dev/null +++ b/docs/generated/docs/class_integer_threshold__inherit__graph.md5 @@ -0,0 +1 @@ +99e1d7c67dfa507fef6d62501d6a3d1d \ No newline at end of file diff --git a/docs/generated/docs/class_integer_threshold__inherit__graph.png b/docs/generated/docs/class_integer_threshold__inherit__graph.png new file mode 100644 index 000000000..eca43a593 Binary files /dev/null and b/docs/generated/docs/class_integer_threshold__inherit__graph.png differ diff --git a/docs/generated/docs/class_integrator-members.html b/docs/generated/docs/class_integrator-members.html new file mode 100644 index 000000000..de90d5d97 --- /dev/null +++ b/docs/generated/docs/class_integrator-members.html @@ -0,0 +1,111 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Integrator Member List
+
+
+ +

This is the complete list of members for Integrator, including all inherited members.

+ + + + + + + + + + +
connectFrom(ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)Transform< float, float >inline
enable() override finalIntegratorvirtual
get_config_schema() overrideIntegratorvirtual
get_configuration(JsonObject &doc) override finalIntegratorvirtual
Integrator(float k=1, float value=0, String config_path="")Integrator
set_configuration(const JsonObject &config) override finalIntegratorvirtual
set_input(float input, uint8_t inputChannel=0) override finalIntegratorvirtual
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
+
+ + + + diff --git a/docs/generated/docs/class_integrator.html b/docs/generated/docs/class_integrator.html new file mode 100644 index 000000000..a49fce7c9 --- /dev/null +++ b/docs/generated/docs/class_integrator.html @@ -0,0 +1,332 @@ + + + + + + + +SensESP: Integrator Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Integrator Class Reference
+
+
+ +

#include <integrator.h>

+
+Inheritance diagram for Integrator:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Integrator (float k=1, float value=0, String config_path="")
 
virtual void enable () override final
 
virtual void set_input (float input, uint8_t inputChannel=0) override final
 
virtual void get_configuration (JsonObject &doc) override final
 
virtual bool set_configuration (const JsonObject &config) override final
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
+

Detailed Description

+
+

Definition at line 7 of file integrator.h.

+

Constructor & Destructor Documentation

+ +

◆ Integrator()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Integrator::Integrator (float k = 1,
float value = 0,
String config_path = "" 
)
+
+ +

Definition at line 7 of file integrator.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+ + + + + +
+ + + + + + + +
void Integrator::enable ()
+
+finaloverridevirtual
+
+ +

Definition at line 13 of file integrator.cpp.

+ +
+
+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String Integrator::get_config_schema ()
+
+overridevirtual
+
+ +

Definition at line 38 of file integrator.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void Integrator::get_configuration (JsonObject & doc)
+
+finaloverridevirtual
+
+ +

Definition at line 25 of file integrator.cpp.

+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Integrator::set_configuration (const JsonObject & config)
+
+finaloverridevirtual
+
+ +

Definition at line 40 of file integrator.cpp.

+ +
+
+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Integrator::set_input (float input,
uint8_t inputChannel = 0 
)
+
+finaloverridevirtual
+
+ +

Definition at line 20 of file integrator.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/class_integrator.js b/docs/generated/docs/class_integrator.js similarity index 83% rename from docs/class_integrator.js rename to docs/generated/docs/class_integrator.js index eef3932cb..7a155e6ea 100644 --- a/docs/class_integrator.js +++ b/docs/generated/docs/class_integrator.js @@ -3,7 +3,7 @@ var class_integrator = [ "Integrator", "class_integrator.html#a787de1dd45b1ced5607e6209f0e01dd0", null ], [ "enable", "class_integrator.html#ad52503a30ef9abf171209988d256ec22", null ], [ "get_config_schema", "class_integrator.html#a513afaf30460fee68abd295780527d05", null ], - [ "get_configuration", "class_integrator.html#a1b4cfd7f598d8456a582865a88d768e7", null ], + [ "get_configuration", "class_integrator.html#a15cc585266b8a2308fa3cc9467693384", null ], [ "set_configuration", "class_integrator.html#aa53205d3211635dad0a035adf5d511a6", null ], [ "set_input", "class_integrator.html#a7fb38d2d19aa3e918dbee34b9096f7a6", null ] ]; \ No newline at end of file diff --git a/docs/generated/docs/class_integrator__inherit__graph.map b/docs/generated/docs/class_integrator__inherit__graph.map new file mode 100644 index 000000000..132c2c95a --- /dev/null +++ b/docs/generated/docs/class_integrator__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_integrator__inherit__graph.md5 b/docs/generated/docs/class_integrator__inherit__graph.md5 new file mode 100644 index 000000000..7c49473ad --- /dev/null +++ b/docs/generated/docs/class_integrator__inherit__graph.md5 @@ -0,0 +1 @@ +c776c7ba60213e06ed0b243a8713fdd6 \ No newline at end of file diff --git a/docs/generated/docs/class_integrator__inherit__graph.png b/docs/generated/docs/class_integrator__inherit__graph.png new file mode 100644 index 000000000..f518397a7 Binary files /dev/null and b/docs/generated/docs/class_integrator__inherit__graph.png differ diff --git a/docs/generated/docs/class_lambda_transform-members.html b/docs/generated/docs/class_lambda_transform-members.html new file mode 100644 index 000000000..84a5920f1 --- /dev/null +++ b/docs/generated/docs/class_lambda_transform-members.html @@ -0,0 +1,116 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 > Member List
+
+
+ +

This is the complete list of members for LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >, including all inherited members.

+ + + + + + + + + + + + + + + +
connectFrom(ValueProducer< OUT > *producer0, ValueProducer< OUT > *producer1=NULL, ValueProducer< OUT > *producer2=NULL, ValueProducer< OUT > *producer3=NULL, ValueProducer< OUT > *producer4=NULL)Transform< IN, OUT >inline
get_config_schema() overrideLambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >inline
get_configuration(JsonObject &doc) overrideLambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >inline
LambdaTransform(OUT(*function)(IN input), String config_path="")LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >inline
LambdaTransform(OUT(*function)(IN input), const ParamInfo *param_info, String config_path="")LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >inline
LambdaTransform(OUT(*function)(IN input, P1 param1), P1 param1, const ParamInfo *param_info, String config_path="")LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >inline
LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2), P1 param1, P2 param2, const ParamInfo *param_info, String config_path="")LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >inline
LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3), P1 param1, P2 param2, P3 param3, const ParamInfo *param_info, String config_path="")LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >inline
LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4), P1 param1, P2 param2, P3 param3, P4 param4, const ParamInfo *param_info, String config_path="")LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >inline
LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4, P5 param5), P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, const ParamInfo *param_info, String config_path="")LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >inline
LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, P6 param6), P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, P6 param6, const ParamInfo *param_info, String config_path="")LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >inline
set_configuration(const JsonObject &config) overrideLambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >inline
set_input(IN input, uint8_t input_channel=0) overrideLambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >inline
Transform(String config_path="")Transform< IN, OUT >inline
+
+ + + + diff --git a/docs/generated/docs/class_lambda_transform.html b/docs/generated/docs/class_lambda_transform.html new file mode 100644 index 000000000..3bf7339b2 --- /dev/null +++ b/docs/generated/docs/class_lambda_transform.html @@ -0,0 +1,807 @@ + + + + + + + +SensESP: LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 > Class Template Reference
+
+
+ +

Construct a new transform based on a single function. + More...

+ +

#include <lambda_transform.h>

+
+Inheritance diagram for LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >:
+
+
Inheritance graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LambdaTransform (OUT(*function)(IN input), String config_path="")
 
 LambdaTransform (OUT(*function)(IN input), const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (OUT(*function)(IN input, P1 param1), P1 param1, const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (OUT(*function)(IN input, P1 param1, P2 param2), P1 param1, P2 param2, const ParamInfo *param_info, String config_path="")
 LambdaTransform constructor for two-parameter function. More...
 
 LambdaTransform (OUT(*function)(IN input, P1 param1, P2 param2, P3 param3), P1 param1, P2 param2, P3 param3, const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4), P1 param1, P2 param2, P3 param3, P4 param4, const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4, P5 param5), P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, P6 param6), P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, P6 param6, const ParamInfo *param_info, String config_path="")
 
void set_input (IN input, uint8_t input_channel=0) override
 
void get_configuration (JsonObject &doc) override
 
bool set_configuration (const JsonObject &config) override
 
String get_config_schema () override
 
- Public Member Functions inherited from Transform< IN, OUT >
 Transform (String config_path="")
 
Transform< IN, OUT > * connectFrom (ValueProducer< OUT > *producer0, ValueProducer< OUT > *producer1=NULL, ValueProducer< OUT > *producer2=NULL, ValueProducer< OUT > *producer3=NULL, ValueProducer< OUT > *producer4=NULL)
 
+

Detailed Description

+

template<class IN, class OUT, class P1 = bool, class P2 = bool, class P3 = bool, class P4 = bool, class P5 = bool, class P6 = bool>
+class LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >

+ +

Construct a new transform based on a single function.

+

LambdaTransform provides an easy way of creating custom transformations without having to create new Transform classes. You just create a transform function and feed that to a LambdaTransform constructor together with possible configuration parameters values and configuration parameter metadata (key names and descriptions).

+
Template Parameters
+ + + + + + + + + +
INTransform function input value type
OUTTransform function output value type
P1Transform function parameter 1 type
P2Transform function parameter 2 type
P3Transform function parameter 3 type
P4Transform function parameter 4 type
P5Transform function parameter 5 type
P6Transform function parameter 6 type
+
+
+ +

Definition at line 68 of file lambda_transform.h.

+

Constructor & Destructor Documentation

+ +

◆ LambdaTransform() [1/8]

+ +
+
+
+template<class IN , class OUT , class P1 = bool, class P2 = bool, class P3 = bool, class P4 = bool, class P5 = bool, class P6 = bool>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >::LambdaTransform (OUT(*)(IN input) function,
String config_path = "" 
)
+
+inline
+
+ +

Definition at line 70 of file lambda_transform.h.

+ +
+
+ +

◆ LambdaTransform() [2/8]

+ +
+
+
+template<class IN , class OUT , class P1 = bool, class P2 = bool, class P3 = bool, class P4 = bool, class P5 = bool, class P6 = bool>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >::LambdaTransform (OUT(*)(IN input) function,
const ParamInfoparam_info,
String config_path = "" 
)
+
+inline
+
+ +

Definition at line 75 of file lambda_transform.h.

+ +
+
+ +

◆ LambdaTransform() [3/8]

+ +
+
+
+template<class IN , class OUT , class P1 = bool, class P2 = bool, class P3 = bool, class P4 = bool, class P5 = bool, class P6 = bool>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >::LambdaTransform (OUT(*)(IN input, P1 param1) function,
P1 param1,
const ParamInfoparam_info,
String config_path = "" 
)
+
+inline
+
+ +

Definition at line 84 of file lambda_transform.h.

+ +
+
+ +

◆ LambdaTransform() [4/8]

+ +
+
+
+template<class IN , class OUT , class P1 = bool, class P2 = bool, class P3 = bool, class P4 = bool, class P5 = bool, class P6 = bool>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >::LambdaTransform (OUT(*)(IN input, P1 param1, P2 param2) function,
P1 param1,
P2 param2,
const ParamInfoparam_info,
String config_path = "" 
)
+
+inline
+
+ +

LambdaTransform constructor for two-parameter function.

+

Construct a new LambdaTransform object which takes an input and two configuration parameters. Multiple overloaded constructors exist; their arguments can be extrapolated from this one.

+
Parameters
+ + + + + + +
functionFunction to be executed for every new input value
param1Configuration parameter 1
param2Configuration parameter 2
param_infoKeys and Descriptions of each configuration parameter
config_pathConfiguration path for the transform
+
+
+ +

Definition at line 107 of file lambda_transform.h.

+ +
+
+ +

◆ LambdaTransform() [5/8]

+ +
+
+
+template<class IN , class OUT , class P1 = bool, class P2 = bool, class P3 = bool, class P4 = bool, class P5 = bool, class P6 = bool>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >::LambdaTransform (OUT(*)(IN input, P1 param1, P2 param2, P3 param3) function,
P1 param1,
P2 param2,
P3 param3,
const ParamInfoparam_info,
String config_path = "" 
)
+
+inline
+
+ +

Definition at line 119 of file lambda_transform.h.

+ +
+
+ +

◆ LambdaTransform() [6/8]

+ +
+
+
+template<class IN , class OUT , class P1 = bool, class P2 = bool, class P3 = bool, class P4 = bool, class P5 = bool, class P6 = bool>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >::LambdaTransform (OUT(*)(IN input, P1 param1, P2 param2, P3 param3, P4 param4) function,
P1 param1,
P2 param2,
P3 param3,
P4 param4,
const ParamInfoparam_info,
String config_path = "" 
)
+
+inline
+
+ +

Definition at line 132 of file lambda_transform.h.

+ +
+
+ +

◆ LambdaTransform() [7/8]

+ +
+
+
+template<class IN , class OUT , class P1 = bool, class P2 = bool, class P3 = bool, class P4 = bool, class P5 = bool, class P6 = bool>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >::LambdaTransform (OUT(*)(IN input, P1 param1, P2 param2, P3 param3, P4 param4, P5 param5) function,
P1 param1,
P2 param2,
P3 param3,
P4 param4,
P5 param5,
const ParamInfoparam_info,
String config_path = "" 
)
+
+inline
+
+ +

Definition at line 147 of file lambda_transform.h.

+ +
+
+ +

◆ LambdaTransform() [8/8]

+ +
+
+
+template<class IN , class OUT , class P1 = bool, class P2 = bool, class P3 = bool, class P4 = bool, class P5 = bool, class P6 = bool>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >::LambdaTransform (OUT(*)(IN input, P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, P6 param6) function,
P1 param1,
P2 param2,
P3 param3,
P4 param4,
P5 param5,
P6 param6,
const ParamInfoparam_info,
String config_path = "" 
)
+
+inline
+
+ +

Definition at line 163 of file lambda_transform.h.

+ +
+
+

Member Function Documentation

+ +

◆ get_config_schema()

+ +
+
+
+template<class IN , class OUT , class P1 = bool, class P2 = bool, class P3 = bool, class P4 = bool, class P5 = bool, class P6 = bool>
+ + + + + +
+ + + + + + + +
String LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >::get_config_schema ()
+
+inlineoverride
+
+ +

Definition at line 263 of file lambda_transform.h.

+ +
+
+ +

◆ get_configuration()

+ +
+
+
+template<class IN , class OUT , class P1 = bool, class P2 = bool, class P3 = bool, class P4 = bool, class P5 = bool, class P6 = bool>
+ + + + + +
+ + + + + + + + +
void LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >::get_configuration (JsonObject & doc)
+
+inlineoverride
+
+ +

Definition at line 212 of file lambda_transform.h.

+ +
+
+ +

◆ set_configuration()

+ +
+
+
+template<class IN , class OUT , class P1 = bool, class P2 = bool, class P3 = bool, class P4 = bool, class P5 = bool, class P6 = bool>
+ + + + + +
+ + + + + + + + +
bool LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >::set_configuration (const JsonObject & config)
+
+inlineoverride
+
+ +

Definition at line 232 of file lambda_transform.h.

+ +
+
+ +

◆ set_input()

+ +
+
+
+template<class IN , class OUT , class P1 = bool, class P2 = bool, class P3 = bool, class P4 = bool, class P5 = bool, class P6 = bool>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >::set_input (IN input,
uint8_t input_channel = 0 
)
+
+inlineoverride
+
+ +

Definition at line 181 of file lambda_transform.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/generated/docs/class_lambda_transform.js b/docs/generated/docs/class_lambda_transform.js new file mode 100644 index 000000000..370e7e7a2 --- /dev/null +++ b/docs/generated/docs/class_lambda_transform.js @@ -0,0 +1,15 @@ +var class_lambda_transform = +[ + [ "LambdaTransform", "class_lambda_transform.html#af6d167a7ea4ba47ae7cb4bd3432e253d", null ], + [ "LambdaTransform", "class_lambda_transform.html#a939ffd37ee47ac29939718a7bd7454c8", null ], + [ "LambdaTransform", "class_lambda_transform.html#ac3925c430e7e61d7444ed8964c757129", null ], + [ "LambdaTransform", "class_lambda_transform.html#a51a052896ce2249e89e3f4309d91dba6", null ], + [ "LambdaTransform", "class_lambda_transform.html#aefd5de0dfb1b4275e8fc558d7fb684b3", null ], + [ "LambdaTransform", "class_lambda_transform.html#a5e427944d82efb35a67d4c2328a5cf0f", null ], + [ "LambdaTransform", "class_lambda_transform.html#a89c2e0c71f2b07f38e457c9c4b02787c", null ], + [ "LambdaTransform", "class_lambda_transform.html#aaac239466264ed93d07c40d407f6feec", null ], + [ "get_config_schema", "class_lambda_transform.html#adc6dbf53cef06623010cae1cbd1cdbd0", null ], + [ "get_configuration", "class_lambda_transform.html#a508f3eda704b68427d60ed4c00fc8d5d", null ], + [ "set_configuration", "class_lambda_transform.html#a94d320a35eee5177c8d85b4c0c21948a", null ], + [ "set_input", "class_lambda_transform.html#a842321e8581af77178e2cd9016f27c28", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_lambda_transform__inherit__graph.map b/docs/generated/docs/class_lambda_transform__inherit__graph.map new file mode 100644 index 000000000..30c71757b --- /dev/null +++ b/docs/generated/docs/class_lambda_transform__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_lambda_transform__inherit__graph.md5 b/docs/generated/docs/class_lambda_transform__inherit__graph.md5 new file mode 100644 index 000000000..a15c7b345 --- /dev/null +++ b/docs/generated/docs/class_lambda_transform__inherit__graph.md5 @@ -0,0 +1 @@ +3ae5661fe977faf4cc1a8705799098f8 \ No newline at end of file diff --git a/docs/generated/docs/class_lambda_transform__inherit__graph.png b/docs/generated/docs/class_lambda_transform__inherit__graph.png new file mode 100644 index 000000000..c2604a615 Binary files /dev/null and b/docs/generated/docs/class_lambda_transform__inherit__graph.png differ diff --git a/docs/class_led_blinker-members.html b/docs/generated/docs/class_led_blinker-members.html similarity index 89% rename from docs/class_led_blinker-members.html rename to docs/generated/docs/class_led_blinker-members.html index 816eaf8dc..30d35e254 100644 --- a/docs/class_led_blinker-members.html +++ b/docs/generated/docs/class_led_blinker-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -95,7 +91,7 @@

This is the complete list of members for LedBlinker, including all inherited members.

- + @@ -106,9 +102,7 @@ diff --git a/docs/generated/docs/class_led_blinker.html b/docs/generated/docs/class_led_blinker.html new file mode 100644 index 000000000..1d2ff0458 --- /dev/null +++ b/docs/generated/docs/class_led_blinker.html @@ -0,0 +1,423 @@ + + + + + + + +SensESP: LedBlinker Class Reference + + + + + + + + + + + + + +
+
+
flip()LedBlinker
LedBlinker()LedBlinker
LedBlinker(int pin, bool enabled, int ws_connected_interval=100, int wifi_connected_interval=1000, int offline_interval=2000)LedBlinker
set_server_connected()LedBlinker
set_server_disconnected()LedBlinkerinline
set_state(int new_state)LedBlinkerprotected
+ + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <led_blinker.h>

+ + + + + + + + + + + + + + +

+Public Member Functions

void set_wifi_connected ()
 
void set_wifi_disconnected ()
 
void set_server_connected ()
 
void set_server_disconnected ()
 
void flip ()
 
 LedBlinker (int pin, bool enabled, int ws_connected_interval=100, int wifi_connected_interval=1000, int offline_interval=2000)
 
+ + + +

+Protected Member Functions

void set_state (int new_state)
 
+

Detailed Description

+
+

Definition at line 6 of file led_blinker.h.

+

Constructor & Destructor Documentation

+ +

◆ LedBlinker()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LedBlinker::LedBlinker (int pin,
bool enabled,
int ws_connected_interval = 100,
int wifi_connected_interval = 1000,
int offline_interval = 2000 
)
+
+ +

Definition at line 7 of file led_blinker.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+

Member Function Documentation

+ +

◆ flip()

+ +
+
+ + + + + + + +
void LedBlinker::flip ()
+
+ +

Definition at line 34 of file led_blinker.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + + + + + +
+ +
+
+ +

◆ set_server_connected()

+ +
+
+ + + + + + + +
void LedBlinker::set_server_connected ()
+
+ +

Definition at line 57 of file led_blinker.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ set_server_disconnected()

+ +
+
+ + + + + +
+ + + + + + + +
void LedBlinker::set_server_disconnected ()
+
+inline
+
+ +

Definition at line 24 of file led_blinker.h.

+
+Here is the call graph for this function:
+
+
+ + + + + + +
+ +
+
+ +

◆ set_state()

+ +
+
+ + + + + +
+ + + + + + + + +
void LedBlinker::set_state (int new_state)
+
+protected
+
+ +

Definition at line 27 of file led_blinker.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + + + + + + + +
+ +
+
+ +

◆ set_wifi_connected()

+ +
+
+ + + + + + + +
void LedBlinker::set_wifi_connected ()
+
+ +

Definition at line 51 of file led_blinker.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + + + +
+ +
+
+ +

◆ set_wifi_disconnected()

+ +
+
+ + + + + + + +
void LedBlinker::set_wifi_disconnected ()
+
+ +

Definition at line 40 of file led_blinker.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/class_led_blinker.js b/docs/generated/docs/class_led_blinker.js similarity index 87% rename from docs/class_led_blinker.js rename to docs/generated/docs/class_led_blinker.js index ffc400404..a00ae5107 100644 --- a/docs/class_led_blinker.js +++ b/docs/generated/docs/class_led_blinker.js @@ -1,6 +1,6 @@ var class_led_blinker = [ - [ "LedBlinker", "class_led_blinker.html#a7e774b60394cf16d0be68cfd38197199", null ], + [ "LedBlinker", "class_led_blinker.html#a89ec1ec8b1fa698c58f95227a8fc9d3c", null ], [ "flip", "class_led_blinker.html#af00270a463b74c855dfc95d98c7bfd7e", null ], [ "set_server_connected", "class_led_blinker.html#a0cdd9d7e8cc453edd234ce2785ce28ea", null ], [ "set_server_disconnected", "class_led_blinker.html#ab0f765b76f30406a7b53d4360c897d64", null ], diff --git a/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.map b/docs/generated/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.map similarity index 100% rename from docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.map rename to docs/generated/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.map diff --git a/docs/generated/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.md5 b/docs/generated/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.md5 new file mode 100644 index 000000000..2a9adac97 --- /dev/null +++ b/docs/generated/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.md5 @@ -0,0 +1 @@ +ebf71824b0252947d021e6a48427412a \ No newline at end of file diff --git a/docs/generated/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.png b/docs/generated/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.png new file mode 100644 index 000000000..901e8c6c0 Binary files /dev/null and b/docs/generated/docs/class_led_blinker_a0cdd9d7e8cc453edd234ce2785ce28ea_cgraph.png differ diff --git a/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.map b/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.map similarity index 100% rename from docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.map rename to docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.map diff --git a/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.md5 b/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.md5 new file mode 100644 index 000000000..9914fefc8 --- /dev/null +++ b/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.md5 @@ -0,0 +1 @@ +44d81d9e7b72afe6308fe9093bde1cf0 \ No newline at end of file diff --git a/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.png b/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.png new file mode 100644 index 000000000..c604643cc Binary files /dev/null and b/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_cgraph.png differ diff --git a/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.map b/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.map new file mode 100644 index 000000000..bed7df452 --- /dev/null +++ b/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.md5 b/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.md5 new file mode 100644 index 000000000..84933d747 --- /dev/null +++ b/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.md5 @@ -0,0 +1 @@ +a8fb0159e908327b7eb4194e241e7087 \ No newline at end of file diff --git a/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.png b/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.png new file mode 100644 index 000000000..308e977e0 Binary files /dev/null and b/docs/generated/docs/class_led_blinker_a394a529a52a7ee1e0321498de017f788_icgraph.png differ diff --git a/docs/class_led_blinker_a7e774b60394cf16d0be68cfd38197199_cgraph.map b/docs/generated/docs/class_led_blinker_a89ec1ec8b1fa698c58f95227a8fc9d3c_cgraph.map similarity index 100% rename from docs/class_led_blinker_a7e774b60394cf16d0be68cfd38197199_cgraph.map rename to docs/generated/docs/class_led_blinker_a89ec1ec8b1fa698c58f95227a8fc9d3c_cgraph.map diff --git a/docs/generated/docs/class_led_blinker_a89ec1ec8b1fa698c58f95227a8fc9d3c_cgraph.md5 b/docs/generated/docs/class_led_blinker_a89ec1ec8b1fa698c58f95227a8fc9d3c_cgraph.md5 new file mode 100644 index 000000000..6c285856c --- /dev/null +++ b/docs/generated/docs/class_led_blinker_a89ec1ec8b1fa698c58f95227a8fc9d3c_cgraph.md5 @@ -0,0 +1 @@ +730cad23d073a71c819af4cbdbe85ae8 \ No newline at end of file diff --git a/docs/generated/docs/class_led_blinker_a89ec1ec8b1fa698c58f95227a8fc9d3c_cgraph.png b/docs/generated/docs/class_led_blinker_a89ec1ec8b1fa698c58f95227a8fc9d3c_cgraph.png new file mode 100644 index 000000000..177aa1bf9 Binary files /dev/null and b/docs/generated/docs/class_led_blinker_a89ec1ec8b1fa698c58f95227a8fc9d3c_cgraph.png differ diff --git a/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.map b/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.map similarity index 100% rename from docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.map rename to docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.map diff --git a/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.md5 b/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.md5 new file mode 100644 index 000000000..65da54924 --- /dev/null +++ b/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.md5 @@ -0,0 +1 @@ +27bdb5835f39e1e487e01eb584c65141 \ No newline at end of file diff --git a/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.png b/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.png new file mode 100644 index 000000000..10d9ed691 Binary files /dev/null and b/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_cgraph.png differ diff --git a/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.map b/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.map new file mode 100644 index 000000000..83f1deb3a --- /dev/null +++ b/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.md5 b/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.md5 new file mode 100644 index 000000000..a9a5e83ea --- /dev/null +++ b/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.md5 @@ -0,0 +1 @@ +a69306d6364457a4881ab8295c00b88a \ No newline at end of file diff --git a/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.png b/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.png new file mode 100644 index 000000000..ae8bfddf6 Binary files /dev/null and b/docs/generated/docs/class_led_blinker_a9c0b4f9aaacc14ab555df6abb43e8ae5_icgraph.png differ diff --git a/docs/generated/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.map b/docs/generated/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.map new file mode 100644 index 000000000..fd9f45c1b --- /dev/null +++ b/docs/generated/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/docs/generated/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.md5 b/docs/generated/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.md5 new file mode 100644 index 000000000..be50420e9 --- /dev/null +++ b/docs/generated/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.md5 @@ -0,0 +1 @@ +171e81c10195b1813e07f749a97cc029 \ No newline at end of file diff --git a/docs/generated/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.png b/docs/generated/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.png new file mode 100644 index 000000000..4a4b52c50 Binary files /dev/null and b/docs/generated/docs/class_led_blinker_aa9870e4cb1a35a175edcd710142b8595_icgraph.png differ diff --git a/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.map b/docs/generated/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.map similarity index 100% rename from docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.map rename to docs/generated/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.map diff --git a/docs/generated/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.md5 b/docs/generated/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.md5 new file mode 100644 index 000000000..6246a9ac0 --- /dev/null +++ b/docs/generated/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.md5 @@ -0,0 +1 @@ +14aa30373ce49f724176ab171b5eaa11 \ No newline at end of file diff --git a/docs/generated/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.png b/docs/generated/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.png new file mode 100644 index 000000000..06245cb0d Binary files /dev/null and b/docs/generated/docs/class_led_blinker_ab0f765b76f30406a7b53d4360c897d64_cgraph.png differ diff --git a/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.map b/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.map similarity index 100% rename from docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.map rename to docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.map diff --git a/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.md5 b/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.md5 new file mode 100644 index 000000000..71cecec6b --- /dev/null +++ b/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.md5 @@ -0,0 +1 @@ +44c9d2b9946d2d98994d999c85aba88a \ No newline at end of file diff --git a/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.png b/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.png new file mode 100644 index 000000000..868fc0c6b Binary files /dev/null and b/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_cgraph.png differ diff --git a/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.map b/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.map new file mode 100644 index 000000000..6840a5514 --- /dev/null +++ b/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.md5 b/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.md5 new file mode 100644 index 000000000..ef89e518c --- /dev/null +++ b/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.md5 @@ -0,0 +1 @@ +542c8196ee9763fb1f0cd51fd92fac95 \ No newline at end of file diff --git a/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.png b/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.png new file mode 100644 index 000000000..26cb417bc Binary files /dev/null and b/docs/generated/docs/class_led_blinker_af00270a463b74c855dfc95d98c7bfd7e_icgraph.png differ diff --git a/docs/generated/docs/class_linear-members.html b/docs/generated/docs/class_linear-members.html new file mode 100644 index 000000000..bcd574d11 --- /dev/null +++ b/docs/generated/docs/class_linear-members.html @@ -0,0 +1,117 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Linear Member List
+
+
+ +

This is the complete list of members for Linear, including all inherited members.

+ + + + + + + + + + + + + + + + +
connectFrom(ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)Transform< float, float >inline
get_config_schema() overrideLambdaTransform< float, float, float, float >inline
get_configuration(JsonObject &doc) overrideLambdaTransform< float, float, float, float >inline
LambdaTransform(float(*function)(float input), String config_path="")LambdaTransform< float, float, float, float >inline
LambdaTransform(float(*function)(float input), const ParamInfo *param_info, String config_path="")LambdaTransform< float, float, float, float >inline
LambdaTransform(float(*function)(float input, float param1), float param1, const ParamInfo *param_info, String config_path="")LambdaTransform< float, float, float, float >inline
LambdaTransform(float(*function)(float input, float param1, float param2), float param1, float param2, const ParamInfo *param_info, String config_path="")LambdaTransform< float, float, float, float >inline
LambdaTransform(float(*function)(float input, float param1, float param2, bool param3), float param1, float param2, bool param3, const ParamInfo *param_info, String config_path="")LambdaTransform< float, float, float, float >inline
LambdaTransform(float(*function)(float input, float param1, float param2, bool param3, bool param4), float param1, float param2, bool param3, bool param4, const ParamInfo *param_info, String config_path="")LambdaTransform< float, float, float, float >inline
LambdaTransform(float(*function)(float input, float param1, float param2, bool param3, bool param4, bool param5), float param1, float param2, bool param3, bool param4, bool param5, const ParamInfo *param_info, String config_path="")LambdaTransform< float, float, float, float >inline
LambdaTransform(float(*function)(float input, float param1, float param2, bool param3, bool param4, bool param5, bool param6), float param1, float param2, bool param3, bool param4, bool param5, bool param6, const ParamInfo *param_info, String config_path="")LambdaTransform< float, float, float, float >inline
Linear(float k, float c, String config_path="")Linear
set_configuration(const JsonObject &config) overrideLambdaTransform< float, float, float, float >inline
set_input(float input, uint8_t input_channel=0) overrideLambdaTransform< float, float, float, float >inline
Transform(String config_path="")Transform< float, float >inline
+
+ + + + diff --git a/docs/generated/docs/class_linear.html b/docs/generated/docs/class_linear.html new file mode 100644 index 000000000..645249b22 --- /dev/null +++ b/docs/generated/docs/class_linear.html @@ -0,0 +1,197 @@ + + + + + + + +SensESP: Linear Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Linear Class Reference
+
+
+ +

#include <linear.h>

+
+Inheritance diagram for Linear:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Linear (float k, float c, String config_path="")
 
- Public Member Functions inherited from LambdaTransform< float, float, float, float >
 LambdaTransform (float(*function)(float input), String config_path="")
 
 LambdaTransform (float(*function)(float input), const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (float(*function)(float input, float param1), float param1, const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (float(*function)(float input, float param1, float param2), float param1, float param2, const ParamInfo *param_info, String config_path="")
 LambdaTransform constructor for two-parameter function. More...
 
 LambdaTransform (float(*function)(float input, float param1, float param2, bool param3), float param1, float param2, bool param3, const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (float(*function)(float input, float param1, float param2, bool param3, bool param4), float param1, float param2, bool param3, bool param4, const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (float(*function)(float input, float param1, float param2, bool param3, bool param4, bool param5), float param1, float param2, bool param3, bool param4, bool param5, const ParamInfo *param_info, String config_path="")
 
 LambdaTransform (float(*function)(float input, float param1, float param2, bool param3, bool param4, bool param5, bool param6), float param1, float param2, bool param3, bool param4, bool param5, bool param6, const ParamInfo *param_info, String config_path="")
 
void set_input (float input, uint8_t input_channel=0) override
 
void get_configuration (JsonObject &doc) override
 
bool set_configuration (const JsonObject &config) override
 
String get_config_schema () override
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
+

Detailed Description

+

Perform a linear transform on the input value. The transform is of the form $y = k * x + c$, where k is the input coefficient and c is a bias (offset) value.

+ +

Definition at line 11 of file linear.h.

+

Constructor & Destructor Documentation

+ +

◆ Linear()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Linear::Linear (float k,
float c,
String config_path = "" 
)
+
+ +

Definition at line 15 of file linear.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_linear.js b/docs/generated/docs/class_linear.js new file mode 100644 index 000000000..b175cf72b --- /dev/null +++ b/docs/generated/docs/class_linear.js @@ -0,0 +1,4 @@ +var class_linear = +[ + [ "Linear", "class_linear.html#ad9477f54820b5a234339d342836e9869", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_linear__inherit__graph.map b/docs/generated/docs/class_linear__inherit__graph.map new file mode 100644 index 000000000..3f4757bd0 --- /dev/null +++ b/docs/generated/docs/class_linear__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_linear__inherit__graph.md5 b/docs/generated/docs/class_linear__inherit__graph.md5 new file mode 100644 index 000000000..4cc721d25 --- /dev/null +++ b/docs/generated/docs/class_linear__inherit__graph.md5 @@ -0,0 +1 @@ +da3eaf13a56c60bd68b3517a5ae8fd6f \ No newline at end of file diff --git a/docs/generated/docs/class_linear__inherit__graph.png b/docs/generated/docs/class_linear__inherit__graph.png new file mode 100644 index 000000000..685aa4554 Binary files /dev/null and b/docs/generated/docs/class_linear__inherit__graph.png differ diff --git a/docs/generated/docs/class_m_a_x31856_thermocouple-members.html b/docs/generated/docs/class_m_a_x31856_thermocouple-members.html new file mode 100644 index 000000000..27fa151a3 --- /dev/null +++ b/docs/generated/docs/class_m_a_x31856_thermocouple-members.html @@ -0,0 +1,126 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
MAX31856Thermocouple Member List
+
+
+ +

This is the complete list of members for MAX31856Thermocouple, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connect_to(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
enable() override finalMAX31856Thermocouplevirtual
Enable(uint8_t priority=0)Enable
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< float >inlinevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
max31856MAX31856Thermocouple
MAX31856Thermocouple(int8_t cs_pin, int8_t mosi_pin, int8_t miso_pin, int8_t clk_pin, int8_t drdy_pin, max31856_thermocoupletype_t tc_type, uint read_delay, String config_path="")MAX31856Thermocouple
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_priority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< float >inline
+
+ + + + diff --git a/docs/generated/docs/class_m_a_x31856_thermocouple.html b/docs/generated/docs/class_m_a_x31856_thermocouple.html new file mode 100644 index 000000000..d12d3a00a --- /dev/null +++ b/docs/generated/docs/class_m_a_x31856_thermocouple.html @@ -0,0 +1,320 @@ + + + + + + + +SensESP: MAX31856Thermocouple Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
MAX31856Thermocouple Class Reference
+
+
+ +

#include <max31856_thermocouple.h>

+
+Inheritance diagram for MAX31856Thermocouple:
+
+
Inheritance graph
+ + + + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 MAX31856Thermocouple (int8_t cs_pin, int8_t mosi_pin, int8_t miso_pin, int8_t clk_pin, int8_t drdy_pin, max31856_thermocoupletype_t tc_type, uint read_delay, String config_path="")
 
void enable () override final
 
- Public Member Functions inherited from NumericSensor
 NumericSensor (String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connect_to (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connect_to (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
+ + + + + + +

+Public Attributes

Adafruit_MAX31856 * max31856
 
- Public Attributes inherited from Configurable
const String config_path
 
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
+

Detailed Description

+
+

Definition at line 6 of file max31856_thermocouple.h.

+

Constructor & Destructor Documentation

+ +

◆ MAX31856Thermocouple()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MAX31856Thermocouple::MAX31856Thermocouple (int8_t cs_pin,
int8_t mosi_pin,
int8_t miso_pin,
int8_t clk_pin,
int8_t drdy_pin,
max31856_thermocoupletype_t tc_type,
uint read_delay,
String config_path = "" 
)
+
+ +

Definition at line 6 of file max31856_thermocouple.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+ + + + + +
+ + + + + + + +
void MAX31856Thermocouple::enable ()
+
+finaloverridevirtual
+
+

Called during the initialization process. Override this method to add runtime initialization code to your class

+ +

Reimplemented from Enable.

+ +

Definition at line 23 of file max31856_thermocouple.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+

Member Data Documentation

+ +

◆ max31856

+ +
+
+ + + + +
Adafruit_MAX31856* MAX31856Thermocouple::max31856
+
+ +

Definition at line 12 of file max31856_thermocouple.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_m_a_x31856_thermocouple.js b/docs/generated/docs/class_m_a_x31856_thermocouple.js new file mode 100644 index 000000000..39e5ae2bf --- /dev/null +++ b/docs/generated/docs/class_m_a_x31856_thermocouple.js @@ -0,0 +1,6 @@ +var class_m_a_x31856_thermocouple = +[ + [ "MAX31856Thermocouple", "class_m_a_x31856_thermocouple.html#a2e8fb0d3c58fe34f9d49554b418596a8", null ], + [ "enable", "class_m_a_x31856_thermocouple.html#a37980d9b2f2682da48c16cc60b3b6565", null ], + [ "max31856", "class_m_a_x31856_thermocouple.html#ab5bf3c1660f17374bcb02f65b6cd6e94", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_m_a_x31856_thermocouple__inherit__graph.map b/docs/generated/docs/class_m_a_x31856_thermocouple__inherit__graph.map new file mode 100644 index 000000000..6618507f7 --- /dev/null +++ b/docs/generated/docs/class_m_a_x31856_thermocouple__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_m_a_x31856_thermocouple__inherit__graph.md5 b/docs/generated/docs/class_m_a_x31856_thermocouple__inherit__graph.md5 new file mode 100644 index 000000000..98b47e91a --- /dev/null +++ b/docs/generated/docs/class_m_a_x31856_thermocouple__inherit__graph.md5 @@ -0,0 +1 @@ +9c688e433ccf3d0aa464dc8bab0437cf \ No newline at end of file diff --git a/docs/generated/docs/class_m_a_x31856_thermocouple__inherit__graph.png b/docs/generated/docs/class_m_a_x31856_thermocouple__inherit__graph.png new file mode 100644 index 000000000..dc0d770d3 Binary files /dev/null and b/docs/generated/docs/class_m_a_x31856_thermocouple__inherit__graph.png differ diff --git a/docs/generated/docs/class_m_a_x31856_thermocouple_a37980d9b2f2682da48c16cc60b3b6565_cgraph.map b/docs/generated/docs/class_m_a_x31856_thermocouple_a37980d9b2f2682da48c16cc60b3b6565_cgraph.map new file mode 100644 index 000000000..44e917f78 --- /dev/null +++ b/docs/generated/docs/class_m_a_x31856_thermocouple_a37980d9b2f2682da48c16cc60b3b6565_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_m_a_x31856_thermocouple_a37980d9b2f2682da48c16cc60b3b6565_cgraph.md5 b/docs/generated/docs/class_m_a_x31856_thermocouple_a37980d9b2f2682da48c16cc60b3b6565_cgraph.md5 new file mode 100644 index 000000000..580d7ec25 --- /dev/null +++ b/docs/generated/docs/class_m_a_x31856_thermocouple_a37980d9b2f2682da48c16cc60b3b6565_cgraph.md5 @@ -0,0 +1 @@ +59b32aa739e72e71b92cfbc61b85e21d \ No newline at end of file diff --git a/docs/generated/docs/class_m_a_x31856_thermocouple_a37980d9b2f2682da48c16cc60b3b6565_cgraph.png b/docs/generated/docs/class_m_a_x31856_thermocouple_a37980d9b2f2682da48c16cc60b3b6565_cgraph.png new file mode 100644 index 000000000..6d97878e5 Binary files /dev/null and b/docs/generated/docs/class_m_a_x31856_thermocouple_a37980d9b2f2682da48c16cc60b3b6565_cgraph.png differ diff --git a/docs/generated/docs/class_median-members.html b/docs/generated/docs/class_median-members.html new file mode 100644 index 000000000..ec5c59e23 --- /dev/null +++ b/docs/generated/docs/class_median-members.html @@ -0,0 +1,110 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Median Member List
+
+
+ +

This is the complete list of members for Median, including all inherited members.

+ + + + + + + + + +
connectFrom(ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)Transform< float, float >inline
get_config_schema() overrideMedianvirtual
get_configuration(JsonObject &doc) overrideMedianvirtual
Median(unsigned int sample_size=10, String config_path="")Median
set_configuration(const JsonObject &config) overrideMedianvirtual
set_input(float input, uint8_t input_channel=0) overrideMedianvirtual
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
+
+ + + + diff --git a/docs/generated/docs/class_median.html b/docs/generated/docs/class_median.html new file mode 100644 index 000000000..cb766fd2e --- /dev/null +++ b/docs/generated/docs/class_median.html @@ -0,0 +1,298 @@ + + + + + + + +SensESP: Median Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Median Class Reference
+
+
+ +

#include <median.h>

+
+Inheritance diagram for Median:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Median (unsigned int sample_size=10, String config_path="")
 
virtual void set_input (float input, uint8_t input_channel=0) override
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
+

Detailed Description

+

Median collects a list of input values of size sample_size and outputs the median value (i.e. element number sample_size / 2 of a sorted sample list).

+ +

Definition at line 13 of file median.h.

+

Constructor & Destructor Documentation

+ +

◆ Median()

+ +
+
+ + + + + + + + + + + + + + + + + + +
Median::Median (unsigned int sample_size = 10,
String config_path = "" 
)
+
+ +

Definition at line 3 of file median.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String Median::get_config_schema ()
+
+overridevirtual
+
+ +

Definition at line 33 of file median.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void Median::get_configuration (JsonObject & doc)
+
+overridevirtual
+
+ +

Definition at line 22 of file median.cpp.

+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Median::set_configuration (const JsonObject & config)
+
+overridevirtual
+
+ +

Definition at line 35 of file median.cpp.

+ +
+
+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Median::set_input (float input,
uint8_t input_channel = 0 
)
+
+overridevirtual
+
+ +

Definition at line 10 of file median.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_median.js b/docs/generated/docs/class_median.js new file mode 100644 index 000000000..a05ad3bb6 --- /dev/null +++ b/docs/generated/docs/class_median.js @@ -0,0 +1,8 @@ +var class_median = +[ + [ "Median", "class_median.html#a14ee18d6419bc212b33fd1d96d6cca2b", null ], + [ "get_config_schema", "class_median.html#aa8515edf3b34ee8439bd77dcfc69a93f", null ], + [ "get_configuration", "class_median.html#a658c5210822133ab9f7b8eab173e0edb", null ], + [ "set_configuration", "class_median.html#ac06073c22b922aceee9f01ddaccfb54a", null ], + [ "set_input", "class_median.html#ad20ab4e65d66330c5fa1e1cf0f16036c", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_median__inherit__graph.map b/docs/generated/docs/class_median__inherit__graph.map new file mode 100644 index 000000000..9d6540fb6 --- /dev/null +++ b/docs/generated/docs/class_median__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_median__inherit__graph.md5 b/docs/generated/docs/class_median__inherit__graph.md5 new file mode 100644 index 000000000..d958300fe --- /dev/null +++ b/docs/generated/docs/class_median__inherit__graph.md5 @@ -0,0 +1 @@ +beeb070d6f9da95f499e6661d1b2be88 \ No newline at end of file diff --git a/docs/generated/docs/class_median__inherit__graph.png b/docs/generated/docs/class_median__inherit__graph.png new file mode 100644 index 000000000..8c5fbda17 Binary files /dev/null and b/docs/generated/docs/class_median__inherit__graph.png differ diff --git a/docs/generated/docs/class_moving_average-members.html b/docs/generated/docs/class_moving_average-members.html new file mode 100644 index 000000000..ccb64579e --- /dev/null +++ b/docs/generated/docs/class_moving_average-members.html @@ -0,0 +1,110 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
MovingAverage Member List
+
+
+ +

This is the complete list of members for MovingAverage, including all inherited members.

+ + + + + + + + + +
connectFrom(ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)Transform< float, float >inline
get_config_schema() overrideMovingAveragevirtual
get_configuration(JsonObject &doc) overrideMovingAveragevirtual
MovingAverage(int n, float k=1., String config_path="")MovingAverage
set_configuration(const JsonObject &config) overrideMovingAveragevirtual
set_input(float input, uint8_t inputChannel=0) overrideMovingAveragevirtual
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
+
+ + + + diff --git a/docs/generated/docs/class_moving_average.html b/docs/generated/docs/class_moving_average.html new file mode 100644 index 000000000..142b932fa --- /dev/null +++ b/docs/generated/docs/class_moving_average.html @@ -0,0 +1,311 @@ + + + + + + + +SensESP: MovingAverage Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
MovingAverage Class Reference
+
+
+ +

#include <moving_average.h>

+
+Inheritance diagram for MovingAverage:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 MovingAverage (int n, float k=1., String config_path="")
 
virtual void set_input (float input, uint8_t inputChannel=0) override
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
+

Detailed Description

+

MovingAverage is used to smooth the output of a value (signal) that has frequent variations. For example, the output of a temperature sensor may vary from 180 to 185 several times over a short period, but you just want to see the average of that. MovingAverage outputs the average of the most recent n values. It also incorporates a "scale" factor, in case you want to increase or decrease your final output by a fixed percentage.

+ +

Definition at line 18 of file moving_average.h.

+

Constructor & Destructor Documentation

+ +

◆ MovingAverage()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
MovingAverage::MovingAverage (int n,
float k = 1.,
String config_path = "" 
)
+
+
Parameters
+ + + +
nis the number of most recent values you want to average for your output
themoving average will be multiplied by k before it is output - make it something other than 1. if you need to scale your output up or down by a fixed percentage
+
+
+ +

Definition at line 5 of file moving_average.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String MovingAverage::get_config_schema ()
+
+overridevirtual
+
+ +

Definition at line 46 of file moving_average.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void MovingAverage::get_configuration (JsonObject & doc)
+
+overridevirtual
+
+ +

Definition at line 31 of file moving_average.cpp.

+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool MovingAverage::set_configuration (const JsonObject & config)
+
+overridevirtual
+
+ +

Definition at line 48 of file moving_average.cpp.

+ +
+
+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MovingAverage::set_input (float input,
uint8_t inputChannel = 0 
)
+
+overridevirtual
+
+ +

Definition at line 12 of file moving_average.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/class_moving_average.js b/docs/generated/docs/class_moving_average.js similarity index 80% rename from docs/class_moving_average.js rename to docs/generated/docs/class_moving_average.js index b3579d5ba..cf37bdb41 100644 --- a/docs/class_moving_average.js +++ b/docs/generated/docs/class_moving_average.js @@ -2,7 +2,7 @@ var class_moving_average = [ [ "MovingAverage", "class_moving_average.html#adda127d69bc5441a3f4ca98d51c87f4b", null ], [ "get_config_schema", "class_moving_average.html#ad6f06b147a017e528e3d8b991cec2763", null ], - [ "get_configuration", "class_moving_average.html#a1cac9948f8ca32b8d4446e419b09cccb", null ], + [ "get_configuration", "class_moving_average.html#a803ba927db89306b62ebff4375e25ada", null ], [ "set_configuration", "class_moving_average.html#a9f02a3c253c6456e4d5c063ea5f6d364", null ], [ "set_input", "class_moving_average.html#a22a08de98351ed805b49beecb234ab0b", null ] ]; \ No newline at end of file diff --git a/docs/generated/docs/class_moving_average__inherit__graph.map b/docs/generated/docs/class_moving_average__inherit__graph.map new file mode 100644 index 000000000..ea68375b0 --- /dev/null +++ b/docs/generated/docs/class_moving_average__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_moving_average__inherit__graph.md5 b/docs/generated/docs/class_moving_average__inherit__graph.md5 new file mode 100644 index 000000000..304a01a1d --- /dev/null +++ b/docs/generated/docs/class_moving_average__inherit__graph.md5 @@ -0,0 +1 @@ +51a4ee0f1bfddfb6bea0e20b75878ffa \ No newline at end of file diff --git a/docs/generated/docs/class_moving_average__inherit__graph.png b/docs/generated/docs/class_moving_average__inherit__graph.png new file mode 100644 index 000000000..5cf14fd95 Binary files /dev/null and b/docs/generated/docs/class_moving_average__inherit__graph.png differ diff --git a/docs/class_n_m_e_a_parser-members.html b/docs/generated/docs/class_n_m_e_a_parser-members.html similarity index 90% rename from docs/class_n_m_e_a_parser-members.html rename to docs/generated/docs/class_n_m_e_a_parser-members.html index 495c0bdb2..4ae045091 100644 --- a/docs/class_n_m_e_a_parser-members.html +++ b/docs/generated/docs/class_n_m_e_a_parser-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -102,9 +98,7 @@ diff --git a/docs/class_n_m_e_a_parser.html b/docs/generated/docs/class_n_m_e_a_parser.html similarity index 79% rename from docs/class_n_m_e_a_parser.html rename to docs/generated/docs/class_n_m_e_a_parser.html index 763176bf1..cacb9ba6a 100644 --- a/docs/class_n_m_e_a_parser.html +++ b/docs/generated/docs/class_n_m_e_a_parser.html @@ -3,7 +3,7 @@ - + SensESP: NMEAParser Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -108,7 +104,7 @@

Detailed Description

-

Definition at line 121 of file nmea_parser.h.

+

Definition at line 124 of file nmea_parser.h.

Constructor & Destructor Documentation

◆ NMEAParser()

@@ -125,7 +121,7 @@

-

Definition at line 544 of file nmea_parser.cpp.

+

Definition at line 548 of file nmea_parser.cpp.

@@ -146,23 +142,23 @@

-

Definition at line 549 of file nmea_parser.cpp.

+

Definition at line 553 of file nmea_parser.cpp.

Here is the call graph for this function:
-
- - - +
+ + +
Here is the caller graph for this function:
-
- - - +
+ + +
@@ -184,16 +180,7 @@

-

Definition at line 554 of file nmea_parser.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - -
+

Definition at line 558 of file nmea_parser.cpp.

@@ -207,9 +194,7 @@

diff --git a/docs/class_n_m_e_a_parser.js b/docs/generated/docs/class_n_m_e_a_parser.js similarity index 100% rename from docs/class_n_m_e_a_parser.js rename to docs/generated/docs/class_n_m_e_a_parser.js diff --git a/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.map b/docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.map similarity index 100% rename from docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.map rename to docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.map diff --git a/docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.md5 b/docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.md5 new file mode 100644 index 000000000..56556e492 --- /dev/null +++ b/docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.md5 @@ -0,0 +1 @@ +b24d50248dd86279d9ae3e3b9df58a5e \ No newline at end of file diff --git a/docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.png b/docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.png new file mode 100644 index 000000000..7132529e8 Binary files /dev/null and b/docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_cgraph.png differ diff --git a/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.map b/docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.map similarity index 100% rename from docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.map rename to docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.map diff --git a/docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.md5 b/docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.md5 new file mode 100644 index 000000000..66c8f7475 --- /dev/null +++ b/docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.md5 @@ -0,0 +1 @@ +1c9bb5fb75842141e9098fa98e1efb18 \ No newline at end of file diff --git a/docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.png b/docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.png new file mode 100644 index 000000000..d6f0656aa Binary files /dev/null and b/docs/generated/docs/class_n_m_e_a_parser_a438b3fd8f8587b55a3785656651f73a6_icgraph.png differ diff --git a/docs/class_networking-members.html b/docs/generated/docs/class_networking-members.html similarity index 80% rename from docs/class_networking-members.html rename to docs/generated/docs/class_networking-members.html index cb189fe89..dc29d192f 100644 --- a/docs/class_networking-members.html +++ b/docs/generated/docs/class_networking-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -98,25 +94,22 @@ config_pathConfigurable Configurable(String config_path)Configurable get_config_schema() overrideNetworkingvirtual - get_configuration(JsonBuffer &buf) override finalNetworkingvirtual + get_configuration(JsonObject &doc) override finalNetworkingvirtual get_hostname()Networking load_configuration()Configurableprotectedvirtual - Networking(String config_path)Networking + Networking(String config_path, String ssid, String password, String hostname)Networking reset_settings()Networking save_configuration()Configurablevirtual set_configuration(const JsonObject &config) override finalNetworkingvirtual - set_hostname(String hostname)Networking - setup(std::function< void(bool)> connection_cb)Networking - setup_saved_ssid(std::function< void(bool)> connection_cb)Networkingprotected - setup_wifi_manager(std::function< void(bool)> connection_cb)Networkingprotected + setup(std::function< void(bool)> connection_cb)Networking + setup_saved_ssid(std::function< void(bool)> connection_cb)Networkingprotected + setup_wifi_manager(std::function< void(bool)> connection_cb)Networkingprotected
diff --git a/docs/generated/docs/class_networking.html b/docs/generated/docs/class_networking.html new file mode 100644 index 000000000..e253e11c1 --- /dev/null +++ b/docs/generated/docs/class_networking.html @@ -0,0 +1,571 @@ + + + + + + + +SensESP: Networking Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <networking.h>

+
+Inheritance diagram for Networking:
+
+
Inheritance graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Networking (String config_path, String ssid, String password, String hostname)
 
void setup (std::function< void(bool)> connection_cb)
 
ObservableValue< String > * get_hostname ()
 
virtual void get_configuration (JsonObject &doc) override final
 
virtual bool set_configuration (const JsonObject &config) override final
 
virtual String get_config_schema () override
 
void reset_settings ()
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
+ + + + + + + + + + +

+Protected Member Functions

void check_connection ()
 
void setup_saved_ssid (std::function< void(bool)> connection_cb)
 
void setup_wifi_manager (std::function< void(bool)> connection_cb)
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
+ + + + +

+Additional Inherited Members

- Public Attributes inherited from Configurable
const String config_path
 
+

Detailed Description

+
+

Definition at line 13 of file networking.h.

+

Constructor & Destructor Documentation

+ +

◆ Networking()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Networking::Networking (String config_path,
String ssid,
String password,
String hostname 
)
+
+ +

Definition at line 18 of file networking.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ check_connection()

+ +
+
+ + + + + +
+ + + + + + + +
void Networking::check_connection ()
+
+protected
+
+ +

Definition at line 39 of file networking.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + + +
+ +
+
+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String Networking::get_config_schema ()
+
+overridevirtual
+
+

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
+ +

Reimplemented from Configurable.

+ +

Definition at line 145 of file networking.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void Networking::get_configuration (JsonObject & configObject)
+
+finaloverridevirtual
+
+

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonDocument::as<JsonObject>() and returned.

+ +

Reimplemented from Configurable.

+ +

Definition at line 163 of file networking.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ get_hostname()

+ +
+
+ + + + + + + +
ObservableValue< String > * Networking::get_hostname ()
+
+ +

Definition at line 125 of file networking.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + + + + +
+ +
+
+ +

◆ reset_settings()

+ +
+
+ + + + + + + +
void Networking::reset_settings ()
+
+ +

Definition at line 186 of file networking.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Networking::set_configuration (const JsonObject & config)
+
+finaloverridevirtual
+
+

Sets the current state of local member variables using the data stored in config.

+ +

Reimplemented from Configurable.

+ +

Definition at line 169 of file networking.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ setup()

+ +
+
+ + + + + + + + +
void Networking::setup (std::function< void(bool)> connection_cb)
+
+ +

Definition at line 47 of file networking.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + + + + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ setup_saved_ssid()

+ +
+
+ + + + + +
+ + + + + + + + +
void Networking::setup_saved_ssid (std::function< void(bool)> connection_cb)
+
+protected
+
+ +

Definition at line 57 of file networking.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + + +
+ +
+
+ +

◆ setup_wifi_manager()

+ +
+
+ + + + + +
+ + + + + + + + +
void Networking::setup_wifi_manager (std::function< void(bool)> connection_cb)
+
+protected
+
+ +

Definition at line 82 of file networking.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + + + +
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_networking.js b/docs/generated/docs/class_networking.js new file mode 100644 index 000000000..39296a1bb --- /dev/null +++ b/docs/generated/docs/class_networking.js @@ -0,0 +1,13 @@ +var class_networking = +[ + [ "Networking", "class_networking.html#abffdf8c391f0e371da4ff59a05b1c085", null ], + [ "check_connection", "class_networking.html#ae4b12924970227730df3377144301a7c", null ], + [ "get_config_schema", "class_networking.html#a253025ed2a3c36eb998e7b900155359e", null ], + [ "get_configuration", "class_networking.html#a4071208242243ae91f48884294a18429", null ], + [ "get_hostname", "class_networking.html#a7a3cac2e878aa2c513451f235c70aff7", null ], + [ "reset_settings", "class_networking.html#a207f306c10b8f65ca0904cc26a9ef15c", null ], + [ "set_configuration", "class_networking.html#a59d475a2f12b88ef8334274a9a0b1cee", null ], + [ "setup", "class_networking.html#a94815dd34af734e9fc3839cbe6279355", null ], + [ "setup_saved_ssid", "class_networking.html#a91507b52fbc31dd34d143c8a5634027e", null ], + [ "setup_wifi_manager", "class_networking.html#a082fa99914f8f6f277b640667877c85e", null ] +]; \ No newline at end of file diff --git a/docs/class_networking__inherit__graph.map b/docs/generated/docs/class_networking__inherit__graph.map similarity index 100% rename from docs/class_networking__inherit__graph.map rename to docs/generated/docs/class_networking__inherit__graph.map diff --git a/docs/generated/docs/class_networking__inherit__graph.md5 b/docs/generated/docs/class_networking__inherit__graph.md5 new file mode 100644 index 000000000..0c7b41e3d --- /dev/null +++ b/docs/generated/docs/class_networking__inherit__graph.md5 @@ -0,0 +1 @@ +a846ac7b71043a0a3d64f6b2137d16f0 \ No newline at end of file diff --git a/docs/generated/docs/class_networking__inherit__graph.png b/docs/generated/docs/class_networking__inherit__graph.png new file mode 100644 index 000000000..715b2568b Binary files /dev/null and b/docs/generated/docs/class_networking__inherit__graph.png differ diff --git a/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.map b/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.map new file mode 100644 index 000000000..d18842d56 --- /dev/null +++ b/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.md5 b/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.md5 new file mode 100644 index 000000000..00f68e491 --- /dev/null +++ b/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.md5 @@ -0,0 +1 @@ +ca9885e8d91c215667f521cdf8f6ff66 \ No newline at end of file diff --git a/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.png b/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.png new file mode 100644 index 000000000..d9a5f18fb Binary files /dev/null and b/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_cgraph.png differ diff --git a/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.map b/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.map new file mode 100644 index 000000000..80c05f018 --- /dev/null +++ b/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.md5 b/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.md5 new file mode 100644 index 000000000..5c29e8c85 --- /dev/null +++ b/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.md5 @@ -0,0 +1 @@ +8e9ecf1c26003804cca2d10b6a9d58f3 \ No newline at end of file diff --git a/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.png b/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.png new file mode 100644 index 000000000..6b50ea9dc Binary files /dev/null and b/docs/generated/docs/class_networking_a082fa99914f8f6f277b640667877c85e_icgraph.png differ diff --git a/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.map b/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.map new file mode 100644 index 000000000..35b10458f --- /dev/null +++ b/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.md5 b/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.md5 new file mode 100644 index 000000000..8f8cd4923 --- /dev/null +++ b/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.md5 @@ -0,0 +1 @@ +cde5f3a2f295e0501653115274ac64d2 \ No newline at end of file diff --git a/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.png b/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.png new file mode 100644 index 000000000..11c3c2602 Binary files /dev/null and b/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_cgraph.png differ diff --git a/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.map b/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.map new file mode 100644 index 000000000..1ed81fad0 --- /dev/null +++ b/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.md5 b/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.md5 new file mode 100644 index 000000000..d0e94928b --- /dev/null +++ b/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.md5 @@ -0,0 +1 @@ +d277115b334211e9f88c435f25a665c7 \ No newline at end of file diff --git a/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.png b/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.png new file mode 100644 index 000000000..c11a62e6b Binary files /dev/null and b/docs/generated/docs/class_networking_a207f306c10b8f65ca0904cc26a9ef15c_icgraph.png differ diff --git a/docs/generated/docs/class_networking_a253025ed2a3c36eb998e7b900155359e_cgraph.map b/docs/generated/docs/class_networking_a253025ed2a3c36eb998e7b900155359e_cgraph.map new file mode 100644 index 000000000..573fb211d --- /dev/null +++ b/docs/generated/docs/class_networking_a253025ed2a3c36eb998e7b900155359e_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_networking_a253025ed2a3c36eb998e7b900155359e_cgraph.md5 b/docs/generated/docs/class_networking_a253025ed2a3c36eb998e7b900155359e_cgraph.md5 new file mode 100644 index 000000000..d95fc645d --- /dev/null +++ b/docs/generated/docs/class_networking_a253025ed2a3c36eb998e7b900155359e_cgraph.md5 @@ -0,0 +1 @@ +99b300130b66ec6c4178297ece86b834 \ No newline at end of file diff --git a/docs/generated/docs/class_networking_a253025ed2a3c36eb998e7b900155359e_cgraph.png b/docs/generated/docs/class_networking_a253025ed2a3c36eb998e7b900155359e_cgraph.png new file mode 100644 index 000000000..3864c2b50 Binary files /dev/null and b/docs/generated/docs/class_networking_a253025ed2a3c36eb998e7b900155359e_cgraph.png differ diff --git a/docs/class_networking_a2b8f2f52b332dc0af375113a64881a8a_cgraph.map b/docs/generated/docs/class_networking_a4071208242243ae91f48884294a18429_cgraph.map similarity index 100% rename from docs/class_networking_a2b8f2f52b332dc0af375113a64881a8a_cgraph.map rename to docs/generated/docs/class_networking_a4071208242243ae91f48884294a18429_cgraph.map diff --git a/docs/generated/docs/class_networking_a4071208242243ae91f48884294a18429_cgraph.md5 b/docs/generated/docs/class_networking_a4071208242243ae91f48884294a18429_cgraph.md5 new file mode 100644 index 000000000..2fb98458f --- /dev/null +++ b/docs/generated/docs/class_networking_a4071208242243ae91f48884294a18429_cgraph.md5 @@ -0,0 +1 @@ +824654ef3e56ea917b6956640c5f5fb0 \ No newline at end of file diff --git a/docs/generated/docs/class_networking_a4071208242243ae91f48884294a18429_cgraph.png b/docs/generated/docs/class_networking_a4071208242243ae91f48884294a18429_cgraph.png new file mode 100644 index 000000000..6e219a016 Binary files /dev/null and b/docs/generated/docs/class_networking_a4071208242243ae91f48884294a18429_cgraph.png differ diff --git a/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.map b/docs/generated/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.map similarity index 100% rename from docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.map rename to docs/generated/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.map diff --git a/docs/generated/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.md5 b/docs/generated/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.md5 new file mode 100644 index 000000000..6b547795d --- /dev/null +++ b/docs/generated/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.md5 @@ -0,0 +1 @@ +3b9559c530382133e32780b49900d86f \ No newline at end of file diff --git a/docs/generated/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.png b/docs/generated/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.png new file mode 100644 index 000000000..8c46d03b0 Binary files /dev/null and b/docs/generated/docs/class_networking_a59d475a2f12b88ef8334274a9a0b1cee_cgraph.png differ diff --git a/docs/generated/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.map b/docs/generated/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.map new file mode 100644 index 000000000..d9b6c8f73 --- /dev/null +++ b/docs/generated/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/generated/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.md5 b/docs/generated/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.md5 new file mode 100644 index 000000000..3e7ee6c41 --- /dev/null +++ b/docs/generated/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.md5 @@ -0,0 +1 @@ +aa472c0f789a1e4f560dd9fe1ee2281f \ No newline at end of file diff --git a/docs/generated/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.png b/docs/generated/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.png new file mode 100644 index 000000000..6ff642b39 Binary files /dev/null and b/docs/generated/docs/class_networking_a7a3cac2e878aa2c513451f235c70aff7_icgraph.png differ diff --git a/docs/generated/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.map b/docs/generated/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.map new file mode 100644 index 000000000..3a6ad4f75 --- /dev/null +++ b/docs/generated/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.md5 b/docs/generated/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.md5 new file mode 100644 index 000000000..d70e58b9c --- /dev/null +++ b/docs/generated/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.md5 @@ -0,0 +1 @@ +40e6a2d5f45c91289889102c653ccf5b \ No newline at end of file diff --git a/docs/generated/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.png b/docs/generated/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.png new file mode 100644 index 000000000..4389f5679 Binary files /dev/null and b/docs/generated/docs/class_networking_a91507b52fbc31dd34d143c8a5634027e_icgraph.png differ diff --git a/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.map b/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.map new file mode 100644 index 000000000..7c05cf68e --- /dev/null +++ b/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.md5 b/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.md5 new file mode 100644 index 000000000..9cf0ce0bf --- /dev/null +++ b/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.md5 @@ -0,0 +1 @@ +b4e39bc8443c0e24280f56894bba1d0c \ No newline at end of file diff --git a/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.png b/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.png new file mode 100644 index 000000000..abfa7e7ab Binary files /dev/null and b/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_cgraph.png differ diff --git a/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.map b/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.map new file mode 100644 index 000000000..59fec3fd8 --- /dev/null +++ b/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.md5 b/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.md5 new file mode 100644 index 000000000..2ec7b2fea --- /dev/null +++ b/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.md5 @@ -0,0 +1 @@ +640b9384c160ebb433f88954742d9e8f \ No newline at end of file diff --git a/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.png b/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.png new file mode 100644 index 000000000..0f14ffdf7 Binary files /dev/null and b/docs/generated/docs/class_networking_a94815dd34af734e9fc3839cbe6279355_icgraph.png differ diff --git a/docs/generated/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.map b/docs/generated/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.map new file mode 100644 index 000000000..168f12a5a --- /dev/null +++ b/docs/generated/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.md5 b/docs/generated/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.md5 new file mode 100644 index 000000000..cb94a5ae0 --- /dev/null +++ b/docs/generated/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.md5 @@ -0,0 +1 @@ +5761ce862ccc9413d14e3ea5540e0cee \ No newline at end of file diff --git a/docs/generated/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.png b/docs/generated/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.png new file mode 100644 index 000000000..7dce0143c Binary files /dev/null and b/docs/generated/docs/class_networking_ae4b12924970227730df3377144301a7c_icgraph.png differ diff --git a/docs/generated/docs/class_numeric_sensor-members.html b/docs/generated/docs/class_numeric_sensor-members.html new file mode 100644 index 000000000..494d189e8 --- /dev/null +++ b/docs/generated/docs/class_numeric_sensor-members.html @@ -0,0 +1,127 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NumericSensor Member List
+
+
+ +

This is the complete list of members for NumericSensor, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connect_to(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< float >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< float >inline
+
+ + + + diff --git a/docs/class_numeric_sensor.html b/docs/generated/docs/class_numeric_sensor.html similarity index 75% rename from docs/class_numeric_sensor.html rename to docs/generated/docs/class_numeric_sensor.html index 5410ac354..641621abe 100644 --- a/docs/class_numeric_sensor.html +++ b/docs/generated/docs/class_numeric_sensor.html @@ -3,7 +3,7 @@ - + SensESP: NumericSensor Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -99,18 +95,27 @@
Inheritance diagram for NumericSensor:
-
Inheritance graph
- - - - - - - - - - - +
Inheritance graph
+ + + + + + + + + + + + + + + + + + + +
[legend]
@@ -129,8 +134,8 @@ - - + + @@ -142,23 +147,23 @@ - - - - - - - - + + + + - - - - + + + + + + + +
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
void connect_to (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connect_to (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
@@ -166,17 +171,16 @@ - - + + + + - - - @@ -201,7 +205,7 @@

-

Definition at line 12 of file sensor.cpp.

+

Definition at line 9 of file sensor.cpp.

@@ -215,9 +219,7 @@

diff --git a/docs/class_numeric_sensor.js b/docs/generated/docs/class_numeric_sensor.js similarity index 100% rename from docs/class_numeric_sensor.js rename to docs/generated/docs/class_numeric_sensor.js diff --git a/docs/generated/docs/class_numeric_sensor__inherit__graph.map b/docs/generated/docs/class_numeric_sensor__inherit__graph.map new file mode 100644 index 000000000..d454d3211 --- /dev/null +++ b/docs/generated/docs/class_numeric_sensor__inherit__graph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/class_numeric_sensor__inherit__graph.md5 b/docs/generated/docs/class_numeric_sensor__inherit__graph.md5 new file mode 100644 index 000000000..d4cf6f438 --- /dev/null +++ b/docs/generated/docs/class_numeric_sensor__inherit__graph.md5 @@ -0,0 +1 @@ +74e8189a196759bbaf49a051811c15af \ No newline at end of file diff --git a/docs/generated/docs/class_numeric_sensor__inherit__graph.png b/docs/generated/docs/class_numeric_sensor__inherit__graph.png new file mode 100644 index 000000000..b94313a15 Binary files /dev/null and b/docs/generated/docs/class_numeric_sensor__inherit__graph.png differ diff --git a/docs/generated/docs/class_numeric_threshold-members.html b/docs/generated/docs/class_numeric_threshold-members.html new file mode 100644 index 000000000..c47cbcd80 --- /dev/null +++ b/docs/generated/docs/class_numeric_threshold-members.html @@ -0,0 +1,114 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+

Additional Inherited Members

static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
+ + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NumericThreshold Member List
+
+
+ +

This is the complete list of members for NumericThreshold, including all inherited members.

+ + + + + + + + + + + + + +
connectFrom(ValueProducer< bool > *producer0, ValueProducer< bool > *producer1=NULL, ValueProducer< bool > *producer2=NULL, ValueProducer< bool > *producer3=NULL, ValueProducer< bool > *producer4=NULL)Transform< float, bool >inline
get_config_schema() overrideNumericThresholdvirtual
get_configuration(JsonObject &doc) overrideNumericThresholdvirtual
in_rangeThresholdTransform< float, bool >protected
max_valueThresholdTransform< float, bool >protected
min_valueThresholdTransform< float, bool >protected
NumericThreshold(float min_value, float max_value, bool in_range=true, String config_path="")NumericThresholdinline
out_rangeThresholdTransform< float, bool >protected
set_configuration(const JsonObject &config) overrideNumericThresholdvirtual
set_input(float new_value, uint8_t input_channel=0) overrideThresholdTransform< float, bool >virtual
ThresholdTransform(float min_value, float max_value, bool in_range, bool out_range, String config_path="")ThresholdTransform< float, bool >inline
Transform(String config_path="")Transform< float, bool >inline
+
+ + + + diff --git a/docs/generated/docs/class_numeric_threshold.html b/docs/generated/docs/class_numeric_threshold.html new file mode 100644 index 000000000..a75a0cb15 --- /dev/null +++ b/docs/generated/docs/class_numeric_threshold.html @@ -0,0 +1,292 @@ + + + + + + + +SensESP: NumericThreshold Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NumericThreshold Class Reference
+
+
+ +

#include <threshold.h>

+
+Inheritance diagram for NumericThreshold:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 NumericThreshold (float min_value, float max_value, bool in_range=true, String config_path="")
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from ThresholdTransform< float, bool >
 ThresholdTransform (float min_value, float max_value, bool in_range, bool out_range, String config_path="")
 
virtual void set_input (float new_value, uint8_t input_channel=0) override
 
- Public Member Functions inherited from Transform< float, bool >
 Transform (String config_path="")
 
Transform< float, bool > * connectFrom (ValueProducer< bool > *producer0, ValueProducer< bool > *producer1=NULL, ValueProducer< bool > *producer2=NULL, ValueProducer< bool > *producer3=NULL, ValueProducer< bool > *producer4=NULL)
 
+ + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from ThresholdTransform< float, bool >
float min_value
 
float max_value
 
bool in_range
 
bool out_range
 
+

Detailed Description

+

A Transform that translates a float value into a boolean value. min_value and MaxValue set a range. If input value is in the range, the output will be the value of in_range. Otherwise, it will be !in_range.

+ +

Definition at line 42 of file threshold.h.

+

Constructor & Destructor Documentation

+ +

◆ NumericThreshold()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NumericThreshold::NumericThreshold (float min_value,
float max_value,
bool in_range = true,
String config_path = "" 
)
+
+inline
+
+ +

Definition at line 44 of file threshold.h.

+ +
+
+

Member Function Documentation

+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String NumericThreshold::get_config_schema ()
+
+overridevirtual
+
+ +

Definition at line 46 of file threshold.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void NumericThreshold::get_configuration (JsonObject & doc)
+
+overridevirtual
+
+ +

Definition at line 14 of file threshold.cpp.

+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool NumericThreshold::set_configuration (const JsonObject & config)
+
+overridevirtual
+
+ +

Definition at line 31 of file threshold.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_numeric_threshold.js b/docs/generated/docs/class_numeric_threshold.js new file mode 100644 index 000000000..6fe96b1ba --- /dev/null +++ b/docs/generated/docs/class_numeric_threshold.js @@ -0,0 +1,7 @@ +var class_numeric_threshold = +[ + [ "NumericThreshold", "class_numeric_threshold.html#a60e21bb34053c5b97d14d654f083b17c", null ], + [ "get_config_schema", "class_numeric_threshold.html#a230334ae33c4f4803edea06bcf9ea2f6", null ], + [ "get_configuration", "class_numeric_threshold.html#a3b5472c133ce858cf575716bb682cabe", null ], + [ "set_configuration", "class_numeric_threshold.html#a714de271f5489664146ac9090a0dc14b", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_numeric_threshold__inherit__graph.map b/docs/generated/docs/class_numeric_threshold__inherit__graph.map new file mode 100644 index 000000000..9561fb4f9 --- /dev/null +++ b/docs/generated/docs/class_numeric_threshold__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_numeric_threshold__inherit__graph.md5 b/docs/generated/docs/class_numeric_threshold__inherit__graph.md5 new file mode 100644 index 000000000..e40e9bffc --- /dev/null +++ b/docs/generated/docs/class_numeric_threshold__inherit__graph.md5 @@ -0,0 +1 @@ +7504c53b0656e1edb11ac252010e378f \ No newline at end of file diff --git a/docs/generated/docs/class_numeric_threshold__inherit__graph.png b/docs/generated/docs/class_numeric_threshold__inherit__graph.png new file mode 100644 index 000000000..8677c5c9a Binary files /dev/null and b/docs/generated/docs/class_numeric_threshold__inherit__graph.png differ diff --git a/docs/class_observable-members.html b/docs/generated/docs/class_observable-members.html similarity index 90% rename from docs/class_observable-members.html rename to docs/generated/docs/class_observable-members.html index 6cefb1e7f..9c363a150 100644 --- a/docs/class_observable-members.html +++ b/docs/generated/docs/class_observable-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -101,9 +97,7 @@ diff --git a/docs/generated/docs/class_observable.html b/docs/generated/docs/class_observable.html new file mode 100644 index 000000000..c950e4dee --- /dev/null +++ b/docs/generated/docs/class_observable.html @@ -0,0 +1,223 @@ + + + + + + + +SensESP: Observable Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Observable Class Reference
+
+
+ +

#include <observable.h>

+
+Inheritance diagram for Observable:
+
+
Inheritance graph
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[legend]
+ + + + + + +

+Public Member Functions

void notify ()
 
void attach (std::function< void()> observer)
 
+

Detailed Description

+
+

Definition at line 14 of file observable.h.

+

Member Function Documentation

+ +

◆ attach()

+ +
+
+ + + + + + + + +
void Observable::attach (std::function< void()> observer)
+
+ +

Definition at line 9 of file observable.cpp.

+ +
+
+ +

◆ notify()

+ +
+
+ + + + + + + +
void Observable::notify ()
+
+ +

Definition at line 3 of file observable.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + + + + + + + + + + + +
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/class_observable.js b/docs/generated/docs/class_observable.js similarity index 100% rename from docs/class_observable.js rename to docs/generated/docs/class_observable.js diff --git a/docs/generated/docs/class_observable__inherit__graph.map b/docs/generated/docs/class_observable__inherit__graph.map new file mode 100644 index 000000000..11f5d0c48 --- /dev/null +++ b/docs/generated/docs/class_observable__inherit__graph.map @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/class_observable__inherit__graph.md5 b/docs/generated/docs/class_observable__inherit__graph.md5 new file mode 100644 index 000000000..f3e02560d --- /dev/null +++ b/docs/generated/docs/class_observable__inherit__graph.md5 @@ -0,0 +1 @@ +a0fcfd42c23a091309b3efea32b34868 \ No newline at end of file diff --git a/docs/generated/docs/class_observable__inherit__graph.png b/docs/generated/docs/class_observable__inherit__graph.png new file mode 100644 index 000000000..f7221d2ef Binary files /dev/null and b/docs/generated/docs/class_observable__inherit__graph.png differ diff --git a/docs/generated/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.map b/docs/generated/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.map new file mode 100644 index 000000000..6be7c4da0 --- /dev/null +++ b/docs/generated/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.md5 b/docs/generated/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.md5 new file mode 100644 index 000000000..5e97efa35 --- /dev/null +++ b/docs/generated/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.md5 @@ -0,0 +1 @@ +3d2fb0caa1d12c71fa09919edb1661f0 \ No newline at end of file diff --git a/docs/generated/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.png b/docs/generated/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.png new file mode 100644 index 000000000..64ff70461 Binary files /dev/null and b/docs/generated/docs/class_observable_a099bf851e05bb8c1a25e83f2a1389e58_icgraph.png differ diff --git a/docs/class_observable_value-members.html b/docs/generated/docs/class_observable_value-members.html similarity index 75% rename from docs/class_observable_value-members.html rename to docs/generated/docs/class_observable_value-members.html index 97e4dc3f8..8e057eb75 100644 --- a/docs/class_observable_value-members.html +++ b/docs/generated/docs/class_observable_value-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -94,11 +90,11 @@

This is the complete list of members for ObservableValue< T >, including all inherited members.

- - - - - + + + + + @@ -110,9 +106,7 @@ diff --git a/docs/generated/docs/class_observable_value.html b/docs/generated/docs/class_observable_value.html new file mode 100644 index 000000000..9d2e08898 --- /dev/null +++ b/docs/generated/docs/class_observable_value.html @@ -0,0 +1,296 @@ + + + + + + + +SensESP: ObservableValue< T > Class Template Reference + + + + + + + + + + + + + +
+
+
attach(std::function< void()> observer)Observable
connectTo(ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)ValueProducer< T >inline
connectTo(Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)ValueProducer< T >inline
get()ValueProducer< T >inlinevirtual
notify()Observable
connect_to(ValueConsumer< T > *consumer, uint8_t input_channel=0)ValueProducer< T >inline
connect_to(Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< T >inline
connectTo(ValueConsumer< T > *consumer, uint8_t input_channel=0)ValueProducer< T >inline
connectTo(Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< T >inline
get()ValueProducer< T >inlinevirtual
ObservableValue()ObservableValue< T >inline
ObservableValue(const T &value)ObservableValue< T >inline
operator=(const T &value)ObservableValue< T >inline
+ + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ObservableValue< T > Class Template Reference
+
+
+ +

#include <observablevalue.h>

+
+Inheritance diagram for ObservableValue< T >:
+
+
Inheritance graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ObservableValue ()
 
 ObservableValue (const T &value)
 
void set (const T &value)
 
const T & operator= (const T &value)
 
- Public Member Functions inherited from ValueProducer< T >
 ValueProducer ()
 
virtual const T & get ()
 
void connect_to (ValueConsumer< T > *consumer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< T > *consumer, uint8_t input_channel=0)
 
template<typename T2 >
Transform< T, T2 > * connect_to (Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)
 
template<typename T2 >
Transform< T, T2 > * connectTo (Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from ValueProducer< T >
output
 
+

Detailed Description

+

template<class T>
+class ObservableValue< T >

+ + +

Definition at line 12 of file observablevalue.h.

+

Constructor & Destructor Documentation

+ +

◆ ObservableValue() [1/2]

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
ObservableValue< T >::ObservableValue ()
+
+inline
+
+ +

Definition at line 14 of file observablevalue.h.

+ +
+
+ +

◆ ObservableValue() [2/2]

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + +
ObservableValue< T >::ObservableValue (const T & value)
+
+inline
+
+ +

Definition at line 16 of file observablevalue.h.

+ +
+
+

Member Function Documentation

+ +

◆ operator=()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + +
const T& ObservableValue< T >::operator= (const T & value)
+
+inline
+
+ +

Definition at line 23 of file observablevalue.h.

+ +
+
+ +

◆ set()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + +
void ObservableValue< T >::set (const T & value)
+
+inline
+
+ +

Definition at line 18 of file observablevalue.h.

+
+Here is the caller graph for this function:
+
+
+ + + + + + + + + + + + + + +
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/class_observable_value.js b/docs/generated/docs/class_observable_value.js similarity index 100% rename from docs/class_observable_value.js rename to docs/generated/docs/class_observable_value.js diff --git a/docs/generated/docs/class_observable_value__inherit__graph.map b/docs/generated/docs/class_observable_value__inherit__graph.map new file mode 100644 index 000000000..735731cbd --- /dev/null +++ b/docs/generated/docs/class_observable_value__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_observable_value__inherit__graph.md5 b/docs/generated/docs/class_observable_value__inherit__graph.md5 new file mode 100644 index 000000000..a98ac9f9b --- /dev/null +++ b/docs/generated/docs/class_observable_value__inherit__graph.md5 @@ -0,0 +1 @@ +c6c72ddef9ffcac880fefc414ee7ecdc \ No newline at end of file diff --git a/docs/generated/docs/class_observable_value__inherit__graph.png b/docs/generated/docs/class_observable_value__inherit__graph.png new file mode 100644 index 000000000..9d8e6a7da Binary files /dev/null and b/docs/generated/docs/class_observable_value__inherit__graph.png differ diff --git a/docs/generated/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.map b/docs/generated/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.map new file mode 100644 index 000000000..de85d1dff --- /dev/null +++ b/docs/generated/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/docs/generated/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.md5 b/docs/generated/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.md5 new file mode 100644 index 000000000..0c4f63903 --- /dev/null +++ b/docs/generated/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.md5 @@ -0,0 +1 @@ +b2c7d9e8ffac746ca8e11c931af5231b \ No newline at end of file diff --git a/docs/generated/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.png b/docs/generated/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.png new file mode 100644 index 000000000..ce1aa4c70 Binary files /dev/null and b/docs/generated/docs/class_observable_value_a51cf25d4951d3214021da0c25985838d_icgraph.png differ diff --git a/docs/generated/docs/class_one_wire_temperature-members.html b/docs/generated/docs/class_one_wire_temperature-members.html new file mode 100644 index 000000000..793320dca --- /dev/null +++ b/docs/generated/docs/class_one_wire_temperature-members.html @@ -0,0 +1,128 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
OneWireTemperature Member List
+
+
+ +

This is the complete list of members for OneWireTemperature, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connect_to(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable() override finalOneWireTemperaturevirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< float >inlinevirtual
get_config_schema() overrideOneWireTemperaturevirtual
get_configuration(JsonObject &doc) override finalOneWireTemperaturevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
OneWireTemperature(DallasTemperatureSensors *dts, uint read_delay=1000, String config_path="")OneWireTemperature
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config) override finalOneWireTemperaturevirtual
set_priority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< float >inline
+
+ + + + diff --git a/docs/class_one_wire_temperature.html b/docs/generated/docs/class_one_wire_temperature.html similarity index 76% rename from docs/class_one_wire_temperature.html rename to docs/generated/docs/class_one_wire_temperature.html index d59f96ee4..2bf3436dd 100644 --- a/docs/class_one_wire_temperature.html +++ b/docs/generated/docs/class_one_wire_temperature.html @@ -3,7 +3,7 @@ - + SensESP: OneWireTemperature Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -99,26 +95,26 @@
Inheritance diagram for OneWireTemperature:
-
Inheritance graph
- - - - - - - - +
Inheritance graph
+ + + + + + + +
[legend]
- - + + - - + + @@ -142,23 +138,23 @@ - - - - - - - - + + + + - - - - + + + + + + + +

Public Member Functions

 OneWireTemperature (DallasTemperatureSensors *dts, String config_path="")
 
 OneWireTemperature (DallasTemperatureSensors *dts, uint read_delay=1000, String config_path="")
 
void enable () override final
 
virtual JsonObject & get_configuration (JsonBuffer &buf) override final
 
virtual void get_configuration (JsonObject &doc) override final
 
virtual bool set_configuration (const JsonObject &config) override final
 
virtual String get_config_schema () override
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
void connect_to (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connect_to (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
@@ -166,17 +162,16 @@ - - + + + + - - - @@ -185,8 +180,8 @@

Definition at line 27 of file onewire_temperature.h.

Constructor & Destructor Documentation

- -

◆ OneWireTemperature()

+ +

◆ OneWireTemperature()

@@ -197,6 +192,12 @@

DallasTemperatureSensors

+ + + + + + @@ -211,7 +212,7 @@

-

Definition at line 96 of file onewire_temperature.cpp.

+

Definition at line 93 of file onewire_temperature.cpp.

@@ -242,7 +243,7 @@

Enable.

-

Definition at line 127 of file onewire_temperature.cpp.

+

Definition at line 125 of file onewire_temperature.cpp.

@@ -268,16 +269,16 @@

-

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
+

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org

Reimplemented from Configurable.

-

Definition at line 164 of file onewire_temperature.cpp.

+

Definition at line 160 of file onewire_temperature.cpp.

- -

◆ get_configuration()

+ +

◆ get_configuration()

@@ -286,10 +287,10 @@

Additional Inherited Members

static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
dts,
uint read_delay = 1000,
- + - - + +
JsonObject & OneWireTemperature::get_configuration void OneWireTemperature::get_configuration (JsonBuffer & buf)JsonObject & configObject)
@@ -299,18 +300,18 @@

-

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.

+

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonDocument::as<JsonObject>() and returned.

-

Reimplemented from Configurable.

+

Reimplemented from Configurable.

-

Definition at line 145 of file onewire_temperature.cpp.

+

Definition at line 143 of file onewire_temperature.cpp.

Here is the call graph for this function:
-
- - - +
+ + +
@@ -343,14 +344,14 @@

Configurable.

-

Definition at line 168 of file onewire_temperature.cpp.

+

Definition at line 162 of file onewire_temperature.cpp.

Here is the call graph for this function:
-
- - - +
+ + +
@@ -366,9 +367,7 @@

diff --git a/docs/generated/docs/class_one_wire_temperature.js b/docs/generated/docs/class_one_wire_temperature.js new file mode 100644 index 000000000..c41c70900 --- /dev/null +++ b/docs/generated/docs/class_one_wire_temperature.js @@ -0,0 +1,8 @@ +var class_one_wire_temperature = +[ + [ "OneWireTemperature", "class_one_wire_temperature.html#a1058bb2484427bbf21f7f9e4ea9751f9", null ], + [ "enable", "class_one_wire_temperature.html#a86817f083dfb5e9373b48d8fd1f8d165", null ], + [ "get_config_schema", "class_one_wire_temperature.html#a4331b2b91d6c7d000454e741cdce9d0a", null ], + [ "get_configuration", "class_one_wire_temperature.html#a00867083ea90878580cc2cc7d3502bda", null ], + [ "set_configuration", "class_one_wire_temperature.html#a83bce20a52e396dbd97a43a6e72b2824", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_one_wire_temperature__inherit__graph.map b/docs/generated/docs/class_one_wire_temperature__inherit__graph.map new file mode 100644 index 000000000..059c293d1 --- /dev/null +++ b/docs/generated/docs/class_one_wire_temperature__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_one_wire_temperature__inherit__graph.md5 b/docs/generated/docs/class_one_wire_temperature__inherit__graph.md5 new file mode 100644 index 000000000..32e15a394 --- /dev/null +++ b/docs/generated/docs/class_one_wire_temperature__inherit__graph.md5 @@ -0,0 +1 @@ +679bdc6c5db29b26d9274c561c96e43b \ No newline at end of file diff --git a/docs/generated/docs/class_one_wire_temperature__inherit__graph.png b/docs/generated/docs/class_one_wire_temperature__inherit__graph.png new file mode 100644 index 000000000..5261e05cc Binary files /dev/null and b/docs/generated/docs/class_one_wire_temperature__inherit__graph.png differ diff --git a/docs/class_one_wire_temperature_a4a1058669383f507ed70bd46f9f0d2f0_cgraph.map b/docs/generated/docs/class_one_wire_temperature_a00867083ea90878580cc2cc7d3502bda_cgraph.map similarity index 100% rename from docs/class_one_wire_temperature_a4a1058669383f507ed70bd46f9f0d2f0_cgraph.map rename to docs/generated/docs/class_one_wire_temperature_a00867083ea90878580cc2cc7d3502bda_cgraph.map diff --git a/docs/generated/docs/class_one_wire_temperature_a00867083ea90878580cc2cc7d3502bda_cgraph.md5 b/docs/generated/docs/class_one_wire_temperature_a00867083ea90878580cc2cc7d3502bda_cgraph.md5 new file mode 100644 index 000000000..5a5d170e0 --- /dev/null +++ b/docs/generated/docs/class_one_wire_temperature_a00867083ea90878580cc2cc7d3502bda_cgraph.md5 @@ -0,0 +1 @@ +dbfbffa84128a411abd0af1f6870a608 \ No newline at end of file diff --git a/docs/generated/docs/class_one_wire_temperature_a00867083ea90878580cc2cc7d3502bda_cgraph.png b/docs/generated/docs/class_one_wire_temperature_a00867083ea90878580cc2cc7d3502bda_cgraph.png new file mode 100644 index 000000000..4c0163e64 Binary files /dev/null and b/docs/generated/docs/class_one_wire_temperature_a00867083ea90878580cc2cc7d3502bda_cgraph.png differ diff --git a/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.map b/docs/generated/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.map similarity index 100% rename from docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.map rename to docs/generated/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.map diff --git a/docs/generated/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.md5 b/docs/generated/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.md5 new file mode 100644 index 000000000..1604a0875 --- /dev/null +++ b/docs/generated/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.md5 @@ -0,0 +1 @@ +e19121d1c918a9c8320b8944e756274d \ No newline at end of file diff --git a/docs/generated/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.png b/docs/generated/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.png new file mode 100644 index 000000000..61e739f00 Binary files /dev/null and b/docs/generated/docs/class_one_wire_temperature_a83bce20a52e396dbd97a43a6e72b2824_cgraph.png differ diff --git a/docs/generated/docs/class_orientation9_d_o_f-members.html b/docs/generated/docs/class_orientation9_d_o_f-members.html new file mode 100644 index 000000000..901a3157c --- /dev/null +++ b/docs/generated/docs/class_orientation9_d_o_f-members.html @@ -0,0 +1,121 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Orientation9DOF Member List
+
+
+ +

This is the complete list of members for Orientation9DOF, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
Orientation9DOF(uint8_t pin_i2c_sda, uint8_t pin_i2c_scl, String config_path="")Orientation9DOF
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
stream_raw_values(void)Orientation9DOF
+
+ + + + diff --git a/docs/generated/docs/class_orientation9_d_o_f.html b/docs/generated/docs/class_orientation9_d_o_f.html new file mode 100644 index 000000000..e62368e3a --- /dev/null +++ b/docs/generated/docs/class_orientation9_d_o_f.html @@ -0,0 +1,256 @@ + + + + + + + +SensESP: Orientation9DOF Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Orientation9DOF Class Reference
+
+
+ +

#include <orientation_9dof_input.h>

+
+Inheritance diagram for Orientation9DOF:
+
+
Inheritance graph
+ + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Orientation9DOF (uint8_t pin_i2c_sda, uint8_t pin_i2c_scl, String config_path="")
 
void stream_raw_values (void)
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
+

Detailed Description

+
+

Definition at line 24 of file orientation_9dof_input.h.

+

Constructor & Destructor Documentation

+ +

◆ Orientation9DOF()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Orientation9DOF::Orientation9DOF (uint8_t pin_i2c_sda,
uint8_t pin_i2c_scl,
String config_path = "" 
)
+
+ +

Definition at line 15 of file orientation_9dof_input.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + + + +
+ +
+
+

Member Function Documentation

+ +

◆ stream_raw_values()

+ +
+
+ + + + + + + + +
void Orientation9DOF::stream_raw_values (void )
+
+ +

Definition at line 28 of file orientation_9dof_input.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_orientation9_d_o_f.js b/docs/generated/docs/class_orientation9_d_o_f.js new file mode 100644 index 000000000..6192d8390 --- /dev/null +++ b/docs/generated/docs/class_orientation9_d_o_f.js @@ -0,0 +1,5 @@ +var class_orientation9_d_o_f = +[ + [ "Orientation9DOF", "class_orientation9_d_o_f.html#ad27863d8df7610c8e6c74c874a91fbba", null ], + [ "stream_raw_values", "class_orientation9_d_o_f.html#a4631c8cdba0a0e3cb174ce508c30950f", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_orientation9_d_o_f__inherit__graph.map b/docs/generated/docs/class_orientation9_d_o_f__inherit__graph.map new file mode 100644 index 000000000..1cb3626b3 --- /dev/null +++ b/docs/generated/docs/class_orientation9_d_o_f__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/class_orientation9_d_o_f__inherit__graph.md5 b/docs/generated/docs/class_orientation9_d_o_f__inherit__graph.md5 new file mode 100644 index 000000000..c5fe0bff4 --- /dev/null +++ b/docs/generated/docs/class_orientation9_d_o_f__inherit__graph.md5 @@ -0,0 +1 @@ +342b1056046619c3f8e0963d74b255b9 \ No newline at end of file diff --git a/docs/generated/docs/class_orientation9_d_o_f__inherit__graph.png b/docs/generated/docs/class_orientation9_d_o_f__inherit__graph.png new file mode 100644 index 000000000..2316cf897 Binary files /dev/null and b/docs/generated/docs/class_orientation9_d_o_f__inherit__graph.png differ diff --git a/docs/generated/docs/class_orientation9_d_o_f_a4631c8cdba0a0e3cb174ce508c30950f_cgraph.map b/docs/generated/docs/class_orientation9_d_o_f_a4631c8cdba0a0e3cb174ce508c30950f_cgraph.map new file mode 100644 index 000000000..271290b9f --- /dev/null +++ b/docs/generated/docs/class_orientation9_d_o_f_a4631c8cdba0a0e3cb174ce508c30950f_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_orientation9_d_o_f_a4631c8cdba0a0e3cb174ce508c30950f_cgraph.md5 b/docs/generated/docs/class_orientation9_d_o_f_a4631c8cdba0a0e3cb174ce508c30950f_cgraph.md5 new file mode 100644 index 000000000..52b3472a1 --- /dev/null +++ b/docs/generated/docs/class_orientation9_d_o_f_a4631c8cdba0a0e3cb174ce508c30950f_cgraph.md5 @@ -0,0 +1 @@ +18df92f85643ca0e010e3329433446e4 \ No newline at end of file diff --git a/docs/generated/docs/class_orientation9_d_o_f_a4631c8cdba0a0e3cb174ce508c30950f_cgraph.png b/docs/generated/docs/class_orientation9_d_o_f_a4631c8cdba0a0e3cb174ce508c30950f_cgraph.png new file mode 100644 index 000000000..d9daf75ba Binary files /dev/null and b/docs/generated/docs/class_orientation9_d_o_f_a4631c8cdba0a0e3cb174ce508c30950f_cgraph.png differ diff --git a/docs/generated/docs/class_orientation9_d_o_f_ad27863d8df7610c8e6c74c874a91fbba_cgraph.map b/docs/generated/docs/class_orientation9_d_o_f_ad27863d8df7610c8e6c74c874a91fbba_cgraph.map new file mode 100644 index 000000000..a69ab9938 --- /dev/null +++ b/docs/generated/docs/class_orientation9_d_o_f_ad27863d8df7610c8e6c74c874a91fbba_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/class_orientation9_d_o_f_ad27863d8df7610c8e6c74c874a91fbba_cgraph.md5 b/docs/generated/docs/class_orientation9_d_o_f_ad27863d8df7610c8e6c74c874a91fbba_cgraph.md5 new file mode 100644 index 000000000..7db177c1e --- /dev/null +++ b/docs/generated/docs/class_orientation9_d_o_f_ad27863d8df7610c8e6c74c874a91fbba_cgraph.md5 @@ -0,0 +1 @@ +4e070694015d6fb85271186fd6c8d2ea \ No newline at end of file diff --git a/docs/generated/docs/class_orientation9_d_o_f_ad27863d8df7610c8e6c74c874a91fbba_cgraph.png b/docs/generated/docs/class_orientation9_d_o_f_ad27863d8df7610c8e6c74c874a91fbba_cgraph.png new file mode 100644 index 000000000..f2d89b979 Binary files /dev/null and b/docs/generated/docs/class_orientation9_d_o_f_ad27863d8df7610c8e6c74c874a91fbba_cgraph.png differ diff --git a/docs/class_p_s_t_i030_sentence_parser-members.html b/docs/generated/docs/class_p_s_t_i030_sentence_parser-members.html similarity index 92% rename from docs/class_p_s_t_i030_sentence_parser-members.html rename to docs/generated/docs/class_p_s_t_i030_sentence_parser-members.html index d86f79230..07bdd8d47 100644 --- a/docs/class_p_s_t_i030_sentence_parser-members.html +++ b/docs/generated/docs/class_p_s_t_i030_sentence_parser-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -105,9 +101,7 @@ diff --git a/docs/class_p_s_t_i030_sentence_parser.html b/docs/generated/docs/class_p_s_t_i030_sentence_parser.html similarity index 80% rename from docs/class_p_s_t_i030_sentence_parser.html rename to docs/generated/docs/class_p_s_t_i030_sentence_parser.html index 2958c1f88..ac5952df2 100644 --- a/docs/class_p_s_t_i030_sentence_parser.html +++ b/docs/generated/docs/class_p_s_t_i030_sentence_parser.html @@ -3,7 +3,7 @@ - + SensESP: PSTI030SentenceParser Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -99,10 +95,10 @@
Inheritance diagram for PSTI030SentenceParser:
-
Inheritance graph
- - - +
Inheritance graph
+ + +
[legend]
@@ -128,7 +124,7 @@

Detailed Description

-

Definition at line 105 of file nmea_parser.h.

+

Definition at line 106 of file nmea_parser.h.

Constructor & Destructor Documentation

◆ PSTI030SentenceParser()

@@ -154,7 +150,7 @@

-

Definition at line 107 of file nmea_parser.h.

+

Definition at line 108 of file nmea_parser.h.

@@ -201,24 +197,24 @@

SentenceParser.

-

Definition at line 378 of file nmea_parser.cpp.

+

Definition at line 374 of file nmea_parser.cpp.

Here is the call graph for this function:
-
- - - - - - - - - - - - - +
+ + + + + + + + + + + + +
@@ -249,14 +245,14 @@

SentenceParser.

-

Definition at line 109 of file nmea_parser.h.

+

Definition at line 110 of file nmea_parser.h.

Here is the caller graph for this function:
-
- - - +
+ + +
@@ -272,9 +268,7 @@

diff --git a/docs/class_p_s_t_i030_sentence_parser.js b/docs/generated/docs/class_p_s_t_i030_sentence_parser.js similarity index 100% rename from docs/class_p_s_t_i030_sentence_parser.js rename to docs/generated/docs/class_p_s_t_i030_sentence_parser.js diff --git a/docs/class_p_s_t_i030_sentence_parser__inherit__graph.map b/docs/generated/docs/class_p_s_t_i030_sentence_parser__inherit__graph.map similarity index 100% rename from docs/class_p_s_t_i030_sentence_parser__inherit__graph.map rename to docs/generated/docs/class_p_s_t_i030_sentence_parser__inherit__graph.map diff --git a/docs/generated/docs/class_p_s_t_i030_sentence_parser__inherit__graph.md5 b/docs/generated/docs/class_p_s_t_i030_sentence_parser__inherit__graph.md5 new file mode 100644 index 000000000..f25d2eac9 --- /dev/null +++ b/docs/generated/docs/class_p_s_t_i030_sentence_parser__inherit__graph.md5 @@ -0,0 +1 @@ +6442520aaacd1f1ae91f9e40370d56ee \ No newline at end of file diff --git a/docs/generated/docs/class_p_s_t_i030_sentence_parser__inherit__graph.png b/docs/generated/docs/class_p_s_t_i030_sentence_parser__inherit__graph.png new file mode 100644 index 000000000..1768b834d Binary files /dev/null and b/docs/generated/docs/class_p_s_t_i030_sentence_parser__inherit__graph.png differ diff --git a/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.map b/docs/generated/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.map similarity index 100% rename from docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.map rename to docs/generated/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.map diff --git a/docs/generated/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.md5 b/docs/generated/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.md5 new file mode 100644 index 000000000..0526e2073 --- /dev/null +++ b/docs/generated/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.md5 @@ -0,0 +1 @@ +8525f88b96c32e0105066380b675dd91 \ No newline at end of file diff --git a/docs/generated/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.png b/docs/generated/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.png new file mode 100644 index 000000000..9b3e8e0c5 Binary files /dev/null and b/docs/generated/docs/class_p_s_t_i030_sentence_parser_adf5b386bffd76b1055d70aa59615d493_icgraph.png differ diff --git a/docs/generated/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.map b/docs/generated/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.map new file mode 100644 index 000000000..b71a4be62 --- /dev/null +++ b/docs/generated/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/docs/generated/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.md5 b/docs/generated/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.md5 new file mode 100644 index 000000000..a95bcfcbd --- /dev/null +++ b/docs/generated/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.md5 @@ -0,0 +1 @@ +f9af9d0f70f2b425848960126d3d2870 \ No newline at end of file diff --git a/docs/generated/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.png b/docs/generated/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.png new file mode 100644 index 000000000..6e6c53a6b Binary files /dev/null and b/docs/generated/docs/class_p_s_t_i030_sentence_parser_aee500dadf0a5ff089d8281c642cdb9bc_cgraph.png differ diff --git a/docs/class_p_s_t_i032_sentence_parser-members.html b/docs/generated/docs/class_p_s_t_i032_sentence_parser-members.html similarity index 92% rename from docs/class_p_s_t_i032_sentence_parser-members.html rename to docs/generated/docs/class_p_s_t_i032_sentence_parser-members.html index 51c864084..97a3d8598 100644 --- a/docs/class_p_s_t_i032_sentence_parser-members.html +++ b/docs/generated/docs/class_p_s_t_i032_sentence_parser-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -105,9 +101,7 @@ diff --git a/docs/class_p_s_t_i032_sentence_parser.html b/docs/generated/docs/class_p_s_t_i032_sentence_parser.html similarity index 82% rename from docs/class_p_s_t_i032_sentence_parser.html rename to docs/generated/docs/class_p_s_t_i032_sentence_parser.html index 4d04cc8e1..c17a82c08 100644 --- a/docs/class_p_s_t_i032_sentence_parser.html +++ b/docs/generated/docs/class_p_s_t_i032_sentence_parser.html @@ -3,7 +3,7 @@ - + SensESP: PSTI032SentenceParser Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -99,10 +95,10 @@
Inheritance diagram for PSTI032SentenceParser:
-
Inheritance graph
- - - +
Inheritance graph
+ + +
[legend]
@@ -128,7 +124,7 @@

Detailed Description

-

Definition at line 113 of file nmea_parser.h.

+

Definition at line 115 of file nmea_parser.h.

Constructor & Destructor Documentation

◆ PSTI032SentenceParser()

@@ -154,7 +150,7 @@

-

Definition at line 115 of file nmea_parser.h.

+

Definition at line 117 of file nmea_parser.h.

@@ -205,18 +201,18 @@

Here is the call graph for this function:
-
- - - - - - - - - - - +
+ + + + + + + + + + +
@@ -247,14 +243,14 @@

SentenceParser.

-

Definition at line 117 of file nmea_parser.h.

+

Definition at line 119 of file nmea_parser.h.

Here is the caller graph for this function:
-
- - - +
+ + +
@@ -270,9 +266,7 @@

diff --git a/docs/class_p_s_t_i032_sentence_parser.js b/docs/generated/docs/class_p_s_t_i032_sentence_parser.js similarity index 100% rename from docs/class_p_s_t_i032_sentence_parser.js rename to docs/generated/docs/class_p_s_t_i032_sentence_parser.js diff --git a/docs/class_p_s_t_i032_sentence_parser__inherit__graph.map b/docs/generated/docs/class_p_s_t_i032_sentence_parser__inherit__graph.map similarity index 100% rename from docs/class_p_s_t_i032_sentence_parser__inherit__graph.map rename to docs/generated/docs/class_p_s_t_i032_sentence_parser__inherit__graph.map diff --git a/docs/generated/docs/class_p_s_t_i032_sentence_parser__inherit__graph.md5 b/docs/generated/docs/class_p_s_t_i032_sentence_parser__inherit__graph.md5 new file mode 100644 index 000000000..5005a6c0c --- /dev/null +++ b/docs/generated/docs/class_p_s_t_i032_sentence_parser__inherit__graph.md5 @@ -0,0 +1 @@ +8325d2e3997692d963cc0ffaeaf92082 \ No newline at end of file diff --git a/docs/generated/docs/class_p_s_t_i032_sentence_parser__inherit__graph.png b/docs/generated/docs/class_p_s_t_i032_sentence_parser__inherit__graph.png new file mode 100644 index 000000000..c11facfc2 Binary files /dev/null and b/docs/generated/docs/class_p_s_t_i032_sentence_parser__inherit__graph.png differ diff --git a/docs/generated/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.map b/docs/generated/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.map new file mode 100644 index 000000000..6c9962093 --- /dev/null +++ b/docs/generated/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/docs/generated/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.md5 b/docs/generated/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.md5 new file mode 100644 index 000000000..ef76fef07 --- /dev/null +++ b/docs/generated/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.md5 @@ -0,0 +1 @@ +30ff10bb3dde8b85e029a8bae2272a25 \ No newline at end of file diff --git a/docs/generated/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.png b/docs/generated/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.png new file mode 100644 index 000000000..869f66878 Binary files /dev/null and b/docs/generated/docs/class_p_s_t_i032_sentence_parser_ac25a7c9f31987ce7a01ce499f045a6a9_cgraph.png differ diff --git a/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.map b/docs/generated/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.map similarity index 100% rename from docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.map rename to docs/generated/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.map diff --git a/docs/generated/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.md5 b/docs/generated/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.md5 new file mode 100644 index 000000000..7216e3827 --- /dev/null +++ b/docs/generated/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.md5 @@ -0,0 +1 @@ +4c2984cfccfa5f9c6cc8966be88b7b7d \ No newline at end of file diff --git a/docs/generated/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.png b/docs/generated/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.png new file mode 100644 index 000000000..334d920f6 Binary files /dev/null and b/docs/generated/docs/class_p_s_t_i032_sentence_parser_acbe297f07ea6729d870ec8222535b1ce_icgraph.png differ diff --git a/docs/class_p_s_t_i_sentence_parser-members.html b/docs/generated/docs/class_p_s_t_i_sentence_parser-members.html similarity index 92% rename from docs/class_p_s_t_i_sentence_parser-members.html rename to docs/generated/docs/class_p_s_t_i_sentence_parser-members.html index 3b3f4c881..4b3352d88 100644 --- a/docs/class_p_s_t_i_sentence_parser-members.html +++ b/docs/generated/docs/class_p_s_t_i_sentence_parser-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -105,9 +101,7 @@ diff --git a/docs/class_p_s_t_i_sentence_parser.html b/docs/generated/docs/class_p_s_t_i_sentence_parser.html similarity index 87% rename from docs/class_p_s_t_i_sentence_parser.html rename to docs/generated/docs/class_p_s_t_i_sentence_parser.html index 1ed4f4823..1f35f6724 100644 --- a/docs/class_p_s_t_i_sentence_parser.html +++ b/docs/generated/docs/class_p_s_t_i_sentence_parser.html @@ -3,7 +3,7 @@ - + SensESP: PSTISentenceParser Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -99,10 +95,10 @@
Inheritance diagram for PSTISentenceParser:
-
Inheritance graph
- - - +
Inheritance graph
+ + +
[legend]
@@ -128,7 +124,7 @@

Detailed Description

-

Definition at line 93 of file nmea_parser.h.

+

Definition at line 95 of file nmea_parser.h.

Constructor & Destructor Documentation

◆ PSTISentenceParser()

@@ -154,7 +150,7 @@

-

Definition at line 95 of file nmea_parser.h.

+

Definition at line 97 of file nmea_parser.h.

@@ -201,7 +197,7 @@

SentenceParser.

-

Definition at line 96 of file nmea_parser.h.

+

Definition at line 98 of file nmea_parser.h.

@@ -253,16 +249,16 @@

SentenceParser.

-

Definition at line 354 of file nmea_parser.cpp.

+

Definition at line 351 of file nmea_parser.cpp.

Here is the call graph for this function:
-
- - - - - +
+ + + + +
@@ -297,10 +293,10 @@

Here is the caller graph for this function:
-
- - - +
+ + +
@@ -316,9 +312,7 @@

diff --git a/docs/class_p_s_t_i_sentence_parser.js b/docs/generated/docs/class_p_s_t_i_sentence_parser.js similarity index 100% rename from docs/class_p_s_t_i_sentence_parser.js rename to docs/generated/docs/class_p_s_t_i_sentence_parser.js diff --git a/docs/class_p_s_t_i_sentence_parser__inherit__graph.map b/docs/generated/docs/class_p_s_t_i_sentence_parser__inherit__graph.map similarity index 100% rename from docs/class_p_s_t_i_sentence_parser__inherit__graph.map rename to docs/generated/docs/class_p_s_t_i_sentence_parser__inherit__graph.map diff --git a/docs/generated/docs/class_p_s_t_i_sentence_parser__inherit__graph.md5 b/docs/generated/docs/class_p_s_t_i_sentence_parser__inherit__graph.md5 new file mode 100644 index 000000000..4ef58e0af --- /dev/null +++ b/docs/generated/docs/class_p_s_t_i_sentence_parser__inherit__graph.md5 @@ -0,0 +1 @@ +e31688f886710f177cb42952d43a3803 \ No newline at end of file diff --git a/docs/generated/docs/class_p_s_t_i_sentence_parser__inherit__graph.png b/docs/generated/docs/class_p_s_t_i_sentence_parser__inherit__graph.png new file mode 100644 index 000000000..dfeb67511 Binary files /dev/null and b/docs/generated/docs/class_p_s_t_i_sentence_parser__inherit__graph.png differ diff --git a/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.map b/docs/generated/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.map similarity index 100% rename from docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.map rename to docs/generated/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.map diff --git a/docs/generated/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.md5 b/docs/generated/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.md5 new file mode 100644 index 000000000..539e5f53b --- /dev/null +++ b/docs/generated/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.md5 @@ -0,0 +1 @@ +6f6f47af42e2272c95d6e73733f648ea \ No newline at end of file diff --git a/docs/generated/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.png b/docs/generated/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.png new file mode 100644 index 000000000..a2fe4287f Binary files /dev/null and b/docs/generated/docs/class_p_s_t_i_sentence_parser_a94f6b75ee9ad9965c4a5cf27e44a12e5_cgraph.png differ diff --git a/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.map b/docs/generated/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.map similarity index 100% rename from docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.map rename to docs/generated/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.map diff --git a/docs/generated/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.md5 b/docs/generated/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.md5 new file mode 100644 index 000000000..66fe8997f --- /dev/null +++ b/docs/generated/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.md5 @@ -0,0 +1 @@ +1ce672064509cdefe40bbbd7742b32d7 \ No newline at end of file diff --git a/docs/generated/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.png b/docs/generated/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.png new file mode 100644 index 000000000..d95c7e794 Binary files /dev/null and b/docs/generated/docs/class_p_s_t_i_sentence_parser_add6764d7c0579101840b82a86f6bd2ef_icgraph.png differ diff --git a/docs/generated/docs/class_read9_d_o_f-members.html b/docs/generated/docs/class_read9_d_o_f-members.html new file mode 100644 index 000000000..bdf4a8c81 --- /dev/null +++ b/docs/generated/docs/class_read9_d_o_f-members.html @@ -0,0 +1,126 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Read9DOF Member List
+
+
+ +

This is the complete list of members for Read9DOF, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connect_to(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable() override finalRead9DOFvirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< float >inlinevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
orientation_9dofRead9DOF
outputValueProducer< float >protected
Read9DOF(Orientation9DOF *p9DOF, OrientationValType val_type=compass_hdg, uint read_delay=100, String config_path="")Read9DOF
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_priority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< float >inline
+
+ + + + diff --git a/docs/generated/docs/class_read9_d_o_f.html b/docs/generated/docs/class_read9_d_o_f.html new file mode 100644 index 000000000..453caa493 --- /dev/null +++ b/docs/generated/docs/class_read9_d_o_f.html @@ -0,0 +1,287 @@ + + + + + + + +SensESP: Read9DOF Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Read9DOF Class Reference
+
+
+ +

#include <orientation_9dof_input.h>

+
+Inheritance diagram for Read9DOF:
+
+
Inheritance graph
+ + + + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Read9DOF (Orientation9DOF *p9DOF, OrientationValType val_type=compass_hdg, uint read_delay=100, String config_path="")
 
void enable () override final
 
- Public Member Functions inherited from NumericSensor
 NumericSensor (String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connect_to (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connect_to (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
+ + + + + + +

+Public Attributes

Orientation9DOForientation_9dof
 
- Public Attributes inherited from Configurable
const String config_path
 
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
+

Detailed Description

+
+

Definition at line 49 of file orientation_9dof_input.h.

+

Constructor & Destructor Documentation

+ +

◆ Read9DOF()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Read9DOF::Read9DOF (Orientation9DOFp9DOF,
OrientationValType val_type = compass_hdg,
uint read_delay = 100,
String config_path = "" 
)
+
+ +

Definition at line 43 of file orientation_9dof_input.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+ + + + + +
+ + + + + + + +
void Read9DOF::enable ()
+
+finaloverridevirtual
+
+

Called during the initialization process. Override this method to add runtime initialization code to your class

+ +

Reimplemented from Enable.

+ +

Definition at line 55 of file orientation_9dof_input.cpp.

+ +
+
+

Member Data Documentation

+ +

◆ orientation_9dof

+ +
+
+ + + + +
Orientation9DOF* Read9DOF::orientation_9dof
+
+ +

Definition at line 54 of file orientation_9dof_input.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_read9_d_o_f.js b/docs/generated/docs/class_read9_d_o_f.js new file mode 100644 index 000000000..b835bf6c4 --- /dev/null +++ b/docs/generated/docs/class_read9_d_o_f.js @@ -0,0 +1,6 @@ +var class_read9_d_o_f = +[ + [ "Read9DOF", "class_read9_d_o_f.html#ae2faf1080765ed56709e63f4bfa58289", null ], + [ "enable", "class_read9_d_o_f.html#a3b193507742276276121243b8c280c72", null ], + [ "orientation_9dof", "class_read9_d_o_f.html#a15c1bf2b7dc82f06a72d259f0d804977", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_read9_d_o_f__inherit__graph.map b/docs/generated/docs/class_read9_d_o_f__inherit__graph.map new file mode 100644 index 000000000..7d20f6b4f --- /dev/null +++ b/docs/generated/docs/class_read9_d_o_f__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_read9_d_o_f__inherit__graph.md5 b/docs/generated/docs/class_read9_d_o_f__inherit__graph.md5 new file mode 100644 index 000000000..1afe899cb --- /dev/null +++ b/docs/generated/docs/class_read9_d_o_f__inherit__graph.md5 @@ -0,0 +1 @@ +ee008ca166ee75473ce2e0133765d2fb \ No newline at end of file diff --git a/docs/generated/docs/class_read9_d_o_f__inherit__graph.png b/docs/generated/docs/class_read9_d_o_f__inherit__graph.png new file mode 100644 index 000000000..2d683a648 Binary files /dev/null and b/docs/generated/docs/class_read9_d_o_f__inherit__graph.png differ diff --git a/docs/generated/docs/class_s_h_t31-members.html b/docs/generated/docs/class_s_h_t31-members.html new file mode 100644 index 000000000..fd78f14d8 --- /dev/null +++ b/docs/generated/docs/class_s_h_t31-members.html @@ -0,0 +1,121 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
SHT31 Member List
+
+
+ +

This is the complete list of members for SHT31, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
adafruit_sht31SHT31
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
SHT31(uint8_t addr=0x44, String config_path="")SHT31
+
+ + + + diff --git a/docs/generated/docs/class_s_h_t31.html b/docs/generated/docs/class_s_h_t31.html new file mode 100644 index 000000000..59710dbcc --- /dev/null +++ b/docs/generated/docs/class_s_h_t31.html @@ -0,0 +1,229 @@ + + + + + + + +SensESP: SHT31 Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <sht31.h>

+
+Inheritance diagram for SHT31:
+
+
Inheritance graph
+ + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SHT31 (uint8_t addr=0x44, String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
+ + + + + + +

+Public Attributes

Adafruit_SHT31 * adafruit_sht31
 
- Public Attributes inherited from Configurable
const String config_path
 
+ + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
+

Detailed Description

+
+

Definition at line 16 of file sht31.h.

+

Constructor & Destructor Documentation

+ +

◆ SHT31()

+ +
+
+ + + + + + + + + + + + + + + + + + +
SHT31::SHT31 (uint8_t addr = 0x44,
String config_path = "" 
)
+
+ +

Definition at line 9 of file sht31.cpp.

+ +
+
+

Member Data Documentation

+ +

◆ adafruit_sht31

+ +
+
+ + + + +
Adafruit_SHT31* SHT31::adafruit_sht31
+
+ +

Definition at line 19 of file sht31.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_s_h_t31.js b/docs/generated/docs/class_s_h_t31.js new file mode 100644 index 000000000..5afe7fb51 --- /dev/null +++ b/docs/generated/docs/class_s_h_t31.js @@ -0,0 +1,5 @@ +var class_s_h_t31 = +[ + [ "SHT31", "class_s_h_t31.html#a01363a697cf87524b3afdd62bd9c103f", null ], + [ "adafruit_sht31", "class_s_h_t31.html#ada57336159f2495b9a3ab318818e16aa", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_s_h_t31__inherit__graph.map b/docs/generated/docs/class_s_h_t31__inherit__graph.map new file mode 100644 index 000000000..8510e8cf1 --- /dev/null +++ b/docs/generated/docs/class_s_h_t31__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/class_s_h_t31__inherit__graph.md5 b/docs/generated/docs/class_s_h_t31__inherit__graph.md5 new file mode 100644 index 000000000..d4b5889b5 --- /dev/null +++ b/docs/generated/docs/class_s_h_t31__inherit__graph.md5 @@ -0,0 +1 @@ +66e685fadf55c63dfd2126348eb27dd9 \ No newline at end of file diff --git a/docs/generated/docs/class_s_h_t31__inherit__graph.png b/docs/generated/docs/class_s_h_t31__inherit__graph.png new file mode 100644 index 000000000..58f3d03c3 Binary files /dev/null and b/docs/generated/docs/class_s_h_t31__inherit__graph.png differ diff --git a/docs/generated/docs/class_s_h_t31_value-members.html b/docs/generated/docs/class_s_h_t31_value-members.html new file mode 100644 index 000000000..a49bf9551 --- /dev/null +++ b/docs/generated/docs/class_s_h_t31_value-members.html @@ -0,0 +1,126 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
SHT31Value Member List
+
+
+ +

This is the complete list of members for SHT31Value, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connect_to(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
enable() override finalSHT31Valuevirtual
Enable(uint8_t priority=0)Enable
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< float >inlinevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_priority(uint8_t priority)Enableinline
sht31SHT31Value
SHT31Value(SHT31 *sht31, SHT31ValType val_type, uint read_delay=500, String config_path="")SHT31Value
ValueProducer()ValueProducer< float >inline
+
+ + + + diff --git a/docs/generated/docs/class_s_h_t31_value.html b/docs/generated/docs/class_s_h_t31_value.html new file mode 100644 index 000000000..79e617a81 --- /dev/null +++ b/docs/generated/docs/class_s_h_t31_value.html @@ -0,0 +1,296 @@ + + + + + + + +SensESP: SHT31Value Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
SHT31Value Class Reference
+
+
+ +

#include <sht31.h>

+
+Inheritance diagram for SHT31Value:
+
+
Inheritance graph
+ + + + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SHT31Value (SHT31 *sht31, SHT31ValType val_type, uint read_delay=500, String config_path="")
 
void enable () override final
 
- Public Member Functions inherited from NumericSensor
 NumericSensor (String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connect_to (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connect_to (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
+ + + + + + +

+Public Attributes

SHT31sht31
 
- Public Attributes inherited from Configurable
const String config_path
 
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
+

Detailed Description

+
+

Definition at line 30 of file sht31.h.

+

Constructor & Destructor Documentation

+ +

◆ SHT31Value()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SHT31Value::SHT31Value (SHT31sht31,
SHT31ValType val_type,
uint read_delay = 500,
String config_path = "" 
)
+
+ +

Definition at line 19 of file sht31.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+ + + + + +
+ + + + + + + +
void SHT31Value::enable ()
+
+finaloverridevirtual
+
+

Called during the initialization process. Override this method to add runtime initialization code to your class

+ +

Reimplemented from Enable.

+ +

Definition at line 30 of file sht31.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+

Member Data Documentation

+ +

◆ sht31

+ +
+
+ + + + +
SHT31* SHT31Value::sht31
+
+ +

Definition at line 35 of file sht31.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_s_h_t31_value.js b/docs/generated/docs/class_s_h_t31_value.js new file mode 100644 index 000000000..ccfc0cadf --- /dev/null +++ b/docs/generated/docs/class_s_h_t31_value.js @@ -0,0 +1,6 @@ +var class_s_h_t31_value = +[ + [ "SHT31Value", "class_s_h_t31_value.html#a2407a923743f358ee2a566de926fa69f", null ], + [ "enable", "class_s_h_t31_value.html#a0104d033db3ee61af842bf4c320d0602", null ], + [ "sht31", "class_s_h_t31_value.html#af5cb2bc533abf1fb620473d581dab56a", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_s_h_t31_value__inherit__graph.map b/docs/generated/docs/class_s_h_t31_value__inherit__graph.map new file mode 100644 index 000000000..825704ea0 --- /dev/null +++ b/docs/generated/docs/class_s_h_t31_value__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_s_h_t31_value__inherit__graph.md5 b/docs/generated/docs/class_s_h_t31_value__inherit__graph.md5 new file mode 100644 index 000000000..a110a0284 --- /dev/null +++ b/docs/generated/docs/class_s_h_t31_value__inherit__graph.md5 @@ -0,0 +1 @@ +79fd44d031c368d9072b82302eb4f810 \ No newline at end of file diff --git a/docs/generated/docs/class_s_h_t31_value__inherit__graph.png b/docs/generated/docs/class_s_h_t31_value__inherit__graph.png new file mode 100644 index 000000000..3b9728777 Binary files /dev/null and b/docs/generated/docs/class_s_h_t31_value__inherit__graph.png differ diff --git a/docs/generated/docs/class_s_h_t31_value_a0104d033db3ee61af842bf4c320d0602_cgraph.map b/docs/generated/docs/class_s_h_t31_value_a0104d033db3ee61af842bf4c320d0602_cgraph.map new file mode 100644 index 000000000..7e3439802 --- /dev/null +++ b/docs/generated/docs/class_s_h_t31_value_a0104d033db3ee61af842bf4c320d0602_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_s_h_t31_value_a0104d033db3ee61af842bf4c320d0602_cgraph.md5 b/docs/generated/docs/class_s_h_t31_value_a0104d033db3ee61af842bf4c320d0602_cgraph.md5 new file mode 100644 index 000000000..6b39424b8 --- /dev/null +++ b/docs/generated/docs/class_s_h_t31_value_a0104d033db3ee61af842bf4c320d0602_cgraph.md5 @@ -0,0 +1 @@ +93f6c328d4ad211429bd4ca5faf164c0 \ No newline at end of file diff --git a/docs/generated/docs/class_s_h_t31_value_a0104d033db3ee61af842bf4c320d0602_cgraph.png b/docs/generated/docs/class_s_h_t31_value_a0104d033db3ee61af842bf4c320d0602_cgraph.png new file mode 100644 index 000000000..72d170975 Binary files /dev/null and b/docs/generated/docs/class_s_h_t31_value_a0104d033db3ee61af842bf4c320d0602_cgraph.png differ diff --git a/docs/class_s_k_delta-members.html b/docs/generated/docs/class_s_k_delta-members.html similarity index 91% rename from docs/class_s_k_delta-members.html rename to docs/generated/docs/class_s_k_delta-members.html index e00d9d9ee..50896ff3c 100644 --- a/docs/class_s_k_delta-members.html +++ b/docs/generated/docs/class_s_k_delta-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -104,9 +100,7 @@ diff --git a/docs/class_s_k_delta.html b/docs/generated/docs/class_s_k_delta.html similarity index 78% rename from docs/class_s_k_delta.html rename to docs/generated/docs/class_s_k_delta.html index 625b41fe7..ed98b34d0 100644 --- a/docs/class_s_k_delta.html +++ b/docs/generated/docs/class_s_k_delta.html @@ -3,7 +3,7 @@ - + SensESP: SKDelta Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -161,14 +157,15 @@

-

Definition at line 11 of file signalk_delta.cpp.

+

Definition at line 10 of file signalk_delta.cpp.

Here is the caller graph for this function:
-
- - - +
+ + + +
@@ -189,18 +186,7 @@

-

Definition at line 18 of file signalk_delta.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - - - -
+

Definition at line 17 of file signalk_delta.cpp.

@@ -220,18 +206,7 @@

-

Definition at line 22 of file signalk_delta.cpp.

-
-Here is the caller graph for this function:
-
-
- - - - - - -
+

Definition at line 19 of file signalk_delta.cpp.

@@ -263,10 +238,11 @@

Here is the caller graph for this function:
-
- - - +
+ + + +
@@ -282,9 +258,7 @@

    - +
diff --git a/docs/class_s_k_delta.js b/docs/generated/docs/class_s_k_delta.js similarity index 100% rename from docs/class_s_k_delta.js rename to docs/generated/docs/class_s_k_delta.js diff --git a/docs/generated/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.map b/docs/generated/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.map new file mode 100644 index 000000000..74d38f2d5 --- /dev/null +++ b/docs/generated/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.md5 b/docs/generated/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.md5 new file mode 100644 index 000000000..1629bf5b6 --- /dev/null +++ b/docs/generated/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.md5 @@ -0,0 +1 @@ +94ad323732f45d13e0f13117f31035f6 \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.png b/docs/generated/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.png new file mode 100644 index 000000000..3cb2c1b28 Binary files /dev/null and b/docs/generated/docs/class_s_k_delta_acd3c98ae0fe75f92d5d9c1e6a216a8dd_icgraph.png differ diff --git a/docs/generated/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.map b/docs/generated/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.map new file mode 100644 index 000000000..dabeeb5ad --- /dev/null +++ b/docs/generated/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.md5 b/docs/generated/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.md5 new file mode 100644 index 000000000..87c58e5b4 --- /dev/null +++ b/docs/generated/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.md5 @@ -0,0 +1 @@ +5ec014ea9185293ca5dec47c56064c83 \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.png b/docs/generated/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.png new file mode 100644 index 000000000..8d2023d84 Binary files /dev/null and b/docs/generated/docs/class_s_k_delta_afacfa3952be6179d0e96960575f393a8_icgraph.png differ diff --git a/docs/class_s_k_emitter-members.html b/docs/generated/docs/class_s_k_emitter-members.html similarity index 91% rename from docs/class_s_k_emitter-members.html rename to docs/generated/docs/class_s_k_emitter-members.html index ba639ccb4..63c0919ad 100644 --- a/docs/class_s_k_emitter-members.html +++ b/docs/generated/docs/class_s_k_emitter-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -94,7 +90,7 @@

This is the complete list of members for SKEmitter, including all inherited members.

- + @@ -107,9 +103,7 @@ diff --git a/docs/class_s_k_emitter.html b/docs/generated/docs/class_s_k_emitter.html similarity index 78% rename from docs/class_s_k_emitter.html rename to docs/generated/docs/class_s_k_emitter.html index 540c94ed1..5e15259c1 100644 --- a/docs/class_s_k_emitter.html +++ b/docs/generated/docs/class_s_k_emitter.html @@ -3,7 +3,7 @@ - +SensESP: SKEmitter Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
as_signalK()SKEmitterinlinevirtual
as_signalk()SKEmitterinlinevirtual
attach(std::function< void()> observer)Observable
get_sk_path()SKEmitterinline
get_sources()SKEmitterinlinestatic
- +
@@ -101,12 +97,12 @@
Inheritance diagram for SKEmitter:
-
Inheritance graph
- - - - - +
Inheritance graph
+ + + + +
[legend]
@@ -114,8 +110,8 @@ Public Member Functions - - + + @@ -137,7 +133,7 @@
 SKEmitter (String sk_path)
 
virtual String as_signalK ()
 
virtual String as_signalk ()
 
String & get_sk_path ()
 
void set_sk_path (const String &path)
 

Detailed Description

-

A SignalK emitter is one that produces SignalK output to be forwarded to the SignalK server (if the system is connected to one). SignalK is reported via the as_signalK() method.

+

A Signal K emitter is one that produces Signal K output to be forwarded to the Signal K server (if the system is connected to one). Signal K is reported via the as_signalK() method.

Definition at line 19 of file signalk_emitter.h.

Constructor & Destructor Documentation

@@ -158,7 +154,7 @@

The constructor

Parameters
- +
sk_pathThe SignalK path that identifies this particular output
sk_pathThe Signal K path that identifies this particular output
@@ -168,8 +164,8 @@

Member Function Documentation

- -

◆ as_signalK()

+ +

◆ as_signalk()

@@ -178,7 +174,7 @@

- + @@ -190,11 +186,11 @@

-

Returns the data to be reported to the server as a SignalK json string.

+

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

-

Reimplemented in SKOutput< T >, SKOutput< T >, SKOutputTime, and SKOutput< T >.

+

Reimplemented in SKOutputTime, SKOutput< T >, SKOutput< T >, and SKOutput< T >.

-

Definition at line 34 of file signalk_emitter.h.

+

Definition at line 32 of file signalk_emitter.h.

@@ -220,17 +216,17 @@

-

Returns the current SignalK path. An empty string is returned if this particular source is not configured or intended to return actual data.

+

Returns the current Signal K path. An empty string is returned if this particular source is not configured or intended to return actual data.

-

Definition at line 42 of file signalk_emitter.h.

+

Definition at line 39 of file signalk_emitter.h.

Here is the caller graph for this function:
-
- - - - +
+ + + +
@@ -259,14 +255,15 @@

-

Definition at line 50 of file signalk_emitter.h.

+

Definition at line 43 of file signalk_emitter.h.

Here is the caller graph for this function:
-
- - - +
+ + + +
@@ -296,14 +293,14 @@

-

Definition at line 46 of file signalk_emitter.h.

+

Definition at line 41 of file signalk_emitter.h.

Here is the caller graph for this function:
-
- - - +
+ + +
@@ -330,7 +327,7 @@

-

Definition at line 55 of file signalk_emitter.h.

+

Definition at line 46 of file signalk_emitter.h.

@@ -344,9 +341,7 @@

diff --git a/docs/class_s_k_emitter.js b/docs/generated/docs/class_s_k_emitter.js similarity index 81% rename from docs/class_s_k_emitter.js rename to docs/generated/docs/class_s_k_emitter.js index 579015e73..57d2ab45b 100644 --- a/docs/class_s_k_emitter.js +++ b/docs/generated/docs/class_s_k_emitter.js @@ -1,7 +1,7 @@ var class_s_k_emitter = [ [ "SKEmitter", "class_s_k_emitter.html#aeba0ccd27a8b6bad1e2ddbf2603a5d8d", null ], - [ "as_signalK", "class_s_k_emitter.html#aa08f537c7d7b1782fea4d381a65cf521", null ], + [ "as_signalk", "class_s_k_emitter.html#ab25ae819460f8a07fee381cc06332f95", null ], [ "get_sk_path", "class_s_k_emitter.html#ab619d4a66c7683bf06350809e8c2153f", null ], [ "set_sk_path", "class_s_k_emitter.html#a670348fb1ef1bf3d5e1ba49660fc15d9", null ], [ "sk_path", "class_s_k_emitter.html#a06dbe70e930074437b12b86ac4e2464c", null ] diff --git a/docs/class_s_k_emitter__inherit__graph.map b/docs/generated/docs/class_s_k_emitter__inherit__graph.map similarity index 100% rename from docs/class_s_k_emitter__inherit__graph.map rename to docs/generated/docs/class_s_k_emitter__inherit__graph.map diff --git a/docs/generated/docs/class_s_k_emitter__inherit__graph.md5 b/docs/generated/docs/class_s_k_emitter__inherit__graph.md5 new file mode 100644 index 000000000..6c120e0fc --- /dev/null +++ b/docs/generated/docs/class_s_k_emitter__inherit__graph.md5 @@ -0,0 +1 @@ +c9bc386c41439b271533efba335b2652 \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_emitter__inherit__graph.png b/docs/generated/docs/class_s_k_emitter__inherit__graph.png new file mode 100644 index 000000000..c0386013e Binary files /dev/null and b/docs/generated/docs/class_s_k_emitter__inherit__graph.png differ diff --git a/docs/generated/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.map b/docs/generated/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.map new file mode 100644 index 000000000..9ef191ad0 --- /dev/null +++ b/docs/generated/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.md5 b/docs/generated/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.md5 new file mode 100644 index 000000000..7081ae38b --- /dev/null +++ b/docs/generated/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.md5 @@ -0,0 +1 @@ +7125852727f9b775c167acaa10f9e1b2 \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.png b/docs/generated/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.png new file mode 100644 index 000000000..02d6701c3 Binary files /dev/null and b/docs/generated/docs/class_s_k_emitter_a14e45e259c78d1e4ab7bdcce94fc8b02_icgraph.png differ diff --git a/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.map b/docs/generated/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.map similarity index 100% rename from docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.map rename to docs/generated/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.map diff --git a/docs/generated/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.md5 b/docs/generated/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.md5 new file mode 100644 index 000000000..628bad2cc --- /dev/null +++ b/docs/generated/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.md5 @@ -0,0 +1 @@ +e56483ad2ba60fef40e4e93b7df2ef8d \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.png b/docs/generated/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.png new file mode 100644 index 000000000..1e412d839 Binary files /dev/null and b/docs/generated/docs/class_s_k_emitter_a670348fb1ef1bf3d5e1ba49660fc15d9_icgraph.png differ diff --git a/docs/generated/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.map b/docs/generated/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.map new file mode 100644 index 000000000..84f96f5a3 --- /dev/null +++ b/docs/generated/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.md5 b/docs/generated/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.md5 new file mode 100644 index 000000000..7b85b5296 --- /dev/null +++ b/docs/generated/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.md5 @@ -0,0 +1 @@ +cb7db27195a25928c662f98d640a5f19 \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.png b/docs/generated/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.png new file mode 100644 index 000000000..48ecda477 Binary files /dev/null and b/docs/generated/docs/class_s_k_emitter_ab619d4a66c7683bf06350809e8c2153f_icgraph.png differ diff --git a/docs/generated/docs/class_s_k_listener-members.html b/docs/generated/docs/class_s_k_listener-members.html new file mode 100644 index 000000000..f028f3a8d --- /dev/null +++ b/docs/generated/docs/class_s_k_listener-members.html @@ -0,0 +1,110 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+

virtual String SKEmitter::as_signalK virtual String SKEmitter::as_signalk ( )
+ + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+

+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
SKListener Member List
+
+
+ +

This is the complete list of members for SKListener, including all inherited members.

+ + + + + + + + + +
attach(std::function< void()> observer)Observable
get_listen_delay()SKListenerinline
get_listeners()SKListenerinlinestatic
get_sk_path()SKListenerinline
notify()Observable
parse_value(JsonObject &json)SKListenerinlinevirtual
sk_pathSKListenerprotected
SKListener(String sk_path, int listen_delay)SKListener
+
+ + + + diff --git a/docs/generated/docs/class_s_k_listener.html b/docs/generated/docs/class_s_k_listener.html new file mode 100644 index 000000000..b9bc3bb4b --- /dev/null +++ b/docs/generated/docs/class_s_k_listener.html @@ -0,0 +1,358 @@ + + + + + + + +SensESP: SKListener Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <signalk_listener.h>

+
+Inheritance diagram for SKListener:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + +

+Public Member Functions

 SKListener (String sk_path, int listen_delay)
 
String & get_sk_path ()
 
int get_listen_delay ()
 
virtual void parse_value (JsonObject &json)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
+ + + +

+Static Public Member Functions

static const std::vector< SKListener * > & get_listeners ()
 
+ + + +

+Protected Attributes

String sk_path
 
+

Detailed Description

+

A Signal K listener is one that listens for Signal K stream deltas and notifies of value changes

+ +

Definition at line 18 of file signalk_listener.h.

+

Constructor & Destructor Documentation

+ +

◆ SKListener()

+ +
+
+ + + + + + + + + + + + + + + + + + +
SKListener::SKListener (String sk_path,
int listen_delay 
)
+
+

The constructor

Parameters
+ + + +
sk_pathThe Signal K path that identifies this particular subscription to value
listen_delayHow often you want the SK Server to send the data you're subscribing to
+
+
+ +

Definition at line 5 of file signalk_listener.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ get_listen_delay()

+ +
+
+ + + + + +
+ + + + + + + +
int SKListener::get_listen_delay ()
+
+inline
+
+ +

Definition at line 36 of file signalk_listener.h.

+ +
+
+ +

◆ get_listeners()

+ +
+
+ + + + + +
+ + + + + + + +
static const std::vector<SKListener*>& SKListener::get_listeners ()
+
+inlinestatic
+
+ +

Definition at line 40 of file signalk_listener.h.

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ get_sk_path()

+ +
+
+ + + + + +
+ + + + + + + +
String& SKListener::get_sk_path ()
+
+inline
+
+

Returns the current Signal K path. An empty string is returned if this particular source is not configured or intended to return actual data.

+ +

Definition at line 34 of file signalk_listener.h.

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ parse_value()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void SKListener::parse_value (JsonObject & json)
+
+inlinevirtual
+
+ +

Reimplemented in SKValueListener< T >.

+ +

Definition at line 38 of file signalk_listener.h.

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+

Member Data Documentation

+ +

◆ sk_path

+ +
+
+ + + + + +
+ + + + +
String SKListener::sk_path
+
+protected
+
+ +

Definition at line 43 of file signalk_listener.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_s_k_listener.js b/docs/generated/docs/class_s_k_listener.js new file mode 100644 index 000000000..fb89bd36a --- /dev/null +++ b/docs/generated/docs/class_s_k_listener.js @@ -0,0 +1,8 @@ +var class_s_k_listener = +[ + [ "SKListener", "class_s_k_listener.html#ad72197ab8a7a24d83152df74477527b1", null ], + [ "get_listen_delay", "class_s_k_listener.html#ad0b2ccb89c8551552b293b337d1ecdf8", null ], + [ "get_sk_path", "class_s_k_listener.html#acd3c93850871a4ef30d01e3ed08c3fe1", null ], + [ "parse_value", "class_s_k_listener.html#a68a944ab34d3179f0bd0fab320d47a59", null ], + [ "sk_path", "class_s_k_listener.html#aea949b68b41530f13cf565a0398880f5", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_listener__inherit__graph.map b/docs/generated/docs/class_s_k_listener__inherit__graph.map new file mode 100644 index 000000000..b9c39931b --- /dev/null +++ b/docs/generated/docs/class_s_k_listener__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_s_k_listener__inherit__graph.md5 b/docs/generated/docs/class_s_k_listener__inherit__graph.md5 new file mode 100644 index 000000000..6d8e5d0ff --- /dev/null +++ b/docs/generated/docs/class_s_k_listener__inherit__graph.md5 @@ -0,0 +1 @@ +f55e2474b14f63df1826675953d6b88f \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_listener__inherit__graph.png b/docs/generated/docs/class_s_k_listener__inherit__graph.png new file mode 100644 index 000000000..5bd59f9b1 Binary files /dev/null and b/docs/generated/docs/class_s_k_listener__inherit__graph.png differ diff --git a/docs/generated/docs/class_s_k_listener_a68a944ab34d3179f0bd0fab320d47a59_icgraph.map b/docs/generated/docs/class_s_k_listener_a68a944ab34d3179f0bd0fab320d47a59_icgraph.map new file mode 100644 index 000000000..c009bec80 --- /dev/null +++ b/docs/generated/docs/class_s_k_listener_a68a944ab34d3179f0bd0fab320d47a59_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_s_k_listener_a68a944ab34d3179f0bd0fab320d47a59_icgraph.md5 b/docs/generated/docs/class_s_k_listener_a68a944ab34d3179f0bd0fab320d47a59_icgraph.md5 new file mode 100644 index 000000000..219c111e7 --- /dev/null +++ b/docs/generated/docs/class_s_k_listener_a68a944ab34d3179f0bd0fab320d47a59_icgraph.md5 @@ -0,0 +1 @@ +2ac1b82c78b7c6d7e29aae2574219c6b \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_listener_a68a944ab34d3179f0bd0fab320d47a59_icgraph.png b/docs/generated/docs/class_s_k_listener_a68a944ab34d3179f0bd0fab320d47a59_icgraph.png new file mode 100644 index 000000000..1551d306b Binary files /dev/null and b/docs/generated/docs/class_s_k_listener_a68a944ab34d3179f0bd0fab320d47a59_icgraph.png differ diff --git a/docs/generated/docs/class_s_k_listener_acd3c93850871a4ef30d01e3ed08c3fe1_icgraph.map b/docs/generated/docs/class_s_k_listener_acd3c93850871a4ef30d01e3ed08c3fe1_icgraph.map new file mode 100644 index 000000000..dffa8c00b --- /dev/null +++ b/docs/generated/docs/class_s_k_listener_acd3c93850871a4ef30d01e3ed08c3fe1_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_s_k_listener_acd3c93850871a4ef30d01e3ed08c3fe1_icgraph.md5 b/docs/generated/docs/class_s_k_listener_acd3c93850871a4ef30d01e3ed08c3fe1_icgraph.md5 new file mode 100644 index 000000000..9f36e8649 --- /dev/null +++ b/docs/generated/docs/class_s_k_listener_acd3c93850871a4ef30d01e3ed08c3fe1_icgraph.md5 @@ -0,0 +1 @@ +7f8362a5ea6d7452e83b3faa0ae2a07d \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_listener_acd3c93850871a4ef30d01e3ed08c3fe1_icgraph.png b/docs/generated/docs/class_s_k_listener_acd3c93850871a4ef30d01e3ed08c3fe1_icgraph.png new file mode 100644 index 000000000..abf1e69b2 Binary files /dev/null and b/docs/generated/docs/class_s_k_listener_acd3c93850871a4ef30d01e3ed08c3fe1_icgraph.png differ diff --git a/docs/generated/docs/class_s_k_listener_af415adffba7b9ea5b4a379c5344553c3_icgraph.map b/docs/generated/docs/class_s_k_listener_af415adffba7b9ea5b4a379c5344553c3_icgraph.map new file mode 100644 index 000000000..05f13ce79 --- /dev/null +++ b/docs/generated/docs/class_s_k_listener_af415adffba7b9ea5b4a379c5344553c3_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_s_k_listener_af415adffba7b9ea5b4a379c5344553c3_icgraph.md5 b/docs/generated/docs/class_s_k_listener_af415adffba7b9ea5b4a379c5344553c3_icgraph.md5 new file mode 100644 index 000000000..b83e71bb7 --- /dev/null +++ b/docs/generated/docs/class_s_k_listener_af415adffba7b9ea5b4a379c5344553c3_icgraph.md5 @@ -0,0 +1 @@ +02467d7ddf88847cc52ba35471b4af9a \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_listener_af415adffba7b9ea5b4a379c5344553c3_icgraph.png b/docs/generated/docs/class_s_k_listener_af415adffba7b9ea5b4a379c5344553c3_icgraph.png new file mode 100644 index 000000000..070e29348 Binary files /dev/null and b/docs/generated/docs/class_s_k_listener_af415adffba7b9ea5b4a379c5344553c3_icgraph.png differ diff --git a/docs/generated/docs/class_s_k_output-members.html b/docs/generated/docs/class_s_k_output-members.html new file mode 100644 index 000000000..ed8b0385f --- /dev/null +++ b/docs/generated/docs/class_s_k_output-members.html @@ -0,0 +1,121 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
SKOutput< T > Member List
+
+
+ +

This is the complete list of members for SKOutput< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
as_signalk() overrideSKOutput< T >inlinevirtual
as_signalk()SKOutput< T >virtual
as_signalk()SKOutput< T >virtual
attach(std::function< void()> observer)Observable
connectFrom(ValueProducer< T > *producer0, ValueProducer< T > *producer1=NULL, ValueProducer< T > *producer2=NULL, ValueProducer< T > *producer3=NULL, ValueProducer< T > *producer4=NULL)Transform< T, T >inline
get_config_schema() overrideSKOutput< T >inline
get_configuration(JsonObject &root) overrideSKOutput< T >inlinevirtual
get_sk_path()SKEmitterinline
get_sources()SKEmitterinlinestatic
notify()Observable
set_configuration(const JsonObject &config) overrideSKOutput< T >inlinevirtual
set_input(T new_value, uint8_t input_channel=0) overrideSKOutput< T >inlinevirtual
set_sk_path(const String &path)SKEmitterinline
sk_pathSKEmitterprotected
SKEmitter(String sk_path)SKEmitter
SKOutput()SKOutput< T >inline
SKOutput(String sk_path, String config_path="")SKOutput< T >inline
SymmetricTransform(String config_path="")SymmetricTransform< T >inline
Transform(String config_path="")Transform< T, T >inline
+
+ + + + diff --git a/docs/generated/docs/class_s_k_output.html b/docs/generated/docs/class_s_k_output.html new file mode 100644 index 000000000..7e1b2ea10 --- /dev/null +++ b/docs/generated/docs/class_s_k_output.html @@ -0,0 +1,512 @@ + + + + + + + +SensESP: SKOutput< T > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
SKOutput< T > Class Template Reference
+
+
+ +

#include <signalk_output.h>

+
+Inheritance diagram for SKOutput< T >:
+
+
Inheritance graph
+ + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SKOutput ()
 
 SKOutput (String sk_path, String config_path="")
 
virtual void set_input (T new_value, uint8_t input_channel=0) override
 
virtual String as_signalk () override
 
virtual void get_configuration (JsonObject &root) override
 
String get_config_schema () override
 
virtual bool set_configuration (const JsonObject &config) override
 
String as_signalk ()
 
String as_signalk ()
 
- Public Member Functions inherited from SKEmitter
 SKEmitter (String sk_path)
 
String & get_sk_path ()
 
void set_sk_path (const String &path)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from SymmetricTransform< T >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< T, T >
 Transform (String config_path="")
 
Transform< T, T > * connectFrom (ValueProducer< T > *producer0, ValueProducer< T > *producer1=NULL, ValueProducer< T > *producer2=NULL, ValueProducer< T > *producer3=NULL, ValueProducer< T > *producer4=NULL)
 
+ + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from SKEmitter
static const std::vector< SKEmitter * > & get_sources ()
 
- Protected Attributes inherited from SKEmitter
String sk_path
 
+

Detailed Description

+

template<typename T>
+class SKOutput< T >

+ + +

Definition at line 17 of file signalk_output.h.

+

Constructor & Destructor Documentation

+ +

◆ SKOutput() [1/2]

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

Definition at line 19 of file signalk_output.h.

+ +
+
+ +

◆ SKOutput() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
SKOutput< T >::SKOutput (String sk_path,
String config_path = "" 
)
+
+inline
+
+ +

Definition at line 21 of file signalk_output.h.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+

Member Function Documentation

+ +

◆ as_signalk() [1/3]

+ +
+
+ + + + + +
+ + + + + + + +
String SKOutput< Position >::as_signalk ()
+
+virtual
+
+

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

+ +

Reimplemented from SKEmitter.

+ +

Definition at line 5 of file signalk_position.cpp.

+ +
+
+ +

◆ as_signalk() [2/3]

+ +
+
+ + + + + +
+ + + + + + + +
String SKOutput< Position >::as_signalk ()
+
+virtual
+
+

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

+ +

Reimplemented from SKEmitter.

+ +
+
+ +

◆ as_signalk() [3/3]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
virtual String SKOutput< T >::as_signalk ()
+
+inlineoverridevirtual
+
+

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

+ +

Reimplemented from SKEmitter.

+ +

Definition at line 31 of file signalk_output.h.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ get_config_schema()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
String SKOutput< T >::get_config_schema ()
+
+inlineoverride
+
+ +

Definition at line 44 of file signalk_output.h.

+ +
+
+ +

◆ get_configuration()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
virtual void SKOutput< T >::get_configuration (JsonObject & root)
+
+inlineoverridevirtual
+
+ +

Definition at line 40 of file signalk_output.h.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ set_configuration()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
virtual bool SKOutput< T >::set_configuration (const JsonObject & config)
+
+inlineoverridevirtual
+
+ +

Definition at line 46 of file signalk_output.h.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ set_input()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void SKOutput< T >::set_input (new_value,
uint8_t input_channel = 0 
)
+
+inlineoverridevirtual
+
+ +

Definition at line 26 of file signalk_output.h.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/generated/docs/class_s_k_output.js b/docs/generated/docs/class_s_k_output.js new file mode 100644 index 000000000..6911d2120 --- /dev/null +++ b/docs/generated/docs/class_s_k_output.js @@ -0,0 +1,12 @@ +var class_s_k_output = +[ + [ "SKOutput", "class_s_k_output.html#a88f9638dd4779818b41a62738ba44876", null ], + [ "SKOutput", "class_s_k_output.html#a811a99c30626b6840000b0c152aa1f37", null ], + [ "as_signalk", "class_s_k_output.html#a1cfe49843fc8745ffefa59d36df67bb4", null ], + [ "as_signalk", "class_s_k_output.html#a1cfe49843fc8745ffefa59d36df67bb4", null ], + [ "as_signalk", "class_s_k_output.html#a638cad044b186372707c776fcd9a69bd", null ], + [ "get_config_schema", "class_s_k_output.html#a0f29018517bcb51943dae1dd7bbace0a", null ], + [ "get_configuration", "class_s_k_output.html#a9151c5f1c00b08a5b68dcb2ec7a2ed45", null ], + [ "set_configuration", "class_s_k_output.html#a406e7e56220dd41bd567c56c0e6b9a4d", null ], + [ "set_input", "class_s_k_output.html#a58191f013e06068ca13ca85365fd0957", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_output__inherit__graph.map b/docs/generated/docs/class_s_k_output__inherit__graph.map new file mode 100644 index 000000000..a6a18952d --- /dev/null +++ b/docs/generated/docs/class_s_k_output__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/class_s_k_output__inherit__graph.md5 b/docs/generated/docs/class_s_k_output__inherit__graph.md5 new file mode 100644 index 000000000..1e13edb22 --- /dev/null +++ b/docs/generated/docs/class_s_k_output__inherit__graph.md5 @@ -0,0 +1 @@ +5f49a381530a2a38c5994b65af2c5dc2 \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_output__inherit__graph.png b/docs/generated/docs/class_s_k_output__inherit__graph.png new file mode 100644 index 000000000..30ef4a000 Binary files /dev/null and b/docs/generated/docs/class_s_k_output__inherit__graph.png differ diff --git a/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.map b/docs/generated/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.map similarity index 100% rename from docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.map rename to docs/generated/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.map diff --git a/docs/generated/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.md5 b/docs/generated/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.md5 new file mode 100644 index 000000000..ffe73cf9a --- /dev/null +++ b/docs/generated/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.md5 @@ -0,0 +1 @@ +02582a056f8cd5eac18cf88dafd9c22e \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.png b/docs/generated/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.png new file mode 100644 index 000000000..a92ed7f57 Binary files /dev/null and b/docs/generated/docs/class_s_k_output_a406e7e56220dd41bd567c56c0e6b9a4d_cgraph.png differ diff --git a/docs/class_s_k_output_a43d76eef72e8dad90ee13a001c265be8_cgraph.map b/docs/generated/docs/class_s_k_output_a58191f013e06068ca13ca85365fd0957_cgraph.map similarity index 100% rename from docs/class_s_k_output_a43d76eef72e8dad90ee13a001c265be8_cgraph.map rename to docs/generated/docs/class_s_k_output_a58191f013e06068ca13ca85365fd0957_cgraph.map diff --git a/docs/generated/docs/class_s_k_output_a58191f013e06068ca13ca85365fd0957_cgraph.md5 b/docs/generated/docs/class_s_k_output_a58191f013e06068ca13ca85365fd0957_cgraph.md5 new file mode 100644 index 000000000..3bb7c7b33 --- /dev/null +++ b/docs/generated/docs/class_s_k_output_a58191f013e06068ca13ca85365fd0957_cgraph.md5 @@ -0,0 +1 @@ +ca32071bd51a7ba1fa962597efb6cdea \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_output_a58191f013e06068ca13ca85365fd0957_cgraph.png b/docs/generated/docs/class_s_k_output_a58191f013e06068ca13ca85365fd0957_cgraph.png new file mode 100644 index 000000000..c2491e1dd Binary files /dev/null and b/docs/generated/docs/class_s_k_output_a58191f013e06068ca13ca85365fd0957_cgraph.png differ diff --git a/docs/generated/docs/class_s_k_output_a638cad044b186372707c776fcd9a69bd_cgraph.map b/docs/generated/docs/class_s_k_output_a638cad044b186372707c776fcd9a69bd_cgraph.map new file mode 100644 index 000000000..4768a4d28 --- /dev/null +++ b/docs/generated/docs/class_s_k_output_a638cad044b186372707c776fcd9a69bd_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_s_k_output_a638cad044b186372707c776fcd9a69bd_cgraph.md5 b/docs/generated/docs/class_s_k_output_a638cad044b186372707c776fcd9a69bd_cgraph.md5 new file mode 100644 index 000000000..6b71b1fd5 --- /dev/null +++ b/docs/generated/docs/class_s_k_output_a638cad044b186372707c776fcd9a69bd_cgraph.md5 @@ -0,0 +1 @@ +dfa3eada5dfb5eb342ec5e0050ac3dab \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_output_a638cad044b186372707c776fcd9a69bd_cgraph.png b/docs/generated/docs/class_s_k_output_a638cad044b186372707c776fcd9a69bd_cgraph.png new file mode 100644 index 000000000..b1cf706ca Binary files /dev/null and b/docs/generated/docs/class_s_k_output_a638cad044b186372707c776fcd9a69bd_cgraph.png differ diff --git a/docs/generated/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.map b/docs/generated/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.map new file mode 100644 index 000000000..154beb6a9 --- /dev/null +++ b/docs/generated/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.md5 b/docs/generated/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.md5 new file mode 100644 index 000000000..1c6ebf1bc --- /dev/null +++ b/docs/generated/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.md5 @@ -0,0 +1 @@ +6347a575f79162fe51fc4b6a0440cc72 \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.png b/docs/generated/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.png new file mode 100644 index 000000000..f28481ec9 Binary files /dev/null and b/docs/generated/docs/class_s_k_output_a811a99c30626b6840000b0c152aa1f37_cgraph.png differ diff --git a/docs/class_s_k_output_a1020f0eb3e0eb6bc10f57034c7fbc0c6_cgraph.map b/docs/generated/docs/class_s_k_output_a9151c5f1c00b08a5b68dcb2ec7a2ed45_cgraph.map similarity index 100% rename from docs/class_s_k_output_a1020f0eb3e0eb6bc10f57034c7fbc0c6_cgraph.map rename to docs/generated/docs/class_s_k_output_a9151c5f1c00b08a5b68dcb2ec7a2ed45_cgraph.map diff --git a/docs/generated/docs/class_s_k_output_a9151c5f1c00b08a5b68dcb2ec7a2ed45_cgraph.md5 b/docs/generated/docs/class_s_k_output_a9151c5f1c00b08a5b68dcb2ec7a2ed45_cgraph.md5 new file mode 100644 index 000000000..eab06aed9 --- /dev/null +++ b/docs/generated/docs/class_s_k_output_a9151c5f1c00b08a5b68dcb2ec7a2ed45_cgraph.md5 @@ -0,0 +1 @@ +ab0ec3a0f3514a5a59b1f4ddd50713ae \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_output_a9151c5f1c00b08a5b68dcb2ec7a2ed45_cgraph.png b/docs/generated/docs/class_s_k_output_a9151c5f1c00b08a5b68dcb2ec7a2ed45_cgraph.png new file mode 100644 index 000000000..f58cb5a74 Binary files /dev/null and b/docs/generated/docs/class_s_k_output_a9151c5f1c00b08a5b68dcb2ec7a2ed45_cgraph.png differ diff --git a/docs/generated/docs/class_s_k_output_time-members.html b/docs/generated/docs/class_s_k_output_time-members.html new file mode 100644 index 000000000..b5be5d4bd --- /dev/null +++ b/docs/generated/docs/class_s_k_output_time-members.html @@ -0,0 +1,118 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
SKOutputTime Member List
+
+
+ +

This is the complete list of members for SKOutputTime, including all inherited members.

+ + + + + + + + + + + + + + + + + +
as_signalk() overrideSKOutputTimevirtual
attach(std::function< void()> observer)Observable
connectFrom(ValueProducer< String > *producer0, ValueProducer< String > *producer1=NULL, ValueProducer< String > *producer2=NULL, ValueProducer< String > *producer3=NULL, ValueProducer< String > *producer4=NULL)Transform< time_t, String >inline
get_config_schema() overrideSKOutputTimevirtual
get_configuration(JsonObject &doc) overrideSKOutputTimevirtual
get_sk_path()SKEmitterinline
get_sources()SKEmitterinlinestatic
notify()Observable
set_configuration(const JsonObject &config) overrideSKOutputTimevirtual
set_input(time_t input, uint8_t input_channel=0) overrideTimeStringvirtual
set_sk_path(const String &path)SKEmitterinline
sk_pathSKEmitterprotected
SKEmitter(String sk_path)SKEmitter
SKOutputTime(String sk_path, String config_path="")SKOutputTime
TimeString(String config_path="")TimeString
Transform(String config_path="")Transform< time_t, String >inline
+
+ + + + diff --git a/docs/generated/docs/class_s_k_output_time.html b/docs/generated/docs/class_s_k_output_time.html new file mode 100644 index 000000000..cca47e6ff --- /dev/null +++ b/docs/generated/docs/class_s_k_output_time.html @@ -0,0 +1,314 @@ + + + + + + + +SensESP: SKOutputTime Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
SKOutputTime Class Reference
+
+
+ +

#include <signalk_time.h>

+
+Inheritance diagram for SKOutputTime:
+
+
Inheritance graph
+ + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SKOutputTime (String sk_path, String config_path="")
 
virtual String as_signalk () override
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from TimeString
 TimeString (String config_path="")
 
virtual void set_input (time_t input, uint8_t input_channel=0) override
 
- Public Member Functions inherited from Transform< time_t, String >
 Transform (String config_path="")
 
Transform< time_t, String > * connectFrom (ValueProducer< String > *producer0, ValueProducer< String > *producer1=NULL, ValueProducer< String > *producer2=NULL, ValueProducer< String > *producer3=NULL, ValueProducer< String > *producer4=NULL)
 
- Public Member Functions inherited from SKEmitter
 SKEmitter (String sk_path)
 
String & get_sk_path ()
 
void set_sk_path (const String &path)
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
+ + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from SKEmitter
static const std::vector< SKEmitter * > & get_sources ()
 
- Protected Attributes inherited from SKEmitter
String sk_path
 
+

Detailed Description

+
+

Definition at line 7 of file signalk_time.h.

+

Constructor & Destructor Documentation

+ +

◆ SKOutputTime()

+ +
+
+ + + + + + + + + + + + + + + + + + +
SKOutputTime::SKOutputTime (String sk_path,
String config_path = "" 
)
+
+ +

Definition at line 4 of file signalk_time.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ as_signalk()

+ +
+
+ + + + + +
+ + + + + + + +
String SKOutputTime::as_signalk ()
+
+overridevirtual
+
+

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

+ +

Reimplemented from SKEmitter.

+ +

Definition at line 9 of file signalk_time.cpp.

+ +
+
+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String SKOutputTime::get_config_schema ()
+
+overridevirtual
+
+ +

Definition at line 32 of file signalk_time.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void SKOutputTime::get_configuration (JsonObject & doc)
+
+overridevirtual
+
+ +

Definition at line 19 of file signalk_time.cpp.

+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool SKOutputTime::set_configuration (const JsonObject & config)
+
+overridevirtual
+
+ +

Definition at line 34 of file signalk_time.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_s_k_output_time.js b/docs/generated/docs/class_s_k_output_time.js new file mode 100644 index 000000000..52333194c --- /dev/null +++ b/docs/generated/docs/class_s_k_output_time.js @@ -0,0 +1,8 @@ +var class_s_k_output_time = +[ + [ "SKOutputTime", "class_s_k_output_time.html#ab77e9bdfeb69fd37c6fc87ac247146e4", null ], + [ "as_signalk", "class_s_k_output_time.html#aaf792b14c69ced31c6a3c2bd0d1a32e4", null ], + [ "get_config_schema", "class_s_k_output_time.html#aa283f508ef59103626c835cd37b9bfb3", null ], + [ "get_configuration", "class_s_k_output_time.html#a90ec92a794a311e97b0d89c2941de921", null ], + [ "set_configuration", "class_s_k_output_time.html#a41ad61c700a444916873e908612eca63", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_output_time__inherit__graph.map b/docs/generated/docs/class_s_k_output_time__inherit__graph.map new file mode 100644 index 000000000..4a74d7831 --- /dev/null +++ b/docs/generated/docs/class_s_k_output_time__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/class_s_k_output_time__inherit__graph.md5 b/docs/generated/docs/class_s_k_output_time__inherit__graph.md5 new file mode 100644 index 000000000..e66c6630e --- /dev/null +++ b/docs/generated/docs/class_s_k_output_time__inherit__graph.md5 @@ -0,0 +1 @@ +003236a4bf3bb69c3f9cd86b7616201d \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_output_time__inherit__graph.png b/docs/generated/docs/class_s_k_output_time__inherit__graph.png new file mode 100644 index 000000000..7e126c75f Binary files /dev/null and b/docs/generated/docs/class_s_k_output_time__inherit__graph.png differ diff --git a/docs/generated/docs/class_s_k_value_listener-members.html b/docs/generated/docs/class_s_k_value_listener-members.html new file mode 100644 index 000000000..2b6a929b2 --- /dev/null +++ b/docs/generated/docs/class_s_k_value_listener-members.html @@ -0,0 +1,118 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
SKValueListener< T > Member List
+
+
+ +

This is the complete list of members for SKValueListener< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
connect_to(ValueConsumer< T > *consumer, uint8_t input_channel=0)ValueProducer< T >inline
connect_to(Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< T >inline
connectTo(ValueConsumer< T > *consumer, uint8_t input_channel=0)ValueProducer< T >inline
connectTo(Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< T >inline
get()ValueProducer< T >inlinevirtual
get_listen_delay()SKListenerinline
get_listeners()SKListenerinlinestatic
get_sk_path()SKListenerinline
notify()Observable
outputValueProducer< T >protected
parse_value(JsonObject &json) overrideSKValueListener< T >inlinevirtual
sk_pathSKListenerprotected
SKListener(String sk_path, int listen_delay)SKListener
SKValueListener(String sk_path, int listen_delay=1000)SKValueListener< T >inline
ValueProducer()ValueProducer< T >inline
+
+ + + + diff --git a/docs/generated/docs/class_s_k_value_listener.html b/docs/generated/docs/class_s_k_value_listener.html new file mode 100644 index 000000000..cc011e14e --- /dev/null +++ b/docs/generated/docs/class_s_k_value_listener.html @@ -0,0 +1,255 @@ + + + + + + + +SensESP: SKValueListener< T > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
SKValueListener< T > Class Template Reference
+
+
+ +

#include <signalk_value_listener.h>

+
+Inheritance diagram for SKValueListener< T >:
+
+
Inheritance graph
+ + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SKValueListener (String sk_path, int listen_delay=1000)
 
void parse_value (JsonObject &json) override
 
- Public Member Functions inherited from SKListener
 SKListener (String sk_path, int listen_delay)
 
String & get_sk_path ()
 
int get_listen_delay ()
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from ValueProducer< T >
 ValueProducer ()
 
virtual const T & get ()
 
void connect_to (ValueConsumer< T > *consumer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< T > *consumer, uint8_t input_channel=0)
 
template<typename T2 >
Transform< T, T2 > * connect_to (Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)
 
template<typename T2 >
Transform< T, T2 > * connectTo (Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)
 
+ + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from SKListener
static const std::vector< SKListener * > & get_listeners ()
 
- Protected Attributes inherited from SKListener
String sk_path
 
- Protected Attributes inherited from ValueProducer< T >
output
 
+

Detailed Description

+

template<class T>
+class SKValueListener< T >

+ + +

Definition at line 14 of file signalk_value_listener.h.

+

Constructor & Destructor Documentation

+ +

◆ SKValueListener()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
SKValueListener< T >::SKValueListener (String sk_path,
int listen_delay = 1000 
)
+
+inline
+
+ +

Definition at line 16 of file signalk_value_listener.h.

+ +
+
+

Member Function Documentation

+ +

◆ parse_value()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + +
void SKValueListener< T >::parse_value (JsonObject & json)
+
+inlineoverridevirtual
+
+ +

Reimplemented from SKListener.

+ +

Definition at line 23 of file signalk_value_listener.h.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/generated/docs/class_s_k_value_listener.js b/docs/generated/docs/class_s_k_value_listener.js new file mode 100644 index 000000000..52d34e247 --- /dev/null +++ b/docs/generated/docs/class_s_k_value_listener.js @@ -0,0 +1,5 @@ +var class_s_k_value_listener = +[ + [ "SKValueListener", "class_s_k_value_listener.html#ad8b01da288238c75b8f4e2f119e5e136", null ], + [ "parse_value", "class_s_k_value_listener.html#a1ececa80ce9841cc5cbef88797148484", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_value_listener__inherit__graph.map b/docs/generated/docs/class_s_k_value_listener__inherit__graph.map new file mode 100644 index 000000000..877e780bd --- /dev/null +++ b/docs/generated/docs/class_s_k_value_listener__inherit__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_s_k_value_listener__inherit__graph.md5 b/docs/generated/docs/class_s_k_value_listener__inherit__graph.md5 new file mode 100644 index 000000000..1d8ae6f5f --- /dev/null +++ b/docs/generated/docs/class_s_k_value_listener__inherit__graph.md5 @@ -0,0 +1 @@ +5190cc2468df346d263a937003dcd0c3 \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_value_listener__inherit__graph.png b/docs/generated/docs/class_s_k_value_listener__inherit__graph.png new file mode 100644 index 000000000..d9f9336b4 Binary files /dev/null and b/docs/generated/docs/class_s_k_value_listener__inherit__graph.png differ diff --git a/docs/generated/docs/class_s_k_value_listener_a1ececa80ce9841cc5cbef88797148484_cgraph.map b/docs/generated/docs/class_s_k_value_listener_a1ececa80ce9841cc5cbef88797148484_cgraph.map new file mode 100644 index 000000000..1aa9c534b --- /dev/null +++ b/docs/generated/docs/class_s_k_value_listener_a1ececa80ce9841cc5cbef88797148484_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_s_k_value_listener_a1ececa80ce9841cc5cbef88797148484_cgraph.md5 b/docs/generated/docs/class_s_k_value_listener_a1ececa80ce9841cc5cbef88797148484_cgraph.md5 new file mode 100644 index 000000000..d4fd59432 --- /dev/null +++ b/docs/generated/docs/class_s_k_value_listener_a1ececa80ce9841cc5cbef88797148484_cgraph.md5 @@ -0,0 +1 @@ +309c8754a8f97f05f43754b001bdf914 \ No newline at end of file diff --git a/docs/generated/docs/class_s_k_value_listener_a1ececa80ce9841cc5cbef88797148484_cgraph.png b/docs/generated/docs/class_s_k_value_listener_a1ececa80ce9841cc5cbef88797148484_cgraph.png new file mode 100644 index 000000000..98a611b78 Binary files /dev/null and b/docs/generated/docs/class_s_k_value_listener_a1ececa80ce9841cc5cbef88797148484_cgraph.png differ diff --git a/docs/generated/docs/class_sens_e_s_p_app-members.html b/docs/generated/docs/class_sens_e_s_p_app-members.html new file mode 100644 index 000000000..c6f6d61a3 --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app-members.html @@ -0,0 +1,112 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
SensESPApp Member List
+
+
+ +

This is the complete list of members for SensESPApp, including all inherited members.

+ + + + + + + + + + + +
connect(ValueProducer< T > *producer, ValueConsumer< T > *consumer, uint8_t inputChannel=0)SensESPAppinline
connect_1to1_h(T *sensor, U *transform, ObservableValue< String > *hostname)SensESPAppinline
enable()SensESPApp
get_hostname()SensESPApp
HTTPServer classSensESPAppfriend
isSignalKConnected()SensESPAppinline
isWifiConnected()SensESPAppinline
reset()SensESPApp
SensESPApp(String hostname="SensESP", String ssid="", String wifi_password="", String sk_server_address="", uint16_t sk_server_port=0, StandardSensors sensors=ALL, int led_pin=LED_PIN, bool enable_led=ENABLE_LED, int led_ws_connected=200, int led_wifi_connected=1000, int led_offline=2000)SensESPApp
SensESPAppBuilder classSensESPAppfriend
+
+ + + + diff --git a/docs/generated/docs/class_sens_e_s_p_app.html b/docs/generated/docs/class_sens_e_s_p_app.html new file mode 100644 index 000000000..526b4f011 --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app.html @@ -0,0 +1,582 @@ + + + + + + + +SensESP: SensESPApp Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
SensESPApp Class Reference
+
+
+ +

#include <sensesp_app.h>

+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SensESPApp (String hostname="SensESP", String ssid="", String wifi_password="", String sk_server_address="", uint16_t sk_server_port=0, StandardSensors sensors=ALL, int led_pin=LED_PIN, bool enable_led=ENABLE_LED, int led_ws_connected=200, int led_wifi_connected=1000, int led_offline=2000)
 
void enable ()
 
void reset ()
 
String get_hostname ()
 
template<typename T >
void connect (ValueProducer< T > *producer, ValueConsumer< T > *consumer, uint8_t inputChannel=0)
 
template<typename T , typename U >
void connect_1to1_h (T *sensor, U *transform, ObservableValue< String > *hostname)
 
bool isWifiConnected ()
 
bool isSignalKConnected ()
 
+ + + + + +

+Friends

class HTTPServer
 
class SensESPAppBuilder
 
+

Detailed Description

+
+

Definition at line 38 of file sensesp_app.h.

+

Constructor & Destructor Documentation

+ +

◆ SensESPApp()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SensESPApp::SensESPApp (String hostname = "SensESP",
String ssid = "",
String wifi_password = "",
String sk_server_address = "",
uint16_t sk_server_port = 0,
StandardSensors sensors = ALL,
int led_pin = LED_PIN,
bool enable_led = ENABLE_LED,
int led_ws_connected = 200,
int led_wifi_connected = 1000,
int led_offline = 2000 
)
+
+ +

Definition at line 37 of file sensesp_app.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ connect()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void SensESPApp::connect (ValueProducer< T > * producer,
ValueConsumer< T > * consumer,
uint8_t inputChannel = 0 
)
+
+inline
+
+ +

Definition at line 51 of file sensesp_app.h.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ connect_1to1_h()

+ +
+
+
+template<typename T , typename U >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void SensESPApp::connect_1to1_h (T * sensor,
U * transform,
ObservableValue< String > * hostname 
)
+
+inline
+
+ +

Definition at line 57 of file sensesp_app.h.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ enable()

+ +
+
+ + + + + + + +
void SensESPApp::enable ()
+
+ +

Definition at line 122 of file sensesp_app.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ get_hostname()

+ +
+
+ + + + + + + +
String SensESPApp::get_hostname ()
+
+ +

Definition at line 183 of file sensesp_app.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ isSignalKConnected()

+ +
+
+ + + + + +
+ + + + + + + +
bool SensESPApp::isSignalKConnected ()
+
+inline
+
+

Returns true if the host system is connected to a Signal K server

+ +

Definition at line 79 of file sensesp_app.h.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ isWifiConnected()

+ +
+
+ + + + + +
+ + + + + + + +
bool SensESPApp::isWifiConnected ()
+
+inline
+
+

Returns true if the host system is connected to Wifi

+ +

Definition at line 74 of file sensesp_app.h.

+ +
+
+ +

◆ reset()

+ +
+
+ + + + + + + +
void SensESPApp::reset ()
+
+ +

Definition at line 176 of file sensesp_app.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + + +
+ +
+
+

Friends And Related Function Documentation

+ +

◆ HTTPServer

+ +
+
+ + + + + +
+ + + + +
friend class HTTPServer
+
+friend
+
+ +

Definition at line 94 of file sensesp_app.h.

+ +
+
+ +

◆ SensESPAppBuilder

+ +
+
+ + + + + +
+ + + + +
friend class SensESPAppBuilder
+
+friend
+
+ +

Definition at line 95 of file sensesp_app.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_sens_e_s_p_app.js b/docs/generated/docs/class_sens_e_s_p_app.js new file mode 100644 index 000000000..c1d96b1fc --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app.js @@ -0,0 +1,13 @@ +var class_sens_e_s_p_app = +[ + [ "SensESPApp", "class_sens_e_s_p_app.html#ad50404ad55ffff730011c74a2bac8334", null ], + [ "connect", "class_sens_e_s_p_app.html#aa41795cde59d1bb57906dff6102ee7dc", null ], + [ "connect_1to1_h", "class_sens_e_s_p_app.html#aa6e3bc4bb1c696cc0bef02835ce0f7bf", null ], + [ "enable", "class_sens_e_s_p_app.html#a3d70c22bfd1bf842f6daa83ab2f50f79", null ], + [ "get_hostname", "class_sens_e_s_p_app.html#ac068882b9e9f6092da0818c5e42b48b8", null ], + [ "isSignalKConnected", "class_sens_e_s_p_app.html#adee3f53bc75ae6d5d73a8707dd75600e", null ], + [ "isWifiConnected", "class_sens_e_s_p_app.html#a15f6e0569533b417e9724540d758c884", null ], + [ "reset", "class_sens_e_s_p_app.html#a0f7605a2c63a3ed250e1c742608956b2", null ], + [ "HTTPServer", "class_sens_e_s_p_app.html#adb5f6061831be202d2cc58ebdffa44d5", null ], + [ "SensESPAppBuilder", "class_sens_e_s_p_app.html#a1c94b1836273e4d6f132f5e2c29ba648", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.map b/docs/generated/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.map new file mode 100644 index 000000000..8455cd4b8 --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.md5 b/docs/generated/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.md5 new file mode 100644 index 000000000..aa86e7971 --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.md5 @@ -0,0 +1 @@ +1dba4fc0db96d3eafc96c8fd6a10ee12 \ No newline at end of file diff --git a/docs/generated/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.png b/docs/generated/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.png new file mode 100644 index 000000000..b1876d49f Binary files /dev/null and b/docs/generated/docs/class_sens_e_s_p_app_a0f7605a2c63a3ed250e1c742608956b2_cgraph.png differ diff --git a/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.map b/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.map new file mode 100644 index 000000000..09659573b --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.map @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.md5 b/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.md5 new file mode 100644 index 000000000..4312046ab --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.md5 @@ -0,0 +1 @@ +356f8827ce0c9e1a8320887a677cfc7b \ No newline at end of file diff --git a/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.png b/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.png new file mode 100644 index 000000000..f7a169a74 Binary files /dev/null and b/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_cgraph.png differ diff --git a/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_icgraph.map b/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_icgraph.map new file mode 100644 index 000000000..343824d61 --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_icgraph.md5 b/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_icgraph.md5 new file mode 100644 index 000000000..93b10db93 --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_icgraph.md5 @@ -0,0 +1 @@ +d77161d90bd279e8fa1b8c2191f425fa \ No newline at end of file diff --git a/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_icgraph.png b/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_icgraph.png new file mode 100644 index 000000000..af2d6cf12 Binary files /dev/null and b/docs/generated/docs/class_sens_e_s_p_app_a3d70c22bfd1bf842f6daa83ab2f50f79_icgraph.png differ diff --git a/docs/generated/docs/class_sens_e_s_p_app_aa41795cde59d1bb57906dff6102ee7dc_cgraph.map b/docs/generated/docs/class_sens_e_s_p_app_aa41795cde59d1bb57906dff6102ee7dc_cgraph.map new file mode 100644 index 000000000..68c5db8d1 --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_aa41795cde59d1bb57906dff6102ee7dc_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_sens_e_s_p_app_aa41795cde59d1bb57906dff6102ee7dc_cgraph.md5 b/docs/generated/docs/class_sens_e_s_p_app_aa41795cde59d1bb57906dff6102ee7dc_cgraph.md5 new file mode 100644 index 000000000..7c0533568 --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_aa41795cde59d1bb57906dff6102ee7dc_cgraph.md5 @@ -0,0 +1 @@ +2a9b52255fe3441fb3e1b6906bb825a5 \ No newline at end of file diff --git a/docs/generated/docs/class_sens_e_s_p_app_aa41795cde59d1bb57906dff6102ee7dc_cgraph.png b/docs/generated/docs/class_sens_e_s_p_app_aa41795cde59d1bb57906dff6102ee7dc_cgraph.png new file mode 100644 index 000000000..8c69b8efd Binary files /dev/null and b/docs/generated/docs/class_sens_e_s_p_app_aa41795cde59d1bb57906dff6102ee7dc_cgraph.png differ diff --git a/docs/generated/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.map b/docs/generated/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.map new file mode 100644 index 000000000..dcde2025a --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.md5 b/docs/generated/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.md5 new file mode 100644 index 000000000..713e222d1 --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.md5 @@ -0,0 +1 @@ +4bbf547813a85d5549c6968f73a7dd42 \ No newline at end of file diff --git a/docs/generated/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.png b/docs/generated/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.png new file mode 100644 index 000000000..51bbb957a Binary files /dev/null and b/docs/generated/docs/class_sens_e_s_p_app_aa6e3bc4bb1c696cc0bef02835ce0f7bf_cgraph.png differ diff --git a/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.map b/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.map new file mode 100644 index 000000000..eb6e244ae --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.md5 b/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.md5 new file mode 100644 index 000000000..d8a851c95 --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.md5 @@ -0,0 +1 @@ +9b9525df406b528fe57480fc7d58962d \ No newline at end of file diff --git a/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.png b/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.png new file mode 100644 index 000000000..e9d3f1676 Binary files /dev/null and b/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_cgraph.png differ diff --git a/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_icgraph.map b/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_icgraph.map new file mode 100644 index 000000000..68bb3d13f --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_icgraph.md5 b/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_icgraph.md5 new file mode 100644 index 000000000..9264028e7 --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_icgraph.md5 @@ -0,0 +1 @@ +22d81b92eccadc645ef5d8458939b7fb \ No newline at end of file diff --git a/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_icgraph.png b/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_icgraph.png new file mode 100644 index 000000000..47d16d2d4 Binary files /dev/null and b/docs/generated/docs/class_sens_e_s_p_app_ac068882b9e9f6092da0818c5e42b48b8_icgraph.png differ diff --git a/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.map b/docs/generated/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.map similarity index 100% rename from docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.map rename to docs/generated/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.map diff --git a/docs/generated/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.md5 b/docs/generated/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.md5 new file mode 100644 index 000000000..d897f6469 --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.md5 @@ -0,0 +1 @@ +f34c2f121d442ecf75009ef095e7eea3 \ No newline at end of file diff --git a/docs/generated/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.png b/docs/generated/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.png new file mode 100644 index 000000000..412403c86 Binary files /dev/null and b/docs/generated/docs/class_sens_e_s_p_app_adee3f53bc75ae6d5d73a8707dd75600e_cgraph.png differ diff --git a/docs/generated/docs/class_sens_e_s_p_app_builder-members.html b/docs/generated/docs/class_sens_e_s_p_app_builder-members.html new file mode 100644 index 000000000..7f0732558 --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_builder-members.html @@ -0,0 +1,110 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
SensESPAppBuilder Member List
+
+
+ +

This is the complete list of members for SensESPAppBuilder, including all inherited members.

+ + + + + + + + + +
get_app()SensESPAppBuilderinline
SensESPAppBuilder()SensESPAppBuilderinline
set_hostname(String hostname)SensESPAppBuilderinline
set_led_blinker(bool enabled, int websocket_connected, int wifi_connected, int offline)SensESPAppBuilderinline
set_led_pin(int led_pin)SensESPAppBuilderinline
set_sk_server(String address, uint16_t port)SensESPAppBuilderinline
set_standard_sensors(StandardSensors sensors=ALL)SensESPAppBuilderinline
set_wifi(String ssid, String password)SensESPAppBuilderinline
+
+ + + + diff --git a/docs/generated/docs/class_sens_e_s_p_app_builder.html b/docs/generated/docs/class_sens_e_s_p_app_builder.html new file mode 100644 index 000000000..cfbd24b50 --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_builder.html @@ -0,0 +1,397 @@ + + + + + + + +SensESP: SensESPAppBuilder Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
SensESPAppBuilder Class Reference
+
+
+ +

#include <sensesp_app_builder.h>

+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SensESPAppBuilder ()
 
SensESPAppBuilderset_wifi (String ssid, String password)
 
SensESPAppBuilderset_sk_server (String address, uint16_t port)
 
SensESPAppBuilderset_standard_sensors (StandardSensors sensors=ALL)
 
SensESPAppBuilderset_led_pin (int led_pin)
 
SensESPAppBuilderset_led_blinker (bool enabled, int websocket_connected, int wifi_connected, int offline)
 
SensESPAppBuilderset_hostname (String hostname)
 
SensESPAppget_app ()
 
+

Detailed Description

+
+

Definition at line 6 of file sensesp_app_builder.h.

+

Constructor & Destructor Documentation

+ +

◆ SensESPAppBuilder()

+ +
+
+ + + + + +
+ + + + + + + +
SensESPAppBuilder::SensESPAppBuilder ()
+
+inline
+
+ +

Definition at line 21 of file sensesp_app_builder.h.

+ +
+
+

Member Function Documentation

+ +

◆ get_app()

+ +
+
+ + + + + +
+ + + + + + + +
SensESPApp* SensESPAppBuilder::get_app ()
+
+inline
+
+ +

Definition at line 52 of file sensesp_app_builder.h.

+ +
+
+ +

◆ set_hostname()

+ +
+
+ + + + + +
+ + + + + + + + +
SensESPAppBuilder* SensESPAppBuilder::set_hostname (String hostname)
+
+inline
+
+ +

Definition at line 48 of file sensesp_app_builder.h.

+ +
+
+ +

◆ set_led_blinker()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SensESPAppBuilder* SensESPAppBuilder::set_led_blinker (bool enabled,
int websocket_connected,
int wifi_connected,
int offline 
)
+
+inline
+
+ +

Definition at line 40 of file sensesp_app_builder.h.

+ +
+
+ +

◆ set_led_pin()

+ +
+
+ + + + + +
+ + + + + + + + +
SensESPAppBuilder* SensESPAppBuilder::set_led_pin (int led_pin)
+
+inline
+
+ +

Definition at line 36 of file sensesp_app_builder.h.

+ +
+
+ +

◆ set_sk_server()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
SensESPAppBuilder* SensESPAppBuilder::set_sk_server (String address,
uint16_t port 
)
+
+inline
+
+ +

Definition at line 27 of file sensesp_app_builder.h.

+ +
+
+ +

◆ set_standard_sensors()

+ +
+
+ + + + + +
+ + + + + + + + +
SensESPAppBuilder* SensESPAppBuilder::set_standard_sensors (StandardSensors sensors = ALL)
+
+inline
+
+ +

Definition at line 32 of file sensesp_app_builder.h.

+ +
+
+ +

◆ set_wifi()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
SensESPAppBuilder* SensESPAppBuilder::set_wifi (String ssid,
String password 
)
+
+inline
+
+ +

Definition at line 22 of file sensesp_app_builder.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/generated/docs/class_sens_e_s_p_app_builder.js b/docs/generated/docs/class_sens_e_s_p_app_builder.js new file mode 100644 index 000000000..bdced443b --- /dev/null +++ b/docs/generated/docs/class_sens_e_s_p_app_builder.js @@ -0,0 +1,11 @@ +var class_sens_e_s_p_app_builder = +[ + [ "SensESPAppBuilder", "class_sens_e_s_p_app_builder.html#a820e3351c223431dd5ace3020eae7c12", null ], + [ "get_app", "class_sens_e_s_p_app_builder.html#a4a6855b053816852d61fd7012ea46e1f", null ], + [ "set_hostname", "class_sens_e_s_p_app_builder.html#a154893dfbbca4f214b733f3a0d147b76", null ], + [ "set_led_blinker", "class_sens_e_s_p_app_builder.html#afcbebdfc6392d7bca08371fdffed2779", null ], + [ "set_led_pin", "class_sens_e_s_p_app_builder.html#aa00b3826099409cd15defce2cba7ce71", null ], + [ "set_sk_server", "class_sens_e_s_p_app_builder.html#a2a1b039efc3345f1d909b7adea3342ee", null ], + [ "set_standard_sensors", "class_sens_e_s_p_app_builder.html#aa17d9342f404c76087f27bd6d34729e0", null ], + [ "set_wifi", "class_sens_e_s_p_app_builder.html#a81a82a604d3720c50b1bbe7d7c649172", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_sensor-members.html b/docs/generated/docs/class_sensor-members.html new file mode 100644 index 000000000..adddc59ae --- /dev/null +++ b/docs/generated/docs/class_sensor-members.html @@ -0,0 +1,119 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Sensor Member List
+
+
+ +

This is the complete list of members for Sensor, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
enable()Enableinlinevirtual
Enable(uint8_t priority=0)Enable
enable_all()Enablestatic
enableAll()Enableinlinestatic
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
+
+ + + + diff --git a/docs/class_sensor.html b/docs/generated/docs/class_sensor.html similarity index 75% rename from docs/class_sensor.html rename to docs/generated/docs/class_sensor.html index d8bbf47aa..00d8e8ac4 100644 --- a/docs/class_sensor.html +++ b/docs/generated/docs/class_sensor.html @@ -3,7 +3,7 @@ - + SensESP: Sensor Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@

- +
@@ -100,26 +96,41 @@
Inheritance diagram for Sensor:
-
Inheritance graph
- - - - - - - - - - - - - - - - - - - +
Inheritance graph
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[legend]
@@ -135,8 +146,8 @@ - - + + @@ -148,22 +159,20 @@ - - - - - - - - + + + +
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- - + + + +

Static Public Member Functions

static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
static void enable_all ()
 
static void enableAll ()
 
@@ -173,9 +182,6 @@ - - -

Additional Inherited Members

- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 

Detailed Description

@@ -239,9 +245,7 @@

    - +

diff --git a/docs/class_sensor.js b/docs/generated/docs/class_sensor.js similarity index 100% rename from docs/class_sensor.js rename to docs/generated/docs/class_sensor.js diff --git a/docs/generated/docs/class_sensor__inherit__graph.map b/docs/generated/docs/class_sensor__inherit__graph.map new file mode 100644 index 000000000..fcceaae19 --- /dev/null +++ b/docs/generated/docs/class_sensor__inherit__graph.map @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/class_sensor__inherit__graph.md5 b/docs/generated/docs/class_sensor__inherit__graph.md5 new file mode 100644 index 000000000..1ab6c997f --- /dev/null +++ b/docs/generated/docs/class_sensor__inherit__graph.md5 @@ -0,0 +1 @@ +1ae693f1f6c903a571e5a60c8be20bf6 \ No newline at end of file diff --git a/docs/generated/docs/class_sensor__inherit__graph.png b/docs/generated/docs/class_sensor__inherit__graph.png new file mode 100644 index 000000000..939e0d5ea Binary files /dev/null and b/docs/generated/docs/class_sensor__inherit__graph.png differ diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002-members.html b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002-members.html new file mode 100644 index 000000000..58eaaa61d --- /dev/null +++ b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002-members.html @@ -0,0 +1,117 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html new file mode 100644 index 000000000..c36566d2f --- /dev/null +++ b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html @@ -0,0 +1,495 @@ + + + + + + + +SensESP: SensorNXP_FXOS8700_FXAS21002 Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
SensorNXP_FXOS8700_FXAS21002 Class Reference
+
+
+ +

#include <sensor_nxp_fxos8700_fxas21002.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SensorNXP_FXOS8700_FXAS21002 (void)
 
bool connect (uint8_t pin_i2c_sda, uint8_t pin_i2c_scl)
 
void printSensorDetails (void)
 
void initFilter (int sampling_interval_ms)
 
float getHeadingRadians (void)
 
float getPitchRadians (void)
 
float getRollRadians (void)
 
float getAccelerationX (void)
 
float getAccelerationY (void)
 
float getAccelerationZ (void)
 
float getRateOfTurn (void)
 
float getRateOfPitch (void)
 
float getRateOfRoll (void)
 
void gatherCalibrationDataOnce (bool is_print_results)
 
void gatherOrientationDataOnce (bool is_print_results)
 
+

Detailed Description

+
+

Definition at line 40 of file sensor_nxp_fxos8700_fxas21002.h.

+

Constructor & Destructor Documentation

+ +

◆ SensorNXP_FXOS8700_FXAS21002()

+ +
+
+ + + + + + + + +
SensorNXP_FXOS8700_FXAS21002::SensorNXP_FXOS8700_FXAS21002 (void )
+
+ +

Definition at line 22 of file sensor_nxp_fxos8700_fxas21002.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ connect()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool SensorNXP_FXOS8700_FXAS21002::connect (uint8_t pin_i2c_sda,
uint8_t pin_i2c_scl 
)
+
+ +

Definition at line 29 of file sensor_nxp_fxos8700_fxas21002.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ gatherCalibrationDataOnce()

+ +
+
+ + + + + + + + +
void SensorNXP_FXOS8700_FXAS21002::gatherCalibrationDataOnce (bool is_print_results)
+
+ +

Definition at line 198 of file sensor_nxp_fxos8700_fxas21002.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ gatherOrientationDataOnce()

+ +
+
+ + + + + + + + +
void SensorNXP_FXOS8700_FXAS21002::gatherOrientationDataOnce (bool is_print_results)
+
+ +

Definition at line 125 of file sensor_nxp_fxos8700_fxas21002.cpp.

+ +
+
+ +

◆ getAccelerationX()

+ +
+
+ + + + + + + + +
float SensorNXP_FXOS8700_FXAS21002::getAccelerationX (void )
+
+ +

Definition at line 99 of file sensor_nxp_fxos8700_fxas21002.cpp.

+ +
+
+ +

◆ getAccelerationY()

+ +
+
+ + + + + + + + +
float SensorNXP_FXOS8700_FXAS21002::getAccelerationY (void )
+
+ +

Definition at line 103 of file sensor_nxp_fxos8700_fxas21002.cpp.

+ +
+
+ +

◆ getAccelerationZ()

+ +
+
+ + + + + + + + +
float SensorNXP_FXOS8700_FXAS21002::getAccelerationZ (void )
+
+ +

Definition at line 107 of file sensor_nxp_fxos8700_fxas21002.cpp.

+ +
+
+ +

◆ getHeadingRadians()

+ +
+
+ + + + + + + + +
float SensorNXP_FXOS8700_FXAS21002::getHeadingRadians (void )
+
+ +

Definition at line 87 of file sensor_nxp_fxos8700_fxas21002.cpp.

+ +
+
+ +

◆ getPitchRadians()

+ +
+
+ + + + + + + + +
float SensorNXP_FXOS8700_FXAS21002::getPitchRadians (void )
+
+ +

Definition at line 91 of file sensor_nxp_fxos8700_fxas21002.cpp.

+ +
+
+ +

◆ getRateOfPitch()

+ +
+
+ + + + + + + + +
float SensorNXP_FXOS8700_FXAS21002::getRateOfPitch (void )
+
+ +

Definition at line 115 of file sensor_nxp_fxos8700_fxas21002.cpp.

+ +
+
+ +

◆ getRateOfRoll()

+ +
+
+ + + + + + + + +
float SensorNXP_FXOS8700_FXAS21002::getRateOfRoll (void )
+
+ +

Definition at line 119 of file sensor_nxp_fxos8700_fxas21002.cpp.

+ +
+
+ +

◆ getRateOfTurn()

+ +
+
+ + + + + + + + +
float SensorNXP_FXOS8700_FXAS21002::getRateOfTurn (void )
+
+ +

Definition at line 111 of file sensor_nxp_fxos8700_fxas21002.cpp.

+ +
+
+ +

◆ getRollRadians()

+ +
+
+ + + + + + + + +
float SensorNXP_FXOS8700_FXAS21002::getRollRadians (void )
+
+ +

Definition at line 95 of file sensor_nxp_fxos8700_fxas21002.cpp.

+ +
+
+ +

◆ initFilter()

+ +
+
+ + + + + + + + +
void SensorNXP_FXOS8700_FXAS21002::initFilter (int sampling_interval_ms)
+
+ +

Definition at line 66 of file sensor_nxp_fxos8700_fxas21002.cpp.

+ +
+
+ +

◆ printSensorDetails()

+ +
+
+ + + + + + + + +
void SensorNXP_FXOS8700_FXAS21002::printSensorDetails (void )
+
+ +

Definition at line 60 of file sensor_nxp_fxos8700_fxas21002.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.js b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.js new file mode 100644 index 000000000..14722899b --- /dev/null +++ b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.js @@ -0,0 +1,18 @@ +var class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002 = +[ + [ "SensorNXP_FXOS8700_FXAS21002", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a681937828c756188c18330a7aacd1ecb", null ], + [ "connect", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a00127c0fb0aa12d05fbaa1887552d074", null ], + [ "gatherCalibrationDataOnce", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#ab3532ac68215da8b09b1004766175024", null ], + [ "gatherOrientationDataOnce", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#afad8509ff38a0b8cc9415c1d17193259", null ], + [ "getAccelerationX", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a715cdbdb39e3f12ef813ce3b4c624853", null ], + [ "getAccelerationY", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a0a5315f9c1d7bd39f0a50adebd6cd23d", null ], + [ "getAccelerationZ", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a410876582b8246975d97655b6288cee5", null ], + [ "getHeadingRadians", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#aa1db3fbf356c73d64797aed9fa18efa7", null ], + [ "getPitchRadians", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#aaef033f4cd54969b7057aeed0c8803d8", null ], + [ "getRateOfPitch", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a265caeca219432e14d561f15047b51b1", null ], + [ "getRateOfRoll", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a3f54d150ff5159eeec3fd4188c8766ba", null ], + [ "getRateOfTurn", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a41a2d8f8e7f6fc97039f074498f1b9f7", null ], + [ "getRollRadians", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#ae1c06e8c4f18bfaaf4bb094a973c70d9", null ], + [ "initFilter", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a68de3c26ea9715291dcaee9d1260c149", null ], + [ "printSensorDetails", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a85ab2b1718a9e1bc39759ecd9b97730c", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_cgraph.map b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_cgraph.map new file mode 100644 index 000000000..00287a1df --- /dev/null +++ b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_cgraph.md5 b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_cgraph.md5 new file mode 100644 index 000000000..a04d87a59 --- /dev/null +++ b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_cgraph.md5 @@ -0,0 +1 @@ +f9fed036d40e12acb5d95fd8a96188d9 \ No newline at end of file diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_cgraph.png b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_cgraph.png new file mode 100644 index 000000000..3e768e489 Binary files /dev/null and b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_cgraph.png differ diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_icgraph.map b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_icgraph.map new file mode 100644 index 000000000..044c9d021 --- /dev/null +++ b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_icgraph.md5 b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_icgraph.md5 new file mode 100644 index 000000000..bf91d7f42 --- /dev/null +++ b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_icgraph.md5 @@ -0,0 +1 @@ +7468d816bb9f6a467d6e15897dfe669d \ No newline at end of file diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_icgraph.png b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_icgraph.png new file mode 100644 index 000000000..68c7f0dd8 Binary files /dev/null and b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a00127c0fb0aa12d05fbaa1887552d074_icgraph.png differ diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a85ab2b1718a9e1bc39759ecd9b97730c_icgraph.map b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a85ab2b1718a9e1bc39759ecd9b97730c_icgraph.map new file mode 100644 index 000000000..7fd415aec --- /dev/null +++ b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a85ab2b1718a9e1bc39759ecd9b97730c_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a85ab2b1718a9e1bc39759ecd9b97730c_icgraph.md5 b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a85ab2b1718a9e1bc39759ecd9b97730c_icgraph.md5 new file mode 100644 index 000000000..9872c5791 --- /dev/null +++ b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a85ab2b1718a9e1bc39759ecd9b97730c_icgraph.md5 @@ -0,0 +1 @@ +a78077a802324be10def60c902576cfd \ No newline at end of file diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a85ab2b1718a9e1bc39759ecd9b97730c_icgraph.png b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a85ab2b1718a9e1bc39759ecd9b97730c_icgraph.png new file mode 100644 index 000000000..2d6c556f1 Binary files /dev/null and b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_a85ab2b1718a9e1bc39759ecd9b97730c_icgraph.png differ diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_ab3532ac68215da8b09b1004766175024_icgraph.map b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_ab3532ac68215da8b09b1004766175024_icgraph.map new file mode 100644 index 000000000..d92130cda --- /dev/null +++ b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_ab3532ac68215da8b09b1004766175024_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_ab3532ac68215da8b09b1004766175024_icgraph.md5 b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_ab3532ac68215da8b09b1004766175024_icgraph.md5 new file mode 100644 index 000000000..083b5faf6 --- /dev/null +++ b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_ab3532ac68215da8b09b1004766175024_icgraph.md5 @@ -0,0 +1 @@ +2ccd0cc14c7e4a971becbb7a3a383e32 \ No newline at end of file diff --git a/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_ab3532ac68215da8b09b1004766175024_icgraph.png b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_ab3532ac68215da8b09b1004766175024_icgraph.png new file mode 100644 index 000000000..4053a6dec Binary files /dev/null and b/docs/generated/docs/class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002_ab3532ac68215da8b09b1004766175024_icgraph.png differ diff --git a/docs/class_sentence_parser-members.html b/docs/generated/docs/class_sentence_parser-members.html similarity index 92% rename from docs/class_sentence_parser-members.html rename to docs/generated/docs/class_sentence_parser-members.html index b8408e839..e8c28139e 100644 --- a/docs/class_sentence_parser-members.html +++ b/docs/generated/docs/class_sentence_parser-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -104,9 +100,7 @@ diff --git a/docs/class_sentence_parser.html b/docs/generated/docs/class_sentence_parser.html similarity index 83% rename from docs/class_sentence_parser.html rename to docs/generated/docs/class_sentence_parser.html index 84cae8fc8..9984f85e7 100644 --- a/docs/class_sentence_parser.html +++ b/docs/generated/docs/class_sentence_parser.html @@ -3,7 +3,7 @@ - + SensESP: SentenceParser Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -100,15 +96,15 @@
Inheritance diagram for SentenceParser:
-
Inheritance graph
- - - - - - - - +
Inheritance graph
+ + + + + + + +
[legend]
@@ -130,7 +126,7 @@

Detailed Description

-

Definition at line 45 of file nmea_parser.h.

+

Definition at line 44 of file nmea_parser.h.

Constructor & Destructor Documentation

◆ SentenceParser()

@@ -148,7 +144,7 @@

-

Definition at line 542 of file nmea_parser.cpp.

+

Definition at line 546 of file nmea_parser.cpp.

@@ -197,10 +193,10 @@

Here is the caller graph for this function:
-
- - - +
+ + +
@@ -254,14 +250,14 @@

PSTISentenceParser.

-

Definition at line 49 of file nmea_parser.h.

+

Definition at line 48 of file nmea_parser.h.

Here is the call graph for this function:
-
- - - +
+ + +
@@ -294,11 +290,11 @@

Here is the caller graph for this function:
-
- - - - +
+ + + +
@@ -325,7 +321,7 @@

-

Definition at line 57 of file nmea_parser.h.

+

Definition at line 55 of file nmea_parser.h.

@@ -339,9 +335,7 @@

diff --git a/docs/class_sentence_parser.js b/docs/generated/docs/class_sentence_parser.js similarity index 100% rename from docs/class_sentence_parser.js rename to docs/generated/docs/class_sentence_parser.js diff --git a/docs/class_sentence_parser__inherit__graph.map b/docs/generated/docs/class_sentence_parser__inherit__graph.map similarity index 100% rename from docs/class_sentence_parser__inherit__graph.map rename to docs/generated/docs/class_sentence_parser__inherit__graph.map diff --git a/docs/generated/docs/class_sentence_parser__inherit__graph.md5 b/docs/generated/docs/class_sentence_parser__inherit__graph.md5 new file mode 100644 index 000000000..61b868e6c --- /dev/null +++ b/docs/generated/docs/class_sentence_parser__inherit__graph.md5 @@ -0,0 +1 @@ +cdbfd0c8b7c534d31021c4c2515546f7 \ No newline at end of file diff --git a/docs/generated/docs/class_sentence_parser__inherit__graph.png b/docs/generated/docs/class_sentence_parser__inherit__graph.png new file mode 100644 index 000000000..c5038294d Binary files /dev/null and b/docs/generated/docs/class_sentence_parser__inherit__graph.png differ diff --git a/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.map b/docs/generated/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.map similarity index 100% rename from docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.map rename to docs/generated/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.map diff --git a/docs/generated/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.md5 b/docs/generated/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.md5 new file mode 100644 index 000000000..829694113 --- /dev/null +++ b/docs/generated/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.md5 @@ -0,0 +1 @@ +28f4e9d7f0a73971d95399b9b4b99975 \ No newline at end of file diff --git a/docs/generated/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.png b/docs/generated/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.png new file mode 100644 index 000000000..be4eed598 Binary files /dev/null and b/docs/generated/docs/class_sentence_parser_a74ed90a9386887e9ff2c13dbb12a556e_cgraph.png differ diff --git a/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.map b/docs/generated/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.map similarity index 100% rename from docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.map rename to docs/generated/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.map diff --git a/docs/generated/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.md5 b/docs/generated/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.md5 new file mode 100644 index 000000000..c10488ef7 --- /dev/null +++ b/docs/generated/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.md5 @@ -0,0 +1 @@ +f4dffebf7962aeee1496f68ac0b12e0e \ No newline at end of file diff --git a/docs/generated/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.png b/docs/generated/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.png new file mode 100644 index 000000000..013eca894 Binary files /dev/null and b/docs/generated/docs/class_sentence_parser_aa079d8ee1b96e2f03a9c7a1f2ddf7519_icgraph.png differ diff --git a/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.map b/docs/generated/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.map similarity index 100% rename from docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.map rename to docs/generated/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.map diff --git a/docs/generated/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.md5 b/docs/generated/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.md5 new file mode 100644 index 000000000..a41ec5eb2 --- /dev/null +++ b/docs/generated/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.md5 @@ -0,0 +1 @@ +bdcbe40bf7b486c41262a3f182207ff6 \ No newline at end of file diff --git a/docs/generated/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.png b/docs/generated/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.png new file mode 100644 index 000000000..ee8633fd0 Binary files /dev/null and b/docs/generated/docs/class_sentence_parser_ad92490af20d92f942b2e52abfc26007f_icgraph.png differ diff --git a/docs/generated/docs/class_string_sensor-members.html b/docs/generated/docs/class_string_sensor-members.html new file mode 100644 index 000000000..6fb55d8e2 --- /dev/null +++ b/docs/generated/docs/class_string_sensor-members.html @@ -0,0 +1,127 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
StringSensor Member List
+
+
+ +

This is the complete list of members for StringSensor, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< String > *consumer, uint8_t input_channel=0)ValueProducer< String >inline
connect_to(Transform< String, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< String >inline
connectTo(ValueConsumer< String > *consumer, uint8_t input_channel=0)ValueProducer< String >inline
connectTo(Transform< String, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< String >inline
enable()Enableinlinevirtual
Enable(uint8_t priority=0)Enable
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< String >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
outputValueProducer< String >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
StringSensor(String config_path="")StringSensor
ValueProducer()ValueProducer< String >inline
+
+ + + + diff --git a/docs/class_string_sensor.html b/docs/generated/docs/class_string_sensor.html similarity index 79% rename from docs/class_string_sensor.html rename to docs/generated/docs/class_string_sensor.html index 081de80ab..8151b6c0e 100644 --- a/docs/class_string_sensor.html +++ b/docs/generated/docs/class_string_sensor.html @@ -3,7 +3,7 @@ - + SensESP: StringSensor Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -99,15 +95,15 @@
Inheritance diagram for StringSensor:
-
Inheritance graph
- - - - - - - - +
Inheritance graph
+ + + + + + + +
[legend]
@@ -126,8 +122,8 @@ - - + + @@ -139,23 +135,23 @@ - - - - - - - - + + + + - - - - + + + + + + + +
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void enable ()
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< String >
 ValueProducer ()
 
virtual const String & get ()
 
void connectTo (ValueConsumer< String > *pConsumer, uint8_t inputChannel=0)
 
Transform< String, T2 > * connectTo (Transform< String, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
void connect_to (ValueConsumer< String > *consumer, uint8_t input_channel=0)
 
Transform< String, T2 > * connect_to (Transform< String, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< String > *consumer, uint8_t input_channel=0)
 
Transform< String, T2 > * connectTo (Transform< String, T2 > *consumer_producer, uint8_t input_channel=0)
 
@@ -163,17 +159,16 @@ - - + + + + - - - @@ -198,7 +193,7 @@

-

Definition at line 26 of file sensor.cpp.

+

Definition at line 15 of file sensor.cpp.

@@ -212,9 +207,7 @@

diff --git a/docs/class_string_sensor.js b/docs/generated/docs/class_string_sensor.js similarity index 100% rename from docs/class_string_sensor.js rename to docs/generated/docs/class_string_sensor.js diff --git a/docs/generated/docs/class_string_sensor__inherit__graph.map b/docs/generated/docs/class_string_sensor__inherit__graph.map new file mode 100644 index 000000000..ccc44b17d --- /dev/null +++ b/docs/generated/docs/class_string_sensor__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_string_sensor__inherit__graph.md5 b/docs/generated/docs/class_string_sensor__inherit__graph.md5 new file mode 100644 index 000000000..b07de1ec3 --- /dev/null +++ b/docs/generated/docs/class_string_sensor__inherit__graph.md5 @@ -0,0 +1 @@ +5db66f005addf78dea1bb7efc026d82b \ No newline at end of file diff --git a/docs/generated/docs/class_string_sensor__inherit__graph.png b/docs/generated/docs/class_string_sensor__inherit__graph.png new file mode 100644 index 000000000..e44422590 Binary files /dev/null and b/docs/generated/docs/class_string_sensor__inherit__graph.png differ diff --git a/docs/generated/docs/class_symmetric_transform-members.html b/docs/generated/docs/class_symmetric_transform-members.html new file mode 100644 index 000000000..f5a79e389 --- /dev/null +++ b/docs/generated/docs/class_symmetric_transform-members.html @@ -0,0 +1,105 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+

Additional Inherited Members

static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< String >
String output
 
+ + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
SymmetricTransform< T > Member List
+
+
+ +

This is the complete list of members for SymmetricTransform< T >, including all inherited members.

+ + + + +
connectFrom(ValueProducer< T > *producer0, ValueProducer< T > *producer1=NULL, ValueProducer< T > *producer2=NULL, ValueProducer< T > *producer3=NULL, ValueProducer< T > *producer4=NULL)Transform< T, T >inline
SymmetricTransform(String config_path="")SymmetricTransform< T >inline
Transform(String config_path="")Transform< T, T >inline
+
+ + + + diff --git a/docs/generated/docs/class_symmetric_transform.html b/docs/generated/docs/class_symmetric_transform.html new file mode 100644 index 000000000..17b380e88 --- /dev/null +++ b/docs/generated/docs/class_symmetric_transform.html @@ -0,0 +1,168 @@ + + + + + + + +SensESP: SymmetricTransform< T > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
SymmetricTransform< T > Class Template Reference
+
+
+ +

#include <transform.h>

+
+Inheritance diagram for SymmetricTransform< T >:
+
+
Inheritance graph
+ + + + + + +
[legend]
+ + + + + + + + + +

+Public Member Functions

 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< T, T >
 Transform (String config_path="")
 
Transform< T, T > * connectFrom (ValueProducer< T > *producer0, ValueProducer< T > *producer1=NULL, ValueProducer< T > *producer2=NULL, ValueProducer< T > *producer3=NULL, ValueProducer< T > *producer4=NULL)
 
+

Detailed Description

+

template<typename T>
+class SymmetricTransform< T >

+ +

A SymmetricTransform is a common type of transform that consumes, transforms, then outputs values of the same data type.

+ +

Definition at line 89 of file transform.h.

+

Constructor & Destructor Documentation

+ +

◆ SymmetricTransform()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
SymmetricTransform< T >::SymmetricTransform (String config_path = "")
+
+inline
+
+ +

Definition at line 91 of file transform.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/class_symmetric_transform.js b/docs/generated/docs/class_symmetric_transform.js similarity index 100% rename from docs/class_symmetric_transform.js rename to docs/generated/docs/class_symmetric_transform.js diff --git a/docs/generated/docs/class_symmetric_transform__inherit__graph.map b/docs/generated/docs/class_symmetric_transform__inherit__graph.map new file mode 100644 index 000000000..14a923393 --- /dev/null +++ b/docs/generated/docs/class_symmetric_transform__inherit__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_symmetric_transform__inherit__graph.md5 b/docs/generated/docs/class_symmetric_transform__inherit__graph.md5 new file mode 100644 index 000000000..cce6f8103 --- /dev/null +++ b/docs/generated/docs/class_symmetric_transform__inherit__graph.md5 @@ -0,0 +1 @@ +95495a263e781b527a93f6403e3b4086 \ No newline at end of file diff --git a/docs/generated/docs/class_symmetric_transform__inherit__graph.png b/docs/generated/docs/class_symmetric_transform__inherit__graph.png new file mode 100644 index 000000000..5752d9f3a Binary files /dev/null and b/docs/generated/docs/class_symmetric_transform__inherit__graph.png differ diff --git a/docs/generated/docs/class_system_hz-members.html b/docs/generated/docs/class_system_hz-members.html new file mode 100644 index 000000000..47bbc222a --- /dev/null +++ b/docs/generated/docs/class_system_hz-members.html @@ -0,0 +1,129 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
SystemHz Member List
+
+
+ +

This is the complete list of members for SystemHz, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connect_to(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable() override finalSystemHzvirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< float >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
get_value_name()SystemHzinline
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
SystemHz()SystemHzinline
ValueProducer()ValueProducer< float >inline
+
+ + + + diff --git a/docs/class_system_hz.html b/docs/generated/docs/class_system_hz.html similarity index 81% rename from docs/class_system_hz.html rename to docs/generated/docs/class_system_hz.html index 310e70b5f..2f63b6dbc 100644 --- a/docs/class_system_hz.html +++ b/docs/generated/docs/class_system_hz.html @@ -3,7 +3,7 @@ - + SensESP: SystemHz Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -99,15 +95,15 @@
Inheritance diagram for SystemHz:
-
Inheritance graph
- - - - - - - - +
Inheritance graph
+ + + + + + + +
[legend]
@@ -133,8 +129,8 @@ - - + + @@ -144,23 +140,23 @@ - - - - - - - - + + + + - - - - + + + + + + + +
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
void connect_to (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connect_to (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
@@ -168,17 +164,16 @@ - - + + + + - - - @@ -241,7 +236,7 @@

Enable.

-

Definition at line 29 of file system_info.cpp.

+

Definition at line 25 of file system_info.cpp.

@@ -282,9 +277,7 @@

diff --git a/docs/class_system_hz.js b/docs/generated/docs/class_system_hz.js similarity index 100% rename from docs/class_system_hz.js rename to docs/generated/docs/class_system_hz.js diff --git a/docs/generated/docs/class_system_hz__inherit__graph.map b/docs/generated/docs/class_system_hz__inherit__graph.map new file mode 100644 index 000000000..3ec254309 --- /dev/null +++ b/docs/generated/docs/class_system_hz__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_system_hz__inherit__graph.md5 b/docs/generated/docs/class_system_hz__inherit__graph.md5 new file mode 100644 index 000000000..3bfbd8553 --- /dev/null +++ b/docs/generated/docs/class_system_hz__inherit__graph.md5 @@ -0,0 +1 @@ +0f9a2a9ea458ec3e6d4060b977687a7c \ No newline at end of file diff --git a/docs/generated/docs/class_system_hz__inherit__graph.png b/docs/generated/docs/class_system_hz__inherit__graph.png new file mode 100644 index 000000000..dbf0b4aa5 Binary files /dev/null and b/docs/generated/docs/class_system_hz__inherit__graph.png differ diff --git a/docs/generated/docs/class_threshold_transform-members.html b/docs/generated/docs/class_threshold_transform-members.html new file mode 100644 index 000000000..eee44d07d --- /dev/null +++ b/docs/generated/docs/class_threshold_transform-members.html @@ -0,0 +1,110 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+

Additional Inherited Members

static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
+ + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ThresholdTransform< C, P > Member List
+
+
+ +

This is the complete list of members for ThresholdTransform< C, P >, including all inherited members.

+ + + + + + + + + +
connectFrom(ValueProducer< P > *producer0, ValueProducer< P > *producer1=NULL, ValueProducer< P > *producer2=NULL, ValueProducer< P > *producer3=NULL, ValueProducer< P > *producer4=NULL)Transform< C, P >inline
in_rangeThresholdTransform< C, P >protected
max_valueThresholdTransform< C, P >protected
min_valueThresholdTransform< C, P >protected
out_rangeThresholdTransform< C, P >protected
set_input(C new_value, uint8_t input_channel=0) overrideThresholdTransform< C, P >virtual
ThresholdTransform(C min_value, C max_value, P in_range, P out_range, String config_path="")ThresholdTransform< C, P >inline
Transform(String config_path="")Transform< C, P >inline
+
+ + + + diff --git a/docs/generated/docs/class_threshold_transform.html b/docs/generated/docs/class_threshold_transform.html new file mode 100644 index 000000000..319692b55 --- /dev/null +++ b/docs/generated/docs/class_threshold_transform.html @@ -0,0 +1,357 @@ + + + + + + + +SensESP: ThresholdTransform< C, P > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ThresholdTransform< C, P > Class Template Reference
+
+
+ +

#include <threshold.h>

+
+Inheritance diagram for ThresholdTransform< C, P >:
+
+
Inheritance graph
+ + + + +
[legend]
+ + + + + + + + + + + +

+Public Member Functions

 ThresholdTransform (C min_value, C max_value, P in_range, P out_range, String config_path="")
 
virtual void set_input (C new_value, uint8_t input_channel=0) override
 
- Public Member Functions inherited from Transform< C, P >
 Transform (String config_path="")
 
Transform< C, P > * connectFrom (ValueProducer< P > *producer0, ValueProducer< P > *producer1=NULL, ValueProducer< P > *producer2=NULL, ValueProducer< P > *producer3=NULL, ValueProducer< P > *producer4=NULL)
 
+ + + + + + + + + +

+Protected Attributes

min_value
 
max_value
 
in_range
 
out_range
 
+

Detailed Description

+

template<typename C, typename P>
+class ThresholdTransform< C, P >

+ +

A Transform base class that translates the value of type C into value of type P. Base class for classes NumericThreshold and IntegerThreshold.

+

Arguments are:

+

min_value - minimum value of input for output to be the value of in_range. max_value - maximum value of input for output to be the value of in_range. in_range - output value if input value is in range out_range - output value if input value is out of the range

+ +

Definition at line 17 of file threshold.h.

+

Constructor & Destructor Documentation

+ +

◆ ThresholdTransform()

+ +
+
+
+template<typename C , typename P >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ThresholdTransform< C, P >::ThresholdTransform (min_value,
max_value,
in_range,
out_range,
String config_path = "" 
)
+
+inline
+
+ +

Definition at line 19 of file threshold.h.

+ +
+
+

Member Function Documentation

+ +

◆ set_input()

+ +
+
+
+template<class C , class P >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ThresholdTransform< C, P >::set_input (new_value,
uint8_t input_channel = 0 
)
+
+overridevirtual
+
+ +

Definition at line 4 of file threshold.cpp.

+ +
+
+

Member Data Documentation

+ +

◆ in_range

+ +
+
+
+template<typename C , typename P >
+ + + + + +
+ + + + +
P ThresholdTransform< C, P >::in_range
+
+protected
+
+ +

Definition at line 33 of file threshold.h.

+ +
+
+ +

◆ max_value

+ +
+
+
+template<typename C , typename P >
+ + + + + +
+ + + + +
C ThresholdTransform< C, P >::max_value
+
+protected
+
+ +

Definition at line 32 of file threshold.h.

+ +
+
+ +

◆ min_value

+ +
+
+
+template<typename C , typename P >
+ + + + + +
+ + + + +
C ThresholdTransform< C, P >::min_value
+
+protected
+
+ +

Definition at line 31 of file threshold.h.

+ +
+
+ +

◆ out_range

+ +
+
+
+template<typename C , typename P >
+ + + + + +
+ + + + +
P ThresholdTransform< C, P >::out_range
+
+protected
+
+ +

Definition at line 34 of file threshold.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_threshold_transform.js b/docs/generated/docs/class_threshold_transform.js new file mode 100644 index 000000000..4fe97aaec --- /dev/null +++ b/docs/generated/docs/class_threshold_transform.js @@ -0,0 +1,9 @@ +var class_threshold_transform = +[ + [ "ThresholdTransform", "class_threshold_transform.html#a4c948e2da55fdff4efdd479f93523866", null ], + [ "set_input", "class_threshold_transform.html#ac83f16930cb638bb7995a89bada5da8d", null ], + [ "in_range", "class_threshold_transform.html#a874992f571166f58cd7ef73856d30509", null ], + [ "max_value", "class_threshold_transform.html#af5ba3ee8aefbc3c4cd81890e781511f3", null ], + [ "min_value", "class_threshold_transform.html#aa38bf7e3031c7946e5b0bf6b0d9ccd7e", null ], + [ "out_range", "class_threshold_transform.html#af5e848363d0046d8688c2f7da432aac9", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_threshold_transform__inherit__graph.map b/docs/generated/docs/class_threshold_transform__inherit__graph.map new file mode 100644 index 000000000..38f597a9b --- /dev/null +++ b/docs/generated/docs/class_threshold_transform__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_threshold_transform__inherit__graph.md5 b/docs/generated/docs/class_threshold_transform__inherit__graph.md5 new file mode 100644 index 000000000..ede0afa6b --- /dev/null +++ b/docs/generated/docs/class_threshold_transform__inherit__graph.md5 @@ -0,0 +1 @@ +4af820822e3e92120c86ea108a2dd104 \ No newline at end of file diff --git a/docs/generated/docs/class_threshold_transform__inherit__graph.png b/docs/generated/docs/class_threshold_transform__inherit__graph.png new file mode 100644 index 000000000..6128fbf5a Binary files /dev/null and b/docs/generated/docs/class_threshold_transform__inherit__graph.png differ diff --git a/docs/generated/docs/class_time_string-members.html b/docs/generated/docs/class_time_string-members.html new file mode 100644 index 000000000..ae6d4d04b --- /dev/null +++ b/docs/generated/docs/class_time_string-members.html @@ -0,0 +1,106 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
TimeString Member List
+
+
+ +

This is the complete list of members for TimeString, including all inherited members.

+ + + + + +
connectFrom(ValueProducer< String > *producer0, ValueProducer< String > *producer1=NULL, ValueProducer< String > *producer2=NULL, ValueProducer< String > *producer3=NULL, ValueProducer< String > *producer4=NULL)Transform< time_t, String >inline
set_input(time_t input, uint8_t input_channel=0) overrideTimeStringvirtual
TimeString(String config_path="")TimeString
Transform(String config_path="")Transform< time_t, String >inline
+
+ + + + diff --git a/docs/generated/docs/class_time_string.html b/docs/generated/docs/class_time_string.html new file mode 100644 index 000000000..b3ec7b338 --- /dev/null +++ b/docs/generated/docs/class_time_string.html @@ -0,0 +1,196 @@ + + + + + + + +SensESP: TimeString Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
TimeString Class Reference
+
+
+ +

#include <timestring.h>

+
+Inheritance diagram for TimeString:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + +

+Public Member Functions

 TimeString (String config_path="")
 
virtual void set_input (time_t input, uint8_t input_channel=0) override
 
- Public Member Functions inherited from Transform< time_t, String >
 Transform (String config_path="")
 
Transform< time_t, String > * connectFrom (ValueProducer< String > *producer0, ValueProducer< String > *producer1=NULL, ValueProducer< String > *producer2=NULL, ValueProducer< String > *producer3=NULL, ValueProducer< String > *producer4=NULL)
 
+

Detailed Description

+

TimeString consumes a time_t time object and produces a human readable string of the time for UTC in ISO 8601 format.

+ +

Definition at line 13 of file timestring.h.

+

Constructor & Destructor Documentation

+ +

◆ TimeString()

+ +
+
+ + + + + + + + +
TimeString::TimeString (String config_path = "")
+
+ +

Definition at line 4 of file timestring.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void TimeString::set_input (time_t input,
uint8_t input_channel = 0 
)
+
+overridevirtual
+
+ +

Definition at line 7 of file timestring.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_time_string.js b/docs/generated/docs/class_time_string.js new file mode 100644 index 000000000..bd963e346 --- /dev/null +++ b/docs/generated/docs/class_time_string.js @@ -0,0 +1,5 @@ +var class_time_string = +[ + [ "TimeString", "class_time_string.html#adc18ed47c4b6d88acceec81741aab5c3", null ], + [ "set_input", "class_time_string.html#adde406ecfdeea029a07c54c87f29580f", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_time_string__inherit__graph.map b/docs/generated/docs/class_time_string__inherit__graph.map new file mode 100644 index 000000000..1f9bcaf96 --- /dev/null +++ b/docs/generated/docs/class_time_string__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_time_string__inherit__graph.md5 b/docs/generated/docs/class_time_string__inherit__graph.md5 new file mode 100644 index 000000000..8303fa3a0 --- /dev/null +++ b/docs/generated/docs/class_time_string__inherit__graph.md5 @@ -0,0 +1 @@ +61dddf63001b41c4842ae20b8243bff1 \ No newline at end of file diff --git a/docs/generated/docs/class_time_string__inherit__graph.png b/docs/generated/docs/class_time_string__inherit__graph.png new file mode 100644 index 000000000..4de2adad9 Binary files /dev/null and b/docs/generated/docs/class_time_string__inherit__graph.png differ diff --git a/docs/generated/docs/class_transform-members.html b/docs/generated/docs/class_transform-members.html new file mode 100644 index 000000000..db4f5159c --- /dev/null +++ b/docs/generated/docs/class_transform-members.html @@ -0,0 +1,104 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Transform< C, P > Member List
+
+
+ +

This is the complete list of members for Transform< C, P >, including all inherited members.

+ + + +
connectFrom(ValueProducer< P > *producer0, ValueProducer< P > *producer1=NULL, ValueProducer< P > *producer2=NULL, ValueProducer< P > *producer3=NULL, ValueProducer< P > *producer4=NULL)Transform< C, P >inline
Transform(String config_path="")Transform< C, P >inline
+
+ + + + diff --git a/docs/generated/docs/class_transform.html b/docs/generated/docs/class_transform.html new file mode 100644 index 000000000..f6abcdc22 --- /dev/null +++ b/docs/generated/docs/class_transform.html @@ -0,0 +1,224 @@ + + + + + + + +SensESP: Transform< C, P > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Transform< C, P > Class Template Reference
+
+
+ +

#include <transform.h>

+
+Inheritance diagram for Transform< C, P >:
+
+
Inheritance graph
+ + + + +
[legend]
+ + + + + + +

+Public Member Functions

 Transform (String config_path="")
 
Transform< C, P > * connectFrom (ValueProducer< P > *producer0, ValueProducer< P > *producer1=NULL, ValueProducer< P > *producer2=NULL, ValueProducer< P > *producer3=NULL, ValueProducer< P > *producer4=NULL)
 
+

Detailed Description

+

template<typename C, typename P>
+class Transform< C, P >

+ +

The main Transform class. A transform is identified primarily by the type of value that is produces (i.e. a Transform<float> is a ValueProducer<float> that generates float values)

+ +

Definition at line 46 of file transform.h.

+

Constructor & Destructor Documentation

+ +

◆ Transform()

+ +
+
+
+template<typename C , typename P >
+ + + + + +
+ + + + + + + + +
Transform< C, P >::Transform (String config_path = "")
+
+inline
+
+ +

Definition at line 50 of file transform.h.

+ +
+
+

Member Function Documentation

+ +

◆ connectFrom()

+ +
+
+
+template<typename C , typename P >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Transform<C, P>* Transform< C, P >::connectFrom (ValueProducer< P > * producer0,
ValueProducer< P > * producer1 = NULL,
ValueProducer< P > * producer2 = NULL,
ValueProducer< P > * producer3 = NULL,
ValueProducer< P > * producer4 = NULL 
)
+
+inline
+
+

A convenience method that allows up to five producers to be quickly connected to the input of the ValueConsumer side of this transform. The first producer will be connected to input channel zero, the second one to input channel 1, etc. "this" is returned, which allows the ValueProducer side of this transform to then be wired to other transforms via a call to connect_to().

+ +

Definition at line 62 of file transform.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_transform.js b/docs/generated/docs/class_transform.js new file mode 100644 index 000000000..5f5c7ce58 --- /dev/null +++ b/docs/generated/docs/class_transform.js @@ -0,0 +1,5 @@ +var class_transform = +[ + [ "Transform", "class_transform.html#a764037842596e71f15621e3732dac75a", null ], + [ "connectFrom", "class_transform.html#a145d0f289f0e63caf31f0f728d63f97e", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_transform__inherit__graph.map b/docs/generated/docs/class_transform__inherit__graph.map new file mode 100644 index 000000000..9f1abc245 --- /dev/null +++ b/docs/generated/docs/class_transform__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_transform__inherit__graph.md5 b/docs/generated/docs/class_transform__inherit__graph.md5 new file mode 100644 index 000000000..c2ca4d7c3 --- /dev/null +++ b/docs/generated/docs/class_transform__inherit__graph.md5 @@ -0,0 +1 @@ +f168bc2a1a31c3f2deec1f5766820ade \ No newline at end of file diff --git a/docs/generated/docs/class_transform__inherit__graph.png b/docs/generated/docs/class_transform__inherit__graph.png new file mode 100644 index 000000000..afedc18f9 Binary files /dev/null and b/docs/generated/docs/class_transform__inherit__graph.png differ diff --git a/docs/generated/docs/class_transform_base-members.html b/docs/generated/docs/class_transform_base-members.html new file mode 100644 index 000000000..8945c3c38 --- /dev/null +++ b/docs/generated/docs/class_transform_base-members.html @@ -0,0 +1,117 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
TransformBase Member List
+
+
+ +

This is the complete list of members for TransformBase, including all inherited members.

+ + + + + + + + + + + + + + + + +
config_pathConfigurable
Configurable(String config_path)Configurable
Enable(uint8_t priority=0)Enable
enable()Enableinlinevirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_transforms()TransformBaseinlinestatic
load_configuration()Configurableprotectedvirtual
save_configuration()Configurablevirtual
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
TransformBase(String config_path="")TransformBase
+
+ + + + diff --git a/docs/generated/docs/class_transform_base.html b/docs/generated/docs/class_transform_base.html new file mode 100644 index 000000000..79c72832d --- /dev/null +++ b/docs/generated/docs/class_transform_base.html @@ -0,0 +1,218 @@ + + + + + + + +SensESP: TransformBase Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <transform.h>

+
+Inheritance diagram for TransformBase:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 TransformBase (String config_path="")
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
virtual void enable ()
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
+ + + + + + + + +

+Static Public Member Functions

static const std::set< TransformBase * > & get_transforms ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
+ + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
+

Detailed Description

+

The base class for all transforms. All transforms are can be subscribed to by calling attach() (inherited from Observable). They can have an optional persistence configuration by specifying an "id" to save the configuration data in.

+ +

Definition at line 27 of file transform.h.

+

Constructor & Destructor Documentation

+ +

◆ TransformBase()

+ +
+
+ + + + + + + + +
TransformBase::TransformBase (String config_path = "")
+
+ +

Definition at line 10 of file transform.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ get_transforms()

+ +
+
+ + + + + +
+ + + + + + + +
static const std::set<TransformBase*>& TransformBase::get_transforms ()
+
+inlinestatic
+
+ +

Definition at line 34 of file transform.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/class_transform_base.js b/docs/generated/docs/class_transform_base.js similarity index 100% rename from docs/class_transform_base.js rename to docs/generated/docs/class_transform_base.js diff --git a/docs/generated/docs/class_transform_base__inherit__graph.map b/docs/generated/docs/class_transform_base__inherit__graph.map new file mode 100644 index 000000000..e940d2c44 --- /dev/null +++ b/docs/generated/docs/class_transform_base__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_transform_base__inherit__graph.md5 b/docs/generated/docs/class_transform_base__inherit__graph.md5 new file mode 100644 index 000000000..5d55dd14f --- /dev/null +++ b/docs/generated/docs/class_transform_base__inherit__graph.md5 @@ -0,0 +1 @@ +24c2882417dbf2781d015e563893874a \ No newline at end of file diff --git a/docs/generated/docs/class_transform_base__inherit__graph.png b/docs/generated/docs/class_transform_base__inherit__graph.png new file mode 100644 index 000000000..73f5ad363 Binary files /dev/null and b/docs/generated/docs/class_transform_base__inherit__graph.png differ diff --git a/docs/generated/docs/class_ultrasonic_distance-members.html b/docs/generated/docs/class_ultrasonic_distance-members.html new file mode 100644 index 000000000..9d26784ea --- /dev/null +++ b/docs/generated/docs/class_ultrasonic_distance-members.html @@ -0,0 +1,125 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
UltrasonicDistance Member List
+
+
+ +

This is the complete list of members for UltrasonicDistance, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connect_to(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
enable() override finalUltrasonicDistancevirtual
Enable(uint8_t priority=0)Enable
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< float >inlinevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_priority(uint8_t priority)Enableinline
UltrasonicDistance(int8_t trigger_pin, int8_t input_pin, uint read_delay=1000, String config_path="")UltrasonicDistance
ValueProducer()ValueProducer< float >inline
+
+ + + + diff --git a/docs/generated/docs/class_ultrasonic_distance.html b/docs/generated/docs/class_ultrasonic_distance.html new file mode 100644 index 000000000..d465cccec --- /dev/null +++ b/docs/generated/docs/class_ultrasonic_distance.html @@ -0,0 +1,273 @@ + + + + + + + +SensESP: UltrasonicDistance Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
UltrasonicDistance Class Reference
+
+
+ +

#include <ultrasonic_distance.h>

+
+Inheritance diagram for UltrasonicDistance:
+
+
Inheritance graph
+ + + + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 UltrasonicDistance (int8_t trigger_pin, int8_t input_pin, uint read_delay=1000, String config_path="")
 
void enable () override final
 
- Public Member Functions inherited from NumericSensor
 NumericSensor (String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connect_to (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connect_to (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
+ + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
+

Detailed Description

+
+

Definition at line 6 of file ultrasonic_distance.h.

+

Constructor & Destructor Documentation

+ +

◆ UltrasonicDistance()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
UltrasonicDistance::UltrasonicDistance (int8_t trigger_pin,
int8_t input_pin,
uint read_delay = 1000,
String config_path = "" 
)
+
+ +

Definition at line 6 of file ultrasonic_distance.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+ + + + + +
+ + + + + + + +
void UltrasonicDistance::enable ()
+
+finaloverridevirtual
+
+

Called during the initialization process. Override this method to add runtime initialization code to your class

+ +

Reimplemented from Enable.

+ +

Definition at line 17 of file ultrasonic_distance.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_ultrasonic_distance.js b/docs/generated/docs/class_ultrasonic_distance.js new file mode 100644 index 000000000..452836091 --- /dev/null +++ b/docs/generated/docs/class_ultrasonic_distance.js @@ -0,0 +1,5 @@ +var class_ultrasonic_distance = +[ + [ "UltrasonicDistance", "class_ultrasonic_distance.html#a5aaf744be7d7be1fbb3a96cbda8e1cbd", null ], + [ "enable", "class_ultrasonic_distance.html#a03aafa94461f81daefa1bdaf8186a7b2", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_ultrasonic_distance__inherit__graph.map b/docs/generated/docs/class_ultrasonic_distance__inherit__graph.map new file mode 100644 index 000000000..472c1c727 --- /dev/null +++ b/docs/generated/docs/class_ultrasonic_distance__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_ultrasonic_distance__inherit__graph.md5 b/docs/generated/docs/class_ultrasonic_distance__inherit__graph.md5 new file mode 100644 index 000000000..492117384 --- /dev/null +++ b/docs/generated/docs/class_ultrasonic_distance__inherit__graph.md5 @@ -0,0 +1 @@ +9ee81700cbd4432565605318c484de1a \ No newline at end of file diff --git a/docs/generated/docs/class_ultrasonic_distance__inherit__graph.png b/docs/generated/docs/class_ultrasonic_distance__inherit__graph.png new file mode 100644 index 000000000..abb938aa9 Binary files /dev/null and b/docs/generated/docs/class_ultrasonic_distance__inherit__graph.png differ diff --git a/docs/generated/docs/class_ultrasonic_distance_a03aafa94461f81daefa1bdaf8186a7b2_cgraph.map b/docs/generated/docs/class_ultrasonic_distance_a03aafa94461f81daefa1bdaf8186a7b2_cgraph.map new file mode 100644 index 000000000..a4635b56a --- /dev/null +++ b/docs/generated/docs/class_ultrasonic_distance_a03aafa94461f81daefa1bdaf8186a7b2_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_ultrasonic_distance_a03aafa94461f81daefa1bdaf8186a7b2_cgraph.md5 b/docs/generated/docs/class_ultrasonic_distance_a03aafa94461f81daefa1bdaf8186a7b2_cgraph.md5 new file mode 100644 index 000000000..39044038f --- /dev/null +++ b/docs/generated/docs/class_ultrasonic_distance_a03aafa94461f81daefa1bdaf8186a7b2_cgraph.md5 @@ -0,0 +1 @@ +878c1d038ac4a8fc15e5ba59a5909047 \ No newline at end of file diff --git a/docs/generated/docs/class_ultrasonic_distance_a03aafa94461f81daefa1bdaf8186a7b2_cgraph.png b/docs/generated/docs/class_ultrasonic_distance_a03aafa94461f81daefa1bdaf8186a7b2_cgraph.png new file mode 100644 index 000000000..90bc776ba Binary files /dev/null and b/docs/generated/docs/class_ultrasonic_distance_a03aafa94461f81daefa1bdaf8186a7b2_cgraph.png differ diff --git a/docs/generated/docs/class_uptime-members.html b/docs/generated/docs/class_uptime-members.html new file mode 100644 index 000000000..43bc7c12a --- /dev/null +++ b/docs/generated/docs/class_uptime-members.html @@ -0,0 +1,129 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Uptime Member List
+
+
+ +

This is the complete list of members for Uptime, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connect_to(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable() override finalUptimevirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< float >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
get_value_name()Uptimeinline
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
Uptime()Uptimeinline
ValueProducer()ValueProducer< float >inline
+
+ + + + diff --git a/docs/class_uptime.html b/docs/generated/docs/class_uptime.html similarity index 81% rename from docs/class_uptime.html rename to docs/generated/docs/class_uptime.html index 6259ca0c0..a3b3d4c54 100644 --- a/docs/class_uptime.html +++ b/docs/generated/docs/class_uptime.html @@ -3,7 +3,7 @@ - + SensESP: Uptime Class Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -99,15 +95,15 @@
Inheritance diagram for Uptime:
-
Inheritance graph
- - - - - - - - +
Inheritance graph
+ + + + + + + +
[legend]
@@ -133,8 +129,8 @@ - - + + @@ -144,23 +140,23 @@ - - - - - - - - + + + + - - - - + + + + + + + +
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual JsonObject & get_configuration (JsonBuffer &buf)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
void setClassName (const char *newClassName)
 
virtual const char * getClassName ()
 
const uint8_t getEnablePriority ()
 
void setPriority (uint8_t priority)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connectTo (ValueConsumer< float > *pConsumer, uint8_t inputChannel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *pConsumerProducer, uint8_t inputChannel=0)
 
void connect_to (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connect_to (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
@@ -168,24 +164,23 @@ - - + + + + - - -

Additional Inherited Members

static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enableAll ()
 
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from Enable
const char * className = "Enable"
 
- Protected Attributes inherited from ValueProducer< float >
float output
 

Detailed Description

-

Definition at line 28 of file system_info.h.

+

Definition at line 30 of file system_info.h.

Constructor & Destructor Documentation

◆ Uptime()

@@ -210,7 +205,7 @@

-

Definition at line 30 of file system_info.h.

+

Definition at line 32 of file system_info.h.

@@ -241,7 +236,7 @@

Enable.

-

Definition at line 52 of file system_info.cpp.

+

Definition at line 46 of file system_info.cpp.

@@ -268,7 +263,7 @@

-

Definition at line 32 of file system_info.h.

+

Definition at line 34 of file system_info.h.

@@ -282,9 +277,7 @@

    - +
diff --git a/docs/class_uptime.js b/docs/generated/docs/class_uptime.js similarity index 100% rename from docs/class_uptime.js rename to docs/generated/docs/class_uptime.js diff --git a/docs/generated/docs/class_uptime__inherit__graph.map b/docs/generated/docs/class_uptime__inherit__graph.map new file mode 100644 index 000000000..86330544a --- /dev/null +++ b/docs/generated/docs/class_uptime__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_uptime__inherit__graph.md5 b/docs/generated/docs/class_uptime__inherit__graph.md5 new file mode 100644 index 000000000..4b59bd8d2 --- /dev/null +++ b/docs/generated/docs/class_uptime__inherit__graph.md5 @@ -0,0 +1 @@ +cf8733ab7a82ac6293c68783160307a5 \ No newline at end of file diff --git a/docs/generated/docs/class_uptime__inherit__graph.png b/docs/generated/docs/class_uptime__inherit__graph.png new file mode 100644 index 000000000..84dca8a5d Binary files /dev/null and b/docs/generated/docs/class_uptime__inherit__graph.png differ diff --git a/docs/class_value_consumer-members.html b/docs/generated/docs/class_value_consumer-members.html similarity index 75% rename from docs/class_value_consumer-members.html rename to docs/generated/docs/class_value_consumer-members.html index 8679f56a7..29c665df1 100644 --- a/docs/class_value_consumer-members.html +++ b/docs/generated/docs/class_value_consumer-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -94,16 +90,15 @@

This is the complete list of members for ValueConsumer< T >, including all inherited members.

- - + + +
connectFrom(ValueProducer< T > *pProducer, uint8_t inputChannel=0)ValueConsumer< T >inline
set_input(T newValue, uint8_t inputChannel=0)ValueConsumer< T >inlinevirtual
connect_from(ValueProducer< T > *producer, uint8_t input_channel=0)ValueConsumer< T >inline
connectFrom(ValueProducer< T > *producer, uint8_t input_channel=0)ValueConsumer< T >inline
set_input(T new_value, uint8_t input_channel=0)ValueConsumer< T >inlinevirtual
diff --git a/docs/generated/docs/class_value_consumer.html b/docs/generated/docs/class_value_consumer.html new file mode 100644 index 000000000..ea1e14c6e --- /dev/null +++ b/docs/generated/docs/class_value_consumer.html @@ -0,0 +1,311 @@ + + + + + + + +SensESP: ValueConsumer< T > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ValueConsumer< T > Class Template Reference
+
+
+ +

#include <valueconsumer.h>

+
+Inheritance diagram for ValueConsumer< T >:
+
+
Inheritance graph
+ + + + +
[legend]
+ + + + + + + + +

+Public Member Functions

virtual void set_input (T new_value, uint8_t input_channel=0)
 
void connect_from (ValueProducer< T > *producer, uint8_t input_channel=0)
 
void connectFrom (ValueProducer< T > *producer, uint8_t input_channel=0)
 
+

Detailed Description

+

template<typename T>
+class ValueConsumer< T >

+ +

A ValueConsumer is any piece of code (like a transformation) that accepts data for input. They can accept one or more input values via the set_input() method. They are connected to ValueProducers via the connect_to() method.

See also
ValueProducer::connect_to()
+ +

Definition at line 18 of file valueconsumer.h.

+

Member Function Documentation

+ +

◆ connect_from()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ValueConsumer< T >::connect_from (ValueProducer< T > * producer,
uint8_t input_channel = 0 
)
+
+inline
+
+

Registers this consumer with the specified producer, letting it know that this consumer would like to receive notifications whenever its value changes.

Parameters
+ + +
input_channelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
+
+
+ +

Definition at line 38 of file valueconsumer.h.

+
+Here is the call graph for this function:
+
+
+ + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ connectFrom()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ValueConsumer< T >::connectFrom (ValueProducer< T > * producer,
uint8_t input_channel = 0 
)
+
+inline
+
+ +

Definition at line 45 of file valueconsumer.h.

+
+Here is the call graph for this function:
+
+
+ + + + + + +
+ +
+
+ +

◆ set_input()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void ValueConsumer< T >::set_input (new_value,
uint8_t input_channel = 0 
)
+
+inlinevirtual
+
+

Used to set an input of this consumer. It is usually called automatically by a ValueProducer.

Parameters
+ + + +
new_valuethe value of the input
input_channelConsumers can have one or more inputs feeding them. This parameter allows you to specify which input number the producer is connecting to. For single input consumers, leave the index at zero.
+
+
+ +

Definition at line 28 of file valueconsumer.h.

+
+Here is the caller graph for this function:
+
+
+ + + + + + + +
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/generated/docs/class_value_consumer.js b/docs/generated/docs/class_value_consumer.js new file mode 100644 index 000000000..916c6b6b3 --- /dev/null +++ b/docs/generated/docs/class_value_consumer.js @@ -0,0 +1,6 @@ +var class_value_consumer = +[ + [ "connect_from", "class_value_consumer.html#a913d68690f22e5829fd8fca4f893adf5", null ], + [ "connectFrom", "class_value_consumer.html#a236eaf49e25b8cab99845a76dd1fb73e", null ], + [ "set_input", "class_value_consumer.html#a0a2ab6f7c8bfb460d8778f6ae727cde7", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_value_consumer__inherit__graph.map b/docs/generated/docs/class_value_consumer__inherit__graph.map new file mode 100644 index 000000000..a2d0a7de7 --- /dev/null +++ b/docs/generated/docs/class_value_consumer__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/class_value_consumer__inherit__graph.md5 b/docs/generated/docs/class_value_consumer__inherit__graph.md5 new file mode 100644 index 000000000..cdb55cdd0 --- /dev/null +++ b/docs/generated/docs/class_value_consumer__inherit__graph.md5 @@ -0,0 +1 @@ +3bad01b623fde90ac01517916b5fec5a \ No newline at end of file diff --git a/docs/generated/docs/class_value_consumer__inherit__graph.png b/docs/generated/docs/class_value_consumer__inherit__graph.png new file mode 100644 index 000000000..7127d29f8 Binary files /dev/null and b/docs/generated/docs/class_value_consumer__inherit__graph.png differ diff --git a/docs/generated/docs/class_value_consumer_a0a2ab6f7c8bfb460d8778f6ae727cde7_icgraph.map b/docs/generated/docs/class_value_consumer_a0a2ab6f7c8bfb460d8778f6ae727cde7_icgraph.map new file mode 100644 index 000000000..734c20810 --- /dev/null +++ b/docs/generated/docs/class_value_consumer_a0a2ab6f7c8bfb460d8778f6ae727cde7_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/class_value_consumer_a0a2ab6f7c8bfb460d8778f6ae727cde7_icgraph.md5 b/docs/generated/docs/class_value_consumer_a0a2ab6f7c8bfb460d8778f6ae727cde7_icgraph.md5 new file mode 100644 index 000000000..e596e347a --- /dev/null +++ b/docs/generated/docs/class_value_consumer_a0a2ab6f7c8bfb460d8778f6ae727cde7_icgraph.md5 @@ -0,0 +1 @@ +ed37a1a5e7e21eddd7bbf5256a89ad76 \ No newline at end of file diff --git a/docs/generated/docs/class_value_consumer_a0a2ab6f7c8bfb460d8778f6ae727cde7_icgraph.png b/docs/generated/docs/class_value_consumer_a0a2ab6f7c8bfb460d8778f6ae727cde7_icgraph.png new file mode 100644 index 000000000..1bfc9fa3c Binary files /dev/null and b/docs/generated/docs/class_value_consumer_a0a2ab6f7c8bfb460d8778f6ae727cde7_icgraph.png differ diff --git a/docs/generated/docs/class_value_consumer_a236eaf49e25b8cab99845a76dd1fb73e_cgraph.map b/docs/generated/docs/class_value_consumer_a236eaf49e25b8cab99845a76dd1fb73e_cgraph.map new file mode 100644 index 000000000..c0fd25800 --- /dev/null +++ b/docs/generated/docs/class_value_consumer_a236eaf49e25b8cab99845a76dd1fb73e_cgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_value_consumer_a236eaf49e25b8cab99845a76dd1fb73e_cgraph.md5 b/docs/generated/docs/class_value_consumer_a236eaf49e25b8cab99845a76dd1fb73e_cgraph.md5 new file mode 100644 index 000000000..e36b3a7ac --- /dev/null +++ b/docs/generated/docs/class_value_consumer_a236eaf49e25b8cab99845a76dd1fb73e_cgraph.md5 @@ -0,0 +1 @@ +d45cf3e74fa330d50e182c93b338be5a \ No newline at end of file diff --git a/docs/generated/docs/class_value_consumer_a236eaf49e25b8cab99845a76dd1fb73e_cgraph.png b/docs/generated/docs/class_value_consumer_a236eaf49e25b8cab99845a76dd1fb73e_cgraph.png new file mode 100644 index 000000000..df8d6c63d Binary files /dev/null and b/docs/generated/docs/class_value_consumer_a236eaf49e25b8cab99845a76dd1fb73e_cgraph.png differ diff --git a/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_cgraph.map b/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_cgraph.map new file mode 100644 index 000000000..b57a0207e --- /dev/null +++ b/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_cgraph.md5 b/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_cgraph.md5 new file mode 100644 index 000000000..41b722918 --- /dev/null +++ b/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_cgraph.md5 @@ -0,0 +1 @@ +c7b5090cd0f23db06ea4d26b272c15e1 \ No newline at end of file diff --git a/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_cgraph.png b/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_cgraph.png new file mode 100644 index 000000000..52b07aac2 Binary files /dev/null and b/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_cgraph.png differ diff --git a/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_icgraph.map b/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_icgraph.map new file mode 100644 index 000000000..597a7a5d0 --- /dev/null +++ b/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_icgraph.md5 b/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_icgraph.md5 new file mode 100644 index 000000000..e6056e8f9 --- /dev/null +++ b/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_icgraph.md5 @@ -0,0 +1 @@ +dc9e0885dd38f0b49e1355c0274569cb \ No newline at end of file diff --git a/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_icgraph.png b/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_icgraph.png new file mode 100644 index 000000000..dafc4a8f0 Binary files /dev/null and b/docs/generated/docs/class_value_consumer_a913d68690f22e5829fd8fca4f893adf5_icgraph.png differ diff --git a/docs/generated/docs/class_value_producer-members.html b/docs/generated/docs/class_value_producer-members.html new file mode 100644 index 000000000..b5d2d0560 --- /dev/null +++ b/docs/generated/docs/class_value_producer-members.html @@ -0,0 +1,109 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ValueProducer< T > Member List
+
+
+ +

This is the complete list of members for ValueProducer< T >, including all inherited members.

+ + + + + + + + +
connect_to(ValueConsumer< T > *consumer, uint8_t input_channel=0)ValueProducer< T >inline
connect_to(Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< T >inline
connectTo(ValueConsumer< T > *consumer, uint8_t input_channel=0)ValueProducer< T >inline
connectTo(Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< T >inline
get()ValueProducer< T >inlinevirtual
outputValueProducer< T >protected
ValueProducer()ValueProducer< T >inline
+
+ + + + diff --git a/docs/generated/docs/class_value_producer.html b/docs/generated/docs/class_value_producer.html new file mode 100644 index 000000000..da3a20f1c --- /dev/null +++ b/docs/generated/docs/class_value_producer.html @@ -0,0 +1,450 @@ + + + + + + + +SensESP: ValueProducer< T > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ValueProducer< T > Class Template Reference
+
+
+ +

#include <valueproducer.h>

+
+Inheritance diagram for ValueProducer< T >:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + +

+Public Member Functions

 ValueProducer ()
 
virtual const T & get ()
 
void connect_to (ValueConsumer< T > *consumer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< T > *consumer, uint8_t input_channel=0)
 
template<typename T2 >
Transform< T, T2 > * connect_to (Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)
 
template<typename T2 >
Transform< T, T2 > * connectTo (Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)
 
+ + + +

+Protected Attributes

output
 
+

Detailed Description

+

template<typename T>
+class ValueProducer< T >

+ +

A ValueProducer<> is any sensor or piece of code that outputs a value for consumption elsewhere. They are Observable, allowing code to be notified whenever a new value is available. They can be connected directly to ValueConsumers of the same type using the connect_to() method.

+ +

Definition at line 20 of file valueproducer.h.

+

Constructor & Destructor Documentation

+ +

◆ ValueProducer()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
ValueProducer< T >::ValueProducer ()
+
+inline
+
+ +

Definition at line 22 of file valueproducer.h.

+ +
+
+

Member Function Documentation

+ +

◆ connect_to() [1/2]

+ +
+
+
+template<typename T >
+
+template<typename T2 >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Transform<T, T2>* ValueProducer< T >::connect_to (Transform< T, T2 > * consumer_producer,
uint8_t input_channel = 0 
)
+
+inline
+
+

If the consumer this producer is connecting to is ALSO a producer of values of the same type, connect_to() calls can be chained together, as this specialized version returns the producer/consumer being conencted to so connect_to() can be called on THAT object.

Parameters
+ + +
input_channelConsumers can have one or more inputs feeding them This parameter allows you to specify which input number this producer is connecting to. For single input consumers, leave the index at zero.
+
+
+
See also
ValueConsumer::set_input()
+ +

Definition at line 64 of file valueproducer.h.

+ +
+
+ +

◆ connect_to() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ValueProducer< T >::connect_to (ValueConsumer< T > * consumer,
uint8_t input_channel = 0 
)
+
+inline
+
+

Connects this producer to the specified consumer, registering that consumer for notifications to when this producer's value changes

Parameters
+ + +
input_channelConsumers can have one or more inputs feeding them This parameter allows you to specify which input number this producer is connecting to. For single input consumers, leave the index at zero.
+
+
+
See also
ValueConsumer::set_input()
+ +

Definition at line 38 of file valueproducer.h.

+
+Here is the caller graph for this function:
+
+
+ + + + + + +
+ +
+
+ +

◆ connectTo() [1/2]

+ +
+
+
+template<typename T >
+
+template<typename T2 >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Transform<T, T2>* ValueProducer< T >::connectTo (Transform< T, T2 > * consumer_producer,
uint8_t input_channel = 0 
)
+
+inline
+
+ +

Definition at line 75 of file valueproducer.h.

+ +
+
+ +

◆ connectTo() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ValueProducer< T >::connectTo (ValueConsumer< T > * consumer,
uint8_t input_channel = 0 
)
+
+inline
+
+ +

Definition at line 46 of file valueproducer.h.

+ +
+
+ +

◆ get()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
virtual const T& ValueProducer< T >::get ()
+
+inlinevirtual
+
+

Returns the current value of this producer

+ +

Definition at line 27 of file valueproducer.h.

+
+Here is the caller graph for this function:
+
+
+ + + + + + + + + + + + + + + + + +
+ +
+
+

Member Data Documentation

+ +

◆ output

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + +
T ValueProducer< T >::output
+
+protected
+
+

The current value of this producer is stored here in this output member (unless descendant classes override ValueProducer::get())

+ +

Definition at line 86 of file valueproducer.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_value_producer.js b/docs/generated/docs/class_value_producer.js new file mode 100644 index 000000000..b203c839e --- /dev/null +++ b/docs/generated/docs/class_value_producer.js @@ -0,0 +1,10 @@ +var class_value_producer = +[ + [ "ValueProducer", "class_value_producer.html#a0ef05992883120f7202c14fd8e577103", null ], + [ "connect_to", "class_value_producer.html#a3156eb097154b0a64227b0c8ef36aefd", null ], + [ "connect_to", "class_value_producer.html#a5920fda501e9eb4328f4a7d14d02fa39", null ], + [ "connectTo", "class_value_producer.html#ae22489a1be8fbee367e4ef21f73abfb3", null ], + [ "connectTo", "class_value_producer.html#a567a7940bdda6bace2c50704242f1d96", null ], + [ "get", "class_value_producer.html#adaf30ea1027efa0c83c75dfe3afc0c1a", null ], + [ "output", "class_value_producer.html#a9d3882f6de7ef8b05e78947cf9df2697", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_value_producer__inherit__graph.map b/docs/generated/docs/class_value_producer__inherit__graph.map new file mode 100644 index 000000000..acafb5616 --- /dev/null +++ b/docs/generated/docs/class_value_producer__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_value_producer__inherit__graph.md5 b/docs/generated/docs/class_value_producer__inherit__graph.md5 new file mode 100644 index 000000000..50918b2bc --- /dev/null +++ b/docs/generated/docs/class_value_producer__inherit__graph.md5 @@ -0,0 +1 @@ +927bd3ff5911f40570106e6be53ae6d7 \ No newline at end of file diff --git a/docs/generated/docs/class_value_producer__inherit__graph.png b/docs/generated/docs/class_value_producer__inherit__graph.png new file mode 100644 index 000000000..e115b53ee Binary files /dev/null and b/docs/generated/docs/class_value_producer__inherit__graph.png differ diff --git a/docs/generated/docs/class_value_producer_a5920fda501e9eb4328f4a7d14d02fa39_icgraph.map b/docs/generated/docs/class_value_producer_a5920fda501e9eb4328f4a7d14d02fa39_icgraph.map new file mode 100644 index 000000000..e6cee90b1 --- /dev/null +++ b/docs/generated/docs/class_value_producer_a5920fda501e9eb4328f4a7d14d02fa39_icgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_value_producer_a5920fda501e9eb4328f4a7d14d02fa39_icgraph.md5 b/docs/generated/docs/class_value_producer_a5920fda501e9eb4328f4a7d14d02fa39_icgraph.md5 new file mode 100644 index 000000000..588f43c9e --- /dev/null +++ b/docs/generated/docs/class_value_producer_a5920fda501e9eb4328f4a7d14d02fa39_icgraph.md5 @@ -0,0 +1 @@ +cf927515dc3a2d29ab398f331f92b63f \ No newline at end of file diff --git a/docs/generated/docs/class_value_producer_a5920fda501e9eb4328f4a7d14d02fa39_icgraph.png b/docs/generated/docs/class_value_producer_a5920fda501e9eb4328f4a7d14d02fa39_icgraph.png new file mode 100644 index 000000000..af7a3401a Binary files /dev/null and b/docs/generated/docs/class_value_producer_a5920fda501e9eb4328f4a7d14d02fa39_icgraph.png differ diff --git a/docs/generated/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.map b/docs/generated/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.map new file mode 100644 index 000000000..a710ee0bc --- /dev/null +++ b/docs/generated/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.md5 b/docs/generated/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.md5 new file mode 100644 index 000000000..9c05267a8 --- /dev/null +++ b/docs/generated/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.md5 @@ -0,0 +1 @@ +c580ee9b923d0f907c07b07e632ce4bc \ No newline at end of file diff --git a/docs/generated/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.png b/docs/generated/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.png new file mode 100644 index 000000000..3b243c0c1 Binary files /dev/null and b/docs/generated/docs/class_value_producer_adaf30ea1027efa0c83c75dfe3afc0c1a_icgraph.png differ diff --git a/docs/generated/docs/class_voltage_divider_r1-members.html b/docs/generated/docs/class_voltage_divider_r1-members.html new file mode 100644 index 000000000..2001d3473 --- /dev/null +++ b/docs/generated/docs/class_voltage_divider_r1-members.html @@ -0,0 +1,112 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
VoltageDividerR1 Member List
+
+
+ +

This is the complete list of members for VoltageDividerR1, including all inherited members.

+ + + + + + + + + + + +
connectFrom(ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)Transform< float, float >inline
get_config_schema() overrideVoltageDividerR1virtual
get_configuration(JsonObject &doc) overrideVoltageDividerR1virtual
R2VoltageDividerR1protected
set_configuration(const JsonObject &config) overrideVoltageDividerR1virtual
set_input(float Vout, uint8_t ignored=0) overrideVoltageDividerR1virtual
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
VinVoltageDividerR1protected
VoltageDividerR1(float R2, float Vin=3.3, String config_path="")VoltageDividerR1
+
+ + + + diff --git a/docs/generated/docs/class_voltage_divider_r1.html b/docs/generated/docs/class_voltage_divider_r1.html new file mode 100644 index 000000000..57b7e2416 --- /dev/null +++ b/docs/generated/docs/class_voltage_divider_r1.html @@ -0,0 +1,363 @@ + + + + + + + +SensESP: VoltageDividerR1 Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
VoltageDividerR1 Class Reference
+
+
+ +

#include <voltagedivider.h>

+
+Inheritance diagram for VoltageDividerR1:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 VoltageDividerR1 (float R2, float Vin=3.3, String config_path="")
 
virtual void set_input (float Vout, uint8_t ignored=0) override
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
+ + + + + +

+Protected Attributes

float R2
 
float Vin
 
+

Detailed Description

+

A transform that uses the voltage divider formula to resolve the resistance of R1 in the circuit, given a fixed voltage sent into the divider (Vin), a known resistance an the junction of the two resistors (R2), and the output of the divider (Vout).

+

Here, the output is the voltage across the fixed resistor (R2) between the junction and ground and the variable resistor is connected between Vin and the junction.

+

R2 is selected on the basis of the range of values for R1 and the maximum input voltage for the MCU's analog input.

+ +

Definition at line 19 of file voltagedivider.h.

+

Constructor & Destructor Documentation

+ +

◆ VoltageDividerR1()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
VoltageDividerR1::VoltageDividerR1 (float R2,
float Vin = 3.3,
String config_path = "" 
)
+
+ +

Definition at line 3 of file voltagedivider.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String VoltageDividerR1::get_config_schema ()
+
+overridevirtual
+
+ +

Definition at line 26 of file voltagedivider.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void VoltageDividerR1::get_configuration (JsonObject & doc)
+
+overridevirtual
+
+ +

Definition at line 13 of file voltagedivider.cpp.

+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool VoltageDividerR1::set_configuration (const JsonObject & config)
+
+overridevirtual
+
+ +

Definition at line 28 of file voltagedivider.cpp.

+ +
+
+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void VoltageDividerR1::set_input (float Vout,
uint8_t ignored = 0 
)
+
+overridevirtual
+
+ +

Definition at line 8 of file voltagedivider.cpp.

+ +
+
+

Member Data Documentation

+ +

◆ R2

+ +
+
+ + + + + +
+ + + + +
float VoltageDividerR1::R2
+
+protected
+
+ +

Definition at line 31 of file voltagedivider.h.

+ +
+
+ +

◆ Vin

+ +
+
+ + + + + +
+ + + + +
float VoltageDividerR1::Vin
+
+protected
+
+ +

Definition at line 32 of file voltagedivider.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_voltage_divider_r1.js b/docs/generated/docs/class_voltage_divider_r1.js new file mode 100644 index 000000000..8e93f6b2a --- /dev/null +++ b/docs/generated/docs/class_voltage_divider_r1.js @@ -0,0 +1,10 @@ +var class_voltage_divider_r1 = +[ + [ "VoltageDividerR1", "class_voltage_divider_r1.html#a559bd31c65cb8a407e7e28d968d97678", null ], + [ "get_config_schema", "class_voltage_divider_r1.html#a0945340bdc351b89a43dcf46ed073fe0", null ], + [ "get_configuration", "class_voltage_divider_r1.html#ac076d517bc3fb64717457a07f477d740", null ], + [ "set_configuration", "class_voltage_divider_r1.html#a629323d44b24dabe6e54c06a80dfe280", null ], + [ "set_input", "class_voltage_divider_r1.html#ad9cb0660e2c1e82a6740739fcfc2a360", null ], + [ "R2", "class_voltage_divider_r1.html#ad00c68d3e756cdb88d099ac0c0eadd1e", null ], + [ "Vin", "class_voltage_divider_r1.html#a0431451b00c45c89d3ac5bf4fec692c3", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_voltage_divider_r1__inherit__graph.map b/docs/generated/docs/class_voltage_divider_r1__inherit__graph.map new file mode 100644 index 000000000..55861c81c --- /dev/null +++ b/docs/generated/docs/class_voltage_divider_r1__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_voltage_divider_r1__inherit__graph.md5 b/docs/generated/docs/class_voltage_divider_r1__inherit__graph.md5 new file mode 100644 index 000000000..196b3d3e5 --- /dev/null +++ b/docs/generated/docs/class_voltage_divider_r1__inherit__graph.md5 @@ -0,0 +1 @@ +0cedcd09b346a68c45f4ed84b86d45a1 \ No newline at end of file diff --git a/docs/generated/docs/class_voltage_divider_r1__inherit__graph.png b/docs/generated/docs/class_voltage_divider_r1__inherit__graph.png new file mode 100644 index 000000000..7cbc0f293 Binary files /dev/null and b/docs/generated/docs/class_voltage_divider_r1__inherit__graph.png differ diff --git a/docs/generated/docs/class_voltage_divider_r2-members.html b/docs/generated/docs/class_voltage_divider_r2-members.html new file mode 100644 index 000000000..ea38d74cf --- /dev/null +++ b/docs/generated/docs/class_voltage_divider_r2-members.html @@ -0,0 +1,112 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
VoltageDividerR2 Member List
+
+
+ +

This is the complete list of members for VoltageDividerR2, including all inherited members.

+ + + + + + + + + + + +
connectFrom(ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)Transform< float, float >inline
get_config_schema() overrideVoltageDividerR2virtual
get_configuration(JsonObject &doc) overrideVoltageDividerR2virtual
R1VoltageDividerR2protected
set_configuration(const JsonObject &config) overrideVoltageDividerR2virtual
set_input(float Vout, uint8_t ignored=0) overrideVoltageDividerR2virtual
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
VinVoltageDividerR2protected
VoltageDividerR2(float R1, float Vin=3.3, String config_path="")VoltageDividerR2
+
+ + + + diff --git a/docs/generated/docs/class_voltage_divider_r2.html b/docs/generated/docs/class_voltage_divider_r2.html new file mode 100644 index 000000000..f602640f3 --- /dev/null +++ b/docs/generated/docs/class_voltage_divider_r2.html @@ -0,0 +1,361 @@ + + + + + + + +SensESP: VoltageDividerR2 Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
VoltageDividerR2 Class Reference
+
+
+ +

#include <voltagedivider.h>

+
+Inheritance diagram for VoltageDividerR2:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 VoltageDividerR2 (float R1, float Vin=3.3, String config_path="")
 
virtual void set_input (float Vout, uint8_t ignored=0) override
 
virtual void get_configuration (JsonObject &doc) override
 
virtual bool set_configuration (const JsonObject &config) override
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
+ + + + + +

+Protected Attributes

float R1
 
float Vin
 
+

Detailed Description

+

A transform that uses the voltage divider formula to resolve the resistance of R2 in the circuit, given a fixed voltage sent into the divider (Vin), a known resistance an the junction of the two resistors (R1), and the output of the divider (Vout). This is the typical way a sensor such as a temperature sender or oil pressure sender is wired up: the sender's resistance varies based on temperature or pressure, so it is usually "R2" in a voltage divider. R1 and/or Vin is selected in such a way to ensure Vout (the value read by the MCU's analog input) does not exceed 3.3 volts.

+ +

Definition at line 45 of file voltagedivider.h.

+

Constructor & Destructor Documentation

+ +

◆ VoltageDividerR2()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
VoltageDividerR2::VoltageDividerR2 (float R1,
float Vin = 3.3,
String config_path = "" 
)
+
+ +

Definition at line 45 of file voltagedivider.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String VoltageDividerR2::get_config_schema ()
+
+overridevirtual
+
+ +

Definition at line 68 of file voltagedivider.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void VoltageDividerR2::get_configuration (JsonObject & doc)
+
+overridevirtual
+
+ +

Definition at line 55 of file voltagedivider.cpp.

+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool VoltageDividerR2::set_configuration (const JsonObject & config)
+
+overridevirtual
+
+ +

Definition at line 70 of file voltagedivider.cpp.

+ +
+
+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void VoltageDividerR2::set_input (float Vout,
uint8_t ignored = 0 
)
+
+overridevirtual
+
+ +

Definition at line 50 of file voltagedivider.cpp.

+ +
+
+

Member Data Documentation

+ +

◆ R1

+ +
+
+ + + + + +
+ + + + +
float VoltageDividerR2::R1
+
+protected
+
+ +

Definition at line 57 of file voltagedivider.h.

+ +
+
+ +

◆ Vin

+ +
+
+ + + + + +
+ + + + +
float VoltageDividerR2::Vin
+
+protected
+
+ +

Definition at line 58 of file voltagedivider.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/class_voltage_divider_r2.js b/docs/generated/docs/class_voltage_divider_r2.js similarity index 85% rename from docs/class_voltage_divider_r2.js rename to docs/generated/docs/class_voltage_divider_r2.js index 604020615..ea69e4849 100644 --- a/docs/class_voltage_divider_r2.js +++ b/docs/generated/docs/class_voltage_divider_r2.js @@ -2,7 +2,7 @@ var class_voltage_divider_r2 = [ [ "VoltageDividerR2", "class_voltage_divider_r2.html#a609ab5e2db4122ddc875a94ba8f9d325", null ], [ "get_config_schema", "class_voltage_divider_r2.html#ae37065fd9bd093497ff74a9faf5b6cea", null ], - [ "get_configuration", "class_voltage_divider_r2.html#a35275626b89244eb30f0c1be504dbdb6", null ], + [ "get_configuration", "class_voltage_divider_r2.html#af76ca11d13ac2ab6e16133a1e1292ef9", null ], [ "set_configuration", "class_voltage_divider_r2.html#a805b64252dccfd3720ce5fc0f84964b3", null ], [ "set_input", "class_voltage_divider_r2.html#a43fa7bb9dc49c50de247aac272d7f697", null ], [ "R1", "class_voltage_divider_r2.html#a927b6c4d26bc24dfd326f63a0a127f66", null ], diff --git a/docs/generated/docs/class_voltage_divider_r2__inherit__graph.map b/docs/generated/docs/class_voltage_divider_r2__inherit__graph.map new file mode 100644 index 000000000..464f8cadc --- /dev/null +++ b/docs/generated/docs/class_voltage_divider_r2__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_voltage_divider_r2__inherit__graph.md5 b/docs/generated/docs/class_voltage_divider_r2__inherit__graph.md5 new file mode 100644 index 000000000..276c0b4b1 --- /dev/null +++ b/docs/generated/docs/class_voltage_divider_r2__inherit__graph.md5 @@ -0,0 +1 @@ +a61371af83981dc76a15cf519c4db2af \ No newline at end of file diff --git a/docs/generated/docs/class_voltage_divider_r2__inherit__graph.png b/docs/generated/docs/class_voltage_divider_r2__inherit__graph.png new file mode 100644 index 000000000..9282b3a25 Binary files /dev/null and b/docs/generated/docs/class_voltage_divider_r2__inherit__graph.png differ diff --git a/docs/generated/docs/class_voltage_multiplier-members.html b/docs/generated/docs/class_voltage_multiplier-members.html new file mode 100644 index 000000000..24826fa2d --- /dev/null +++ b/docs/generated/docs/class_voltage_multiplier-members.html @@ -0,0 +1,107 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
VoltageMultiplier Member List
+
+
+ +

This is the complete list of members for VoltageMultiplier, including all inherited members.

+ + + + + + +
connectFrom(ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)Transform< float, float >inline
set_input(float input, uint8_t inputChannel=0)VoltageMultipliervirtual
SymmetricTransform(String config_path="")SymmetricTransform< float >inline
Transform(String config_path="")Transform< float, float >inline
VoltageMultiplier(uint16_t R1, uint16_t R2, String config_path="")VoltageMultiplier
+
+ + + + diff --git a/docs/generated/docs/class_voltage_multiplier.html b/docs/generated/docs/class_voltage_multiplier.html new file mode 100644 index 000000000..87fda549a --- /dev/null +++ b/docs/generated/docs/class_voltage_multiplier.html @@ -0,0 +1,222 @@ + + + + + + + +SensESP: VoltageMultiplier Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
VoltageMultiplier Class Reference
+
+
+ +

#include <voltage_multiplier.h>

+
+Inheritance diagram for VoltageMultiplier:
+
+
Inheritance graph
+ + + + + +
[legend]
+ + + + + + + + + + + + + + +

+Public Member Functions

 VoltageMultiplier (uint16_t R1, uint16_t R2, String config_path="")
 
virtual void set_input (float input, uint8_t inputChannel=0)
 
- Public Member Functions inherited from SymmetricTransform< float >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from Transform< float, float >
 Transform (String config_path="")
 
Transform< float, float > * connectFrom (ValueProducer< float > *producer0, ValueProducer< float > *producer1=NULL, ValueProducer< float > *producer2=NULL, ValueProducer< float > *producer3=NULL, ValueProducer< float > *producer4=NULL)
 
+

Detailed Description

+

A transform that does the opposite of what a physical voltage divider circuit does. Used to convert the voltage that comes out of a voltage divider back into the original voltage that went into the voltage divider.

+

Use case: measuring a ~12V DC source with an analog-to-digital converter (ADC) that can take only 5V. You use a physical voltage divider circuit to reduce from ~12V down to a range that's no higher than 5V. After you read the output from the ADC and convert it into voltage, you have to reverse the effect of the voltage divider circuit to know the original source voltage.

+

Two parameters:

+
    +
  • R1 = the value, in ohms, of R1 in your voltage divider circuit
  • +
  • R2 = value of R2 in the circuit
  • +
+

For maximum accuracy, you should measure the actual ohms value of your resistors, rather than just assuming they are as labeled.

+ +

Definition at line 25 of file voltage_multiplier.h.

+

Constructor & Destructor Documentation

+ +

◆ VoltageMultiplier()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
VoltageMultiplier::VoltageMultiplier (uint16_t R1,
uint16_t R2,
String config_path = "" 
)
+
+ +

Definition at line 3 of file voltage_multiplier.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void VoltageMultiplier::set_input (float input,
uint8_t inputChannel = 0 
)
+
+virtual
+
+ +

Definition at line 7 of file voltage_multiplier.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_voltage_multiplier.js b/docs/generated/docs/class_voltage_multiplier.js new file mode 100644 index 000000000..99ac390ae --- /dev/null +++ b/docs/generated/docs/class_voltage_multiplier.js @@ -0,0 +1,5 @@ +var class_voltage_multiplier = +[ + [ "VoltageMultiplier", "class_voltage_multiplier.html#a987803f756c42ddfd2f5bf18ad01d779", null ], + [ "set_input", "class_voltage_multiplier.html#a606d3a993996bc18fca30f9231c30518", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_voltage_multiplier__inherit__graph.map b/docs/generated/docs/class_voltage_multiplier__inherit__graph.map new file mode 100644 index 000000000..413cfd676 --- /dev/null +++ b/docs/generated/docs/class_voltage_multiplier__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_voltage_multiplier__inherit__graph.md5 b/docs/generated/docs/class_voltage_multiplier__inherit__graph.md5 new file mode 100644 index 000000000..643d95ed7 --- /dev/null +++ b/docs/generated/docs/class_voltage_multiplier__inherit__graph.md5 @@ -0,0 +1 @@ +6a4e5aecd1274ea49bb26bc843f28f2f \ No newline at end of file diff --git a/docs/generated/docs/class_voltage_multiplier__inherit__graph.png b/docs/generated/docs/class_voltage_multiplier__inherit__graph.png new file mode 100644 index 000000000..bf9b79c6b Binary files /dev/null and b/docs/generated/docs/class_voltage_multiplier__inherit__graph.png differ diff --git a/docs/class_w_s_client-members.html b/docs/generated/docs/class_w_s_client-members.html similarity index 86% rename from docs/class_w_s_client-members.html rename to docs/generated/docs/class_w_s_client-members.html index 088398d7f..0251b7645 100644 --- a/docs/class_w_s_client-members.html +++ b/docs/generated/docs/class_w_s_client-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -99,7 +95,9 @@ connect()WSClient enable()WSClient get_config_schema() overrideWSClientvirtual - get_configuration(JsonBuffer &buf) override finalWSClientvirtual + get_configuration(JsonObject &doc) override finalWSClientvirtual + get_server_address()WSClientinline + get_server_port()WSClientinline is_connected()WSClient load_configuration()Configurableprotectedvirtual loop()WSClient @@ -111,15 +109,13 @@ save_configuration()Configurablevirtual send_delta()WSClient set_configuration(const JsonObject &config) override finalWSClientvirtual - WSClient(String config_path, SKDelta *sk_delta, std::function< void(bool)> connected_cb, void_cb_func delta_cb)WSClient + WSClient(String config_path, SKDelta *sk_delta, String server_address, uint16_t server_port, std::function< void(bool)> connected_cb, void_cb_func delta_cb)WSClient
diff --git a/docs/generated/docs/class_w_s_client.html b/docs/generated/docs/class_w_s_client.html new file mode 100644 index 000000000..7c1ad3022 --- /dev/null +++ b/docs/generated/docs/class_w_s_client.html @@ -0,0 +1,695 @@ + + + + + + + +SensESP: WSClient Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
WSClient Class Reference
+
+
+ +

#include <ws_client.h>

+
+Inheritance diagram for WSClient:
+
+
Inheritance graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 WSClient (String config_path, SKDelta *sk_delta, String server_address, uint16_t server_port, std::function< void(bool)> connected_cb, void_cb_func delta_cb)
 
void enable ()
 
void on_disconnected ()
 
void on_error ()
 
void on_connected (uint8_t *payload)
 
void on_receive_delta (uint8_t *payload)
 
void connect ()
 
void loop ()
 
bool is_connected ()
 
void restart ()
 
void send_delta ()
 
const String get_server_address ()
 
const uint16_t get_server_port ()
 
virtual void get_configuration (JsonObject &doc) override final
 
virtual bool set_configuration (const JsonObject &config) override final
 
virtual String get_config_schema () override
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void save_configuration ()
 
+ + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
+

Detailed Description

+
+

Definition at line 16 of file ws_client.h.

+

Constructor & Destructor Documentation

+ +

◆ WSClient()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WSClient::WSClient (String config_path,
SKDeltask_delta,
String server_address,
uint16_t server_port,
std::function< void(bool)> connected_cb,
void_cb_func delta_cb 
)
+
+ +

Definition at line 42 of file ws_client.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ connect()

+ +
+
+ + + + + + + +
void WSClient::connect ()
+
+ +

Definition at line 184 of file ws_client.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + + +
+ +
+
+ +

◆ enable()

+ +
+
+ + + + + + + +
void WSClient::enable ()
+
+ +

Definition at line 61 of file ws_client.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ get_config_schema()

+ +
+
+ + + + + +
+ + + + + + + +
String WSClient::get_config_schema ()
+
+overridevirtual
+
+

Returns a configuration schema that specifies the key/value pairs that can be expected when calling get_configuration(), or are expected by set_configuration(). The schema will be in JSON Schema format

See also
https://json-schema.org
+ +

Reimplemented from Configurable.

+ +

Definition at line 467 of file ws_client.cpp.

+ +
+
+ +

◆ get_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
void WSClient::get_configuration (JsonObject & configObject)
+
+finaloverridevirtual
+
+

Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonDocument::as<JsonObject>() and returned.

+ +

Reimplemented from Configurable.

+ +

Definition at line 433 of file ws_client.cpp.

+ +
+
+ +

◆ get_server_address()

+ +
+
+ + + + + +
+ + + + + + + +
const String WSClient::get_server_address ()
+
+inline
+
+ +

Definition at line 32 of file ws_client.h.

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ get_server_port()

+ +
+
+ + + + + +
+ + + + + + + +
const uint16_t WSClient::get_server_port ()
+
+inline
+
+ +

Definition at line 33 of file ws_client.h.

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ is_connected()

+ +
+
+ + + + + + + +
bool WSClient::is_connected ()
+
+ +

Definition at line 413 of file ws_client.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ loop()

+ +
+
+ + + + + + + +
void WSClient::loop ()
+
+ +

Definition at line 406 of file ws_client.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + + +
+ +
+
+ +

◆ on_connected()

+ +
+
+ + + + + + + + +
void WSClient::on_connected (uint8_t * payload)
+
+ +

Definition at line 94 of file ws_client.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ on_disconnected()

+ +
+
+ + + + + + + +
void WSClient::on_disconnected ()
+
+ +

Definition at line 74 of file ws_client.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ on_error()

+ +
+
+ + + + + + + +
void WSClient::on_error ()
+
+ +

Definition at line 88 of file ws_client.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ on_receive_delta()

+ +
+
+ + + + + + + + +
void WSClient::on_receive_delta (uint8_t * payload)
+
+ +

Definition at line 132 of file ws_client.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ restart()

+ +
+
+ + + + + + + +
void WSClient::restart ()
+
+ +

Definition at line 415 of file ws_client.cpp.

+ +
+
+ +

◆ send_delta()

+ +
+
+ + + + + + + +
void WSClient::send_delta ()
+
+ +

Definition at line 422 of file ws_client.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + + +
+ +
+
+ +

◆ set_configuration()

+ +
+
+ + + + + +
+ + + + + + + + +
bool WSClient::set_configuration (const JsonObject & config)
+
+finaloverridevirtual
+
+

Sets the current state of local member variables using the data stored in config.

+ +

Reimplemented from Configurable.

+ +

Definition at line 475 of file ws_client.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_w_s_client.js b/docs/generated/docs/class_w_s_client.js new file mode 100644 index 000000000..55aedad6b --- /dev/null +++ b/docs/generated/docs/class_w_s_client.js @@ -0,0 +1,19 @@ +var class_w_s_client = +[ + [ "WSClient", "class_w_s_client.html#a1c800c9ef6791e3103a3ec3eb2ef38f7", null ], + [ "connect", "class_w_s_client.html#a1612670a5dccbc8a39518ae972fbae90", null ], + [ "enable", "class_w_s_client.html#a1313d063fd61739f7e3ca9b2c126b048", null ], + [ "get_config_schema", "class_w_s_client.html#a78fbe2ccf0f84423abbf9d1047aff0bc", null ], + [ "get_configuration", "class_w_s_client.html#ae4b637b051ecf7ee14181208c6f37855", null ], + [ "get_server_address", "class_w_s_client.html#a88daee9c4c5b497558c3d07591baa3e0", null ], + [ "get_server_port", "class_w_s_client.html#a26e9057dc9c94a940684716c9c65d113", null ], + [ "is_connected", "class_w_s_client.html#a6ae43b80f511194b43b0dff2763d68b1", null ], + [ "loop", "class_w_s_client.html#ae23657a7da08a9413a09e9054495904e", null ], + [ "on_connected", "class_w_s_client.html#a262d41693fab15daa3acac9de78fbf35", null ], + [ "on_disconnected", "class_w_s_client.html#ae110b10f209f55a82e2d700c8c9149a7", null ], + [ "on_error", "class_w_s_client.html#af921852d17f75f46999c2cc1442c4723", null ], + [ "on_receive_delta", "class_w_s_client.html#a2b235f3e62668b6e7923cbbcba00e5c1", null ], + [ "restart", "class_w_s_client.html#a478877d14e5a303c24ea60a4cc4f8752", null ], + [ "send_delta", "class_w_s_client.html#ab6bcc3fb4cfe71aff3929480fab9bd5a", null ], + [ "set_configuration", "class_w_s_client.html#ad099870379ee102fa4f5b3b584b50658", null ] +]; \ No newline at end of file diff --git a/docs/class_w_s_client__inherit__graph.map b/docs/generated/docs/class_w_s_client__inherit__graph.map similarity index 100% rename from docs/class_w_s_client__inherit__graph.map rename to docs/generated/docs/class_w_s_client__inherit__graph.map diff --git a/docs/generated/docs/class_w_s_client__inherit__graph.md5 b/docs/generated/docs/class_w_s_client__inherit__graph.md5 new file mode 100644 index 000000000..42bfb5d53 --- /dev/null +++ b/docs/generated/docs/class_w_s_client__inherit__graph.md5 @@ -0,0 +1 @@ +64feab4194e79b1307016984692dbe69 \ No newline at end of file diff --git a/docs/generated/docs/class_w_s_client__inherit__graph.png b/docs/generated/docs/class_w_s_client__inherit__graph.png new file mode 100644 index 000000000..09e535dee Binary files /dev/null and b/docs/generated/docs/class_w_s_client__inherit__graph.png differ diff --git a/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.map b/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.map new file mode 100644 index 000000000..1e17379b6 --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.md5 b/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.md5 new file mode 100644 index 000000000..25d6cc4ed --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.md5 @@ -0,0 +1 @@ +8862d2b46a228cfa1aa3888448b072d2 \ No newline at end of file diff --git a/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.png b/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.png new file mode 100644 index 000000000..b246dabe5 Binary files /dev/null and b/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_cgraph.png differ diff --git a/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.map b/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.map new file mode 100644 index 000000000..5c8a6ad89 --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.md5 b/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.md5 new file mode 100644 index 000000000..d530fbeae --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.md5 @@ -0,0 +1 @@ +0e6aea3b0597142462bbc53c1b7a09f5 \ No newline at end of file diff --git a/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.png b/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.png new file mode 100644 index 000000000..c26338875 Binary files /dev/null and b/docs/generated/docs/class_w_s_client_a1313d063fd61739f7e3ca9b2c126b048_icgraph.png differ diff --git a/docs/generated/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.map b/docs/generated/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.map new file mode 100644 index 000000000..8ef16c2a7 --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.md5 b/docs/generated/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.md5 new file mode 100644 index 000000000..c9be7dea7 --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.md5 @@ -0,0 +1 @@ +1cff9343637fd278c9a984d709819b84 \ No newline at end of file diff --git a/docs/generated/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.png b/docs/generated/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.png new file mode 100644 index 000000000..7d4b6c122 Binary files /dev/null and b/docs/generated/docs/class_w_s_client_a1612670a5dccbc8a39518ae972fbae90_icgraph.png differ diff --git a/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.map b/docs/generated/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.map similarity index 100% rename from docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.map rename to docs/generated/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.map diff --git a/docs/generated/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.md5 b/docs/generated/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.md5 new file mode 100644 index 000000000..b9437329b --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.md5 @@ -0,0 +1 @@ +3cf7556acaabb32de8f03d9cd4fd36e3 \ No newline at end of file diff --git a/docs/generated/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.png b/docs/generated/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.png new file mode 100644 index 000000000..31d862256 Binary files /dev/null and b/docs/generated/docs/class_w_s_client_a262d41693fab15daa3acac9de78fbf35_icgraph.png differ diff --git a/docs/generated/docs/class_w_s_client_a26e9057dc9c94a940684716c9c65d113_icgraph.map b/docs/generated/docs/class_w_s_client_a26e9057dc9c94a940684716c9c65d113_icgraph.map new file mode 100644 index 000000000..33ba8ffc2 --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a26e9057dc9c94a940684716c9c65d113_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_w_s_client_a26e9057dc9c94a940684716c9c65d113_icgraph.md5 b/docs/generated/docs/class_w_s_client_a26e9057dc9c94a940684716c9c65d113_icgraph.md5 new file mode 100644 index 000000000..412450dc5 --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a26e9057dc9c94a940684716c9c65d113_icgraph.md5 @@ -0,0 +1 @@ +e8faa335dc1133290cae2cd8eaf4d51e \ No newline at end of file diff --git a/docs/generated/docs/class_w_s_client_a26e9057dc9c94a940684716c9c65d113_icgraph.png b/docs/generated/docs/class_w_s_client_a26e9057dc9c94a940684716c9c65d113_icgraph.png new file mode 100644 index 000000000..41db39815 Binary files /dev/null and b/docs/generated/docs/class_w_s_client_a26e9057dc9c94a940684716c9c65d113_icgraph.png differ diff --git a/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_cgraph.map b/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_cgraph.map new file mode 100644 index 000000000..a0429a791 --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_cgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_cgraph.md5 b/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_cgraph.md5 new file mode 100644 index 000000000..1876e97cb --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_cgraph.md5 @@ -0,0 +1 @@ +cb6048a488d2e88357e65ac6c0972338 \ No newline at end of file diff --git a/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_cgraph.png b/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_cgraph.png new file mode 100644 index 000000000..0ef6c9f21 Binary files /dev/null and b/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_cgraph.png differ diff --git a/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.map b/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.map similarity index 100% rename from docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.map rename to docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.map diff --git a/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.md5 b/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.md5 new file mode 100644 index 000000000..4a4745cf7 --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.md5 @@ -0,0 +1 @@ +24d6431e1c8942a008f331545fd4e9ba \ No newline at end of file diff --git a/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.png b/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.png new file mode 100644 index 000000000..9de66085c Binary files /dev/null and b/docs/generated/docs/class_w_s_client_a2b235f3e62668b6e7923cbbcba00e5c1_icgraph.png differ diff --git a/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.map b/docs/generated/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.map similarity index 100% rename from docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.map rename to docs/generated/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.map diff --git a/docs/generated/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.md5 b/docs/generated/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.md5 new file mode 100644 index 000000000..d825d1743 --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.md5 @@ -0,0 +1 @@ +bd6920c7bf77ebffd24adad6982bba5a \ No newline at end of file diff --git a/docs/generated/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.png b/docs/generated/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.png new file mode 100644 index 000000000..b104366f6 Binary files /dev/null and b/docs/generated/docs/class_w_s_client_a6ae43b80f511194b43b0dff2763d68b1_icgraph.png differ diff --git a/docs/generated/docs/class_w_s_client_a88daee9c4c5b497558c3d07591baa3e0_icgraph.map b/docs/generated/docs/class_w_s_client_a88daee9c4c5b497558c3d07591baa3e0_icgraph.map new file mode 100644 index 000000000..3da42be27 --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a88daee9c4c5b497558c3d07591baa3e0_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/class_w_s_client_a88daee9c4c5b497558c3d07591baa3e0_icgraph.md5 b/docs/generated/docs/class_w_s_client_a88daee9c4c5b497558c3d07591baa3e0_icgraph.md5 new file mode 100644 index 000000000..1b696f50e --- /dev/null +++ b/docs/generated/docs/class_w_s_client_a88daee9c4c5b497558c3d07591baa3e0_icgraph.md5 @@ -0,0 +1 @@ +0459fbf3d05a57402c3ef33fb5d52157 \ No newline at end of file diff --git a/docs/generated/docs/class_w_s_client_a88daee9c4c5b497558c3d07591baa3e0_icgraph.png b/docs/generated/docs/class_w_s_client_a88daee9c4c5b497558c3d07591baa3e0_icgraph.png new file mode 100644 index 000000000..86ffb7aee Binary files /dev/null and b/docs/generated/docs/class_w_s_client_a88daee9c4c5b497558c3d07591baa3e0_icgraph.png differ diff --git a/docs/generated/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.map b/docs/generated/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.map new file mode 100644 index 000000000..13067c32c --- /dev/null +++ b/docs/generated/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.md5 b/docs/generated/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.md5 new file mode 100644 index 000000000..00f9a8efa --- /dev/null +++ b/docs/generated/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.md5 @@ -0,0 +1 @@ +8aa87f1d6d26f99a95e24e1faa32058b \ No newline at end of file diff --git a/docs/generated/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.png b/docs/generated/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.png new file mode 100644 index 000000000..713e0c985 Binary files /dev/null and b/docs/generated/docs/class_w_s_client_ab6bcc3fb4cfe71aff3929480fab9bd5a_icgraph.png differ diff --git a/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.map b/docs/generated/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.map similarity index 100% rename from docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.map rename to docs/generated/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.map diff --git a/docs/generated/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.md5 b/docs/generated/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.md5 new file mode 100644 index 000000000..cbb93fd74 --- /dev/null +++ b/docs/generated/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.md5 @@ -0,0 +1 @@ +b5af83206ce7626ccd5a8d4aadeaf34a \ No newline at end of file diff --git a/docs/generated/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.png b/docs/generated/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.png new file mode 100644 index 000000000..9c9df5497 Binary files /dev/null and b/docs/generated/docs/class_w_s_client_ae110b10f209f55a82e2d700c8c9149a7_icgraph.png differ diff --git a/docs/generated/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.map b/docs/generated/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.map new file mode 100644 index 000000000..23dacacd8 --- /dev/null +++ b/docs/generated/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.md5 b/docs/generated/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.md5 new file mode 100644 index 000000000..1c1fb3399 --- /dev/null +++ b/docs/generated/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.md5 @@ -0,0 +1 @@ +1c610a77e28c7a6429f5a6139d16a47e \ No newline at end of file diff --git a/docs/generated/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.png b/docs/generated/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.png new file mode 100644 index 000000000..a97fb88aa Binary files /dev/null and b/docs/generated/docs/class_w_s_client_ae23657a7da08a9413a09e9054495904e_icgraph.png differ diff --git a/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.map b/docs/generated/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.map similarity index 100% rename from docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.map rename to docs/generated/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.map diff --git a/docs/generated/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.md5 b/docs/generated/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.md5 new file mode 100644 index 000000000..25d35b4e7 --- /dev/null +++ b/docs/generated/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.md5 @@ -0,0 +1 @@ +92fc44c5ec1b8291158165f053ce6711 \ No newline at end of file diff --git a/docs/generated/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.png b/docs/generated/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.png new file mode 100644 index 000000000..228f70561 Binary files /dev/null and b/docs/generated/docs/class_w_s_client_af921852d17f75f46999c2cc1442c4723_icgraph.png differ diff --git a/docs/generated/docs/class_wifi_signal-members.html b/docs/generated/docs/class_wifi_signal-members.html new file mode 100644 index 000000000..42a2ec762 --- /dev/null +++ b/docs/generated/docs/class_wifi_signal-members.html @@ -0,0 +1,129 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
WifiSignal Member List
+
+
+ +

This is the complete list of members for WifiSignal, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
attach(std::function< void()> observer)Observable
config_pathConfigurable
Configurable(String config_path)Configurable
connect_to(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connect_to(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(ValueConsumer< float > *consumer, uint8_t input_channel=0)ValueProducer< float >inline
connectTo(Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)ValueProducer< float >inline
Enable(uint8_t priority=0)Enable
enable() override finalWifiSignalvirtual
enable_all()Enablestatic
enableAll()Enableinlinestatic
get()ValueProducer< float >inlinevirtual
get_config_schema()Configurablevirtual
get_configuration(JsonObject &configObject)Configurablevirtual
get_enable_priority()Enableinline
get_sensors()Sensorinlinestatic
get_value_name()WifiSignalinline
load_configuration()Configurableprotectedvirtual
notify()Observable
NumericSensor(String config_path="")NumericSensor
outputValueProducer< float >protected
save_configuration()Configurablevirtual
Sensor(String config_path="")Sensor
set_configuration(const JsonObject &config)Configurablevirtual
set_priority(uint8_t priority)Enableinline
ValueProducer()ValueProducer< float >inline
WifiSignal()WifiSignalinline
+
+ + + + diff --git a/docs/generated/docs/class_wifi_signal.html b/docs/generated/docs/class_wifi_signal.html new file mode 100644 index 000000000..454784e06 --- /dev/null +++ b/docs/generated/docs/class_wifi_signal.html @@ -0,0 +1,284 @@ + + + + + + + +SensESP: WifiSignal Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
WifiSignal Class Reference
+
+
+ +

#include <system_info.h>

+
+Inheritance diagram for WifiSignal:
+
+
Inheritance graph
+ + + + + + + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 WifiSignal ()
 
void enable () override final
 
String get_value_name ()
 
- Public Member Functions inherited from NumericSensor
 NumericSensor (String config_path="")
 
- Public Member Functions inherited from Sensor
 Sensor (String config_path="")
 
- Public Member Functions inherited from Observable
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from Configurable
 Configurable (String config_path)
 
virtual void get_configuration (JsonObject &configObject)
 
virtual bool set_configuration (const JsonObject &config)
 
virtual String get_config_schema ()
 
virtual void save_configuration ()
 
- Public Member Functions inherited from Enable
 Enable (uint8_t priority=0)
 
const uint8_t get_enable_priority ()
 
void set_priority (uint8_t priority)
 
- Public Member Functions inherited from ValueProducer< float >
 ValueProducer ()
 
virtual const float & get ()
 
void connect_to (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connect_to (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
void connectTo (ValueConsumer< float > *consumer, uint8_t input_channel=0)
 
Transform< float, T2 > * connectTo (Transform< float, T2 > *consumer_producer, uint8_t input_channel=0)
 
+ + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from Sensor
static const std::set< Sensor * > & get_sensors ()
 
- Static Public Member Functions inherited from Enable
static void enable_all ()
 
static void enableAll ()
 
- Public Attributes inherited from Configurable
const String config_path
 
- Protected Member Functions inherited from Configurable
virtual void load_configuration ()
 
- Protected Attributes inherited from ValueProducer< float >
float output
 
+

Detailed Description

+
+

Definition at line 50 of file system_info.h.

+

Constructor & Destructor Documentation

+ +

◆ WifiSignal()

+ +
+
+ + + + + +
+ + + + + + + +
WifiSignal::WifiSignal ()
+
+inline
+
+ +

Definition at line 52 of file system_info.h.

+ +
+
+

Member Function Documentation

+ +

◆ enable()

+ +
+
+ + + + + +
+ + + + + + + +
void WifiSignal::enable ()
+
+finaloverridevirtual
+
+

Called during the initialization process. Override this method to add runtime initialization code to your class

+ +

Reimplemented from Enable.

+ +

Definition at line 59 of file system_info.cpp.

+ +
+
+ +

◆ get_value_name()

+ +
+
+ + + + + +
+ + + + + + + +
String WifiSignal::get_value_name ()
+
+inline
+
+ +

Definition at line 54 of file system_info.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/class_wifi_signal.js b/docs/generated/docs/class_wifi_signal.js new file mode 100644 index 000000000..2b8da74b1 --- /dev/null +++ b/docs/generated/docs/class_wifi_signal.js @@ -0,0 +1,6 @@ +var class_wifi_signal = +[ + [ "WifiSignal", "class_wifi_signal.html#ad471294e67baafcf42e0b17f5d0f00ec", null ], + [ "enable", "class_wifi_signal.html#ac326583e59ad78951c1ba2f56091e2b3", null ], + [ "get_value_name", "class_wifi_signal.html#af2eff535c0ed56dfe91f2c6a17078912", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/class_wifi_signal__inherit__graph.map b/docs/generated/docs/class_wifi_signal__inherit__graph.map new file mode 100644 index 000000000..13321bccb --- /dev/null +++ b/docs/generated/docs/class_wifi_signal__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/class_wifi_signal__inherit__graph.md5 b/docs/generated/docs/class_wifi_signal__inherit__graph.md5 new file mode 100644 index 000000000..09cf7508b --- /dev/null +++ b/docs/generated/docs/class_wifi_signal__inherit__graph.md5 @@ -0,0 +1 @@ +79dd13a415bce26ec87b20e4394cfe6f \ No newline at end of file diff --git a/docs/generated/docs/class_wifi_signal__inherit__graph.png b/docs/generated/docs/class_wifi_signal__inherit__graph.png new file mode 100644 index 000000000..cba9d9e46 Binary files /dev/null and b/docs/generated/docs/class_wifi_signal__inherit__graph.png differ diff --git a/docs/generated/docs/classes.html b/docs/generated/docs/classes.html new file mode 100644 index 000000000..0e2b4604b --- /dev/null +++ b/docs/generated/docs/classes.html @@ -0,0 +1,258 @@ + + + + + + + +SensESP: Class Index + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
a | b | c | d | e | f | g | h | i | l | m | n | o | p | r | s | t | u | v | w
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  a  
+
DigitalInputCounter   IntegerThreshold   
  p  
+
StringSensor   
DigitalInputValue   Integrator   SymmetricTransform   
ADS1x15   DigitalOutput   IPAddrDev   ParamInfo   SystemHz   
ADS1x15Value   
  e  
+
  l  
+
Position   
  t  
+
ADS1x15Voltage   PSTI030SentenceParser   
AnalogInput   Enable   LambdaTransform   PSTI032SentenceParser   ThresholdTransform   
AnalogVoltage   ENUVector   LedBlinker   PSTISentenceParser   TimeString   
AngleCorrection   
  f  
+
Linear   
  r  
+
Transform   
  b  
+
  m  
+
TransformBase   
FreeMem   Read9DOF   
  u  
+
BaseAnalogReader   Frequency   MAX31856Thermocouple   
  s  
+
BME280   
  g  
+
Median   UltrasonicDistance   
BME280Value   MovingAverage   CurveInterpolator::Sample   Uptime   
BMP280   GPGGASentenceParser   
  n  
+
SensESPApp   
  v  
+
BMP280Value   GPGLLSentenceParser   SensESPAppBuilder   
  c  
+
GPRMCSentenceParser   Networking   Sensor   ValueConsumer   
GPSInput   NMEAData   SensorNXP_FXOS8700_FXAS21002   ValueProducer   
ChangeFilter   
  h  
+
NMEAParser   SentenceParser   VoltageDividerR1   
Configurable   NumericSensor   SHT31   VoltageDividerR2   
CurveInterpolator   HTTPServer   NumericThreshold   SHT31Value   VoltageMultiplier   
  d  
+
Hysteresis   
  o  
+
SKDelta   
  w  
+
  i  
+
SKEmitter   
DallasTemperatureSensors   Observable   SKListener   WifiSignal   
Debounce   INA219   ObservableValue   SKOutput   WSClient   
Difference   INA219Value   OneWireTemperature   SKOutputTime   
DigitalInput   IntegerSensor   Orientation9DOF   SKValueListener   
+
a | b | c | d | e | f | g | h | i | l | m | n | o | p | r | s | t | u | v | w
+
+
+ + + + diff --git a/docs/closed.png b/docs/generated/docs/closed.png similarity index 100% rename from docs/closed.png rename to docs/generated/docs/closed.png diff --git a/docs/configurable_8cpp.html b/docs/generated/docs/configurable_8cpp.html similarity index 79% rename from docs/configurable_8cpp.html rename to docs/generated/docs/configurable_8cpp.html index 1b909b0ec..bc00e9ecc 100644 --- a/docs/configurable_8cpp.html +++ b/docs/generated/docs/configurable_8cpp.html @@ -3,7 +3,7 @@ - + SensESP: src/system/configurable.cpp File Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -93,23 +89,21 @@
configurable.cpp File Reference
-
#include "sensesp.h"
-#include "configurable.h"
-#include "FS.h"
+
#include "configurable.h"
+#include "sensesp.h"
Include dependency graph for configurable.cpp:
-
- - - - - - - - - - +
+ + + + + + + + +
@@ -133,7 +127,7 @@

-

Definition at line 10 of file configurable.cpp.

+

Definition at line 14 of file configurable.cpp.

@@ -143,9 +137,7 @@

diff --git a/docs/configurable_8cpp.js b/docs/generated/docs/configurable_8cpp.js similarity index 100% rename from docs/configurable_8cpp.js rename to docs/generated/docs/configurable_8cpp.js diff --git a/docs/generated/docs/configurable_8cpp__incl.map b/docs/generated/docs/configurable_8cpp__incl.map new file mode 100644 index 000000000..6ca3de2b5 --- /dev/null +++ b/docs/generated/docs/configurable_8cpp__incl.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/docs/generated/docs/configurable_8cpp__incl.md5 b/docs/generated/docs/configurable_8cpp__incl.md5 new file mode 100644 index 000000000..8c6028b02 --- /dev/null +++ b/docs/generated/docs/configurable_8cpp__incl.md5 @@ -0,0 +1 @@ +a84b9c5d65782f8ee2c4b2b1df5103a9 \ No newline at end of file diff --git a/docs/generated/docs/configurable_8cpp__incl.png b/docs/generated/docs/configurable_8cpp__incl.png new file mode 100644 index 000000000..08779131c Binary files /dev/null and b/docs/generated/docs/configurable_8cpp__incl.png differ diff --git a/docs/generated/docs/configurable_8cpp_source.html b/docs/generated/docs/configurable_8cpp_source.html new file mode 100644 index 000000000..05ed561e2 --- /dev/null +++ b/docs/generated/docs/configurable_8cpp_source.html @@ -0,0 +1,187 @@ + + + + + + + +SensESP: src/system/configurable.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
configurable.cpp
+
+
+Go to the documentation of this file.
1 #include "configurable.h"
+
2 
+
3 #include "sensesp.h"
+
4 
+
5 #ifdef ESP8266
+
6 #include "FS.h"
+
7 #elif defined(ESP32)
+
8 #include "SPIFFS.h"
+
9 #endif
+
10 
+
11 // Define a global configurable map. Rationale for a global variable:
+
12 // Every Configurable with an id gets registered, and carrying an object
+
13 // reference around would unnecessarily reduce readability of the code.
+
14 std::map<String, Configurable*> configurables;
+
15 
+
16 Configurable::Configurable(String config_path = "") : config_path{config_path} {
+
17  if (config_path != "") {
+
18  auto it = configurables.find(config_path);
+
19  if (it != configurables.end()) {
+
20  debugW("WARNING: Overriding id %s", config_path.c_str());
+
21  }
+
22  configurables[config_path] = this;
+
23  }
+
24 }
+
25 
+
26 void Configurable::get_configuration(JsonObject& doc) {
+
27  debugW("WARNING: get_configuration not defined");
+
28 }
+
29 
+
30 // Sets and saves the configuration
+
31 bool Configurable::set_configuration(const JsonObject& config) {
+
32  debugW("WARNING: set_configuration not defined for this Class");
+
33  return false;
+
34 }
+
35 
+
36 String Configurable::get_config_schema() { return "{}"; }
+
37 
+ +
39  if (config_path == "") {
+
40  debugI("Not loading configuration: no config_path specified: %s",
+
41  config_path.c_str());
+
42  return;
+
43  }
+
44  if (!SPIFFS.exists(config_path)) {
+
45  debugI("Not loading configuration: file does not exist: %s",
+
46  config_path.c_str());
+
47  return;
+
48  }
+
49 
+
50  File f = SPIFFS.open(config_path, "r");
+
51  DynamicJsonDocument jsonDoc(
+
52  1024); // TODO: set the size of ALL DynamicJsonDocuments throughout the
+
53  // project
+
54  auto error = deserializeJson(jsonDoc, f);
+
55  if (error) {
+
56  debugW("WARNING: Could not parse configuration for %s",
+
57  config_path.c_str());
+
58  return;
+
59  } //
+
60  if (!set_configuration(jsonDoc.as<JsonObject>())) {
+
61  debugW("WARNING: Could not set configuration for %s", config_path.c_str());
+
62  }
+
63  f.close();
+
64 }
+
65 
+ +
67  if (config_path == "") {
+
68  debugI("WARNING: Could not save configuration (config_path not set)");
+
69  }
+
70  DynamicJsonDocument jsonDoc(1024);
+
71  JsonObject obj = jsonDoc.createNestedObject("root");
+
72  get_configuration(obj);
+
73  File f = SPIFFS.open(config_path, "w");
+
74  serializeJson(obj, f);
+
75  f.close();
+
76 }
+
+
+
Configurable(String config_path)
+
virtual void save_configuration()
+
virtual bool set_configuration(const JsonObject &config)
+
virtual void get_configuration(JsonObject &configObject)
+
virtual void load_configuration()
+
virtual String get_config_schema()
+
const String config_path
Definition: configurable.h:31
+ + +
std::map< String, Configurable * > configurables
+
@ error
Definition: nmea_parser.cpp:21
+ + + + diff --git a/docs/generated/docs/configurable_8h.html b/docs/generated/docs/configurable_8h.html new file mode 100644 index 000000000..f520a51c4 --- /dev/null +++ b/docs/generated/docs/configurable_8h.html @@ -0,0 +1,212 @@ + + + + + + + +SensESP: src/system/configurable.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
configurable.h File Reference
+
+
+
#include <ArduinoJson.h>
+#include <map>
+#include "Arduino.h"
+
+Include dependency graph for configurable.h:
+
+
+ + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  Configurable
 
+ + + +

+Variables

std::map< String, Configurable * > configurables
 
+

Variable Documentation

+ +

◆ configurables

+ +
+
+ + + + + +
+ + + + +
std::map<String, Configurable*> configurables
+
+extern
+
+ +

Definition at line 14 of file configurable.cpp.

+ +
+
+
+
+ + + + diff --git a/docs/configurable_8h.js b/docs/generated/docs/configurable_8h.js similarity index 100% rename from docs/configurable_8h.js rename to docs/generated/docs/configurable_8h.js diff --git a/docs/generated/docs/configurable_8h__dep__incl.map b/docs/generated/docs/configurable_8h__dep__incl.map new file mode 100644 index 000000000..21c2e2ca3 --- /dev/null +++ b/docs/generated/docs/configurable_8h__dep__incl.map @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/configurable_8h__dep__incl.md5 b/docs/generated/docs/configurable_8h__dep__incl.md5 new file mode 100644 index 000000000..344b2da61 --- /dev/null +++ b/docs/generated/docs/configurable_8h__dep__incl.md5 @@ -0,0 +1 @@ +09bb17bf53ed80ae254862e337a5bc69 \ No newline at end of file diff --git a/docs/generated/docs/configurable_8h__dep__incl.png b/docs/generated/docs/configurable_8h__dep__incl.png new file mode 100644 index 000000000..9ddc6ff45 Binary files /dev/null and b/docs/generated/docs/configurable_8h__dep__incl.png differ diff --git a/docs/generated/docs/configurable_8h__incl.map b/docs/generated/docs/configurable_8h__incl.map new file mode 100644 index 000000000..50e36535e --- /dev/null +++ b/docs/generated/docs/configurable_8h__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/configurable_8h__incl.md5 b/docs/generated/docs/configurable_8h__incl.md5 new file mode 100644 index 000000000..7091917df --- /dev/null +++ b/docs/generated/docs/configurable_8h__incl.md5 @@ -0,0 +1 @@ +cb1b2275973e49e0408676e710a2b694 \ No newline at end of file diff --git a/docs/generated/docs/configurable_8h__incl.png b/docs/generated/docs/configurable_8h__incl.png new file mode 100644 index 000000000..67a51b533 Binary files /dev/null and b/docs/generated/docs/configurable_8h__incl.png differ diff --git a/docs/generated/docs/configurable_8h_source.html b/docs/generated/docs/configurable_8h_source.html new file mode 100644 index 000000000..0239cc454 --- /dev/null +++ b/docs/generated/docs/configurable_8h_source.html @@ -0,0 +1,139 @@ + + + + + + + +SensESP: src/system/configurable.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
configurable.h
+
+
+Go to the documentation of this file.
1 #ifndef _configurable_H_
+
2 #define _configurable_H_
+
3 
+
4 #include <ArduinoJson.h>
+
5 
+
6 #include <map>
+
7 
+
8 #include "Arduino.h"
+
9 
+
15 class Configurable {
+
16  public:
+
29  Configurable(String config_path);
+
30 
+
31  const String config_path;
+
32 
+
39  virtual void get_configuration(JsonObject& configObject);
+
40 
+
45  virtual bool set_configuration(const JsonObject& config);
+
46 
+
54  virtual String get_config_schema();
+
55 
+
60  virtual void save_configuration();
+
61 
+
62  protected:
+
67  virtual void load_configuration();
+
68 };
+
69 
+
70 extern std::map<String, Configurable*> configurables;
+
71 
+
72 #endif
+
+
+
Configurable(String config_path)
+
virtual void save_configuration()
+
virtual bool set_configuration(const JsonObject &config)
+
virtual void get_configuration(JsonObject &configObject)
+
virtual void load_configuration()
+
virtual String get_config_schema()
+
const String config_path
Definition: configurable.h:31
+
std::map< String, Configurable * > configurables
+ + + + + diff --git a/docs/generated/docs/curveinterpolator_8cpp.html b/docs/generated/docs/curveinterpolator_8cpp.html new file mode 100644 index 000000000..20d843e56 --- /dev/null +++ b/docs/generated/docs/curveinterpolator_8cpp.html @@ -0,0 +1,131 @@ + + + + + + + +SensESP: src/transforms/curveinterpolator.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
curveinterpolator.cpp File Reference
+
+
+
#include "curveinterpolator.h"
+#include <RemoteDebug.h>
+
+Include dependency graph for curveinterpolator.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/generated/docs/curveinterpolator_8cpp__incl.map b/docs/generated/docs/curveinterpolator_8cpp__incl.map new file mode 100644 index 000000000..d346eae69 --- /dev/null +++ b/docs/generated/docs/curveinterpolator_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/curveinterpolator_8cpp__incl.md5 b/docs/generated/docs/curveinterpolator_8cpp__incl.md5 new file mode 100644 index 000000000..5162d2821 --- /dev/null +++ b/docs/generated/docs/curveinterpolator_8cpp__incl.md5 @@ -0,0 +1 @@ +10d981b9336d4a738d59920ea6182227 \ No newline at end of file diff --git a/docs/generated/docs/curveinterpolator_8cpp__incl.png b/docs/generated/docs/curveinterpolator_8cpp__incl.png new file mode 100644 index 000000000..20efa6639 Binary files /dev/null and b/docs/generated/docs/curveinterpolator_8cpp__incl.png differ diff --git a/docs/generated/docs/curveinterpolator_8cpp_source.html b/docs/generated/docs/curveinterpolator_8cpp_source.html new file mode 100644 index 000000000..5a7f5753c --- /dev/null +++ b/docs/generated/docs/curveinterpolator_8cpp_source.html @@ -0,0 +1,231 @@ + + + + + + + +SensESP: src/transforms/curveinterpolator.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
curveinterpolator.cpp
+
+
+Go to the documentation of this file.
1 #include "curveinterpolator.h"
+
2 
+
3 #include <RemoteDebug.h>
+
4 
+ +
6 
+
7 CurveInterpolator::Sample::Sample(float input, float output)
+
8  : input{input}, output{output} {}
+
9 
+ +
11  : input{obj["input"]}, output{obj["output"]} {}
+
12 
+
13 CurveInterpolator::CurveInterpolator(std::set<Sample>* defaults,
+
14  String config_path)
+
15  : NumericTransform(config_path) {
+
16  // Load default values if no configuration present...
+
17  if (defaults != NULL) {
+
18  samples.clear();
+
19  samples = *defaults;
+
20  }
+
21 
+
22  load_configuration();
+
23 }
+
24 
+
25 void CurveInterpolator::set_input(float input, uint8_t inputChannel) {
+
26  float x0 = 0.0;
+
27  float y0 = 0.0;
+
28 
+
29  std::set<Sample>::iterator it = samples.begin();
+
30 
+
31  while (it != samples.end()) {
+
32  auto& sample = *it;
+
33 
+
34  if (input > sample.input) {
+
35  x0 = sample.input;
+
36  y0 = sample.output;
+
37  } else {
+
38  break;
+
39  }
+
40 
+
41  it++;
+
42  }
+
43 
+
44  if (it != samples.end()) {
+
45  // We found our range. "input" is between
+
46  // minInput and it->input. CurveInterpolator the result
+
47  Sample max = *it;
+
48  float x1 = max.input;
+
49  float y1 = max.output;
+
50 
+
51  output = (y0 * (x1 - input) + y1 * (input - x0)) / (x1 - x0);
+
52  } else {
+
53  // Hit the end of the table with no match.
+
54  output = 9999.9;
+
55  // debugW("Could not find sample interval for input %0f", input);
+
56  }
+
57 
+
58  notify();
+
59 }
+
60 
+
61 void CurveInterpolator::get_configuration(JsonObject& root) {
+
62  JsonArray jSamples = root.createNestedArray("samples");
+
63  for (auto& sample : samples) {
+
64  auto entry = jSamples.createNestedObject();
+
65  entry["input"] = sample.input;
+
66  entry["output"] = sample.output;
+
67  jSamples.add(entry);
+
68  }
+
69 }
+
70 
+
71 static const char SCHEMA[] PROGMEM = R"({
+
72  "type": "object",
+
73  "properties": {
+
74  "samples": { "title": "Sample values",
+
75  "type": "array",
+
76  "items": { "title": "Sample",
+
77  "type": "object",
+
78  "properties": {
+
79  "input": { "type": "number" },
+
80  "output": { "type": "number" }
+
81  }}}
+
82  }
+
83  })";
+
84 
+
85 String CurveInterpolator::get_config_schema() { return FPSTR(SCHEMA); }
+
86 
+
87 bool CurveInterpolator::set_configuration(const JsonObject& config) {
+
88  String expected[] = {"samples"};
+
89  for (auto str : expected) {
+
90  if (!config.containsKey(str)) {
+
91  debugE(
+
92  "Can not set CurveInterpolator configuration: missing json field "
+
93  "%s\n",
+
94  str.c_str());
+
95  return false;
+
96  }
+
97  }
+
98 
+
99  JsonArray arr = config["samples"];
+
100  if (arr.size() > 0) {
+
101  samples.clear();
+
102  for (auto jentry : arr) {
+
103  auto jObject = jentry.as<JsonObject>();
+
104  Sample sample(jObject);
+
105  samples.insert(sample);
+
106  }
+
107  }
+
108 
+
109  return true;
+
110 }
+
111 
+
112 void CurveInterpolator::clear_samples() { samples.clear(); }
+
113 
+ +
115  Sample* pSampleCopy = new Sample(sample);
+
116  samples.insert(*pSampleCopy);
+
117 }
+
+
+ + +
void set_input(float input, uint8_t input_channel=0) override final
+ +
virtual String get_config_schema() override
+
const char PAGE_index[] PROGMEM
Definition: index.h:2
+ +
CurveInterpolator(std::set< Sample > *defaults=NULL, String config_path="")
+
virtual void get_configuration(JsonObject &doc) override
+ +
virtual bool set_configuration(const JsonObject &config) override
+ +
void add_sample(const Sample &new_sample)
+ + + + + diff --git a/docs/generated/docs/curveinterpolator_8h.html b/docs/generated/docs/curveinterpolator_8h.html new file mode 100644 index 000000000..a1f971311 --- /dev/null +++ b/docs/generated/docs/curveinterpolator_8h.html @@ -0,0 +1,148 @@ + + + + + + + +SensESP: src/transforms/curveinterpolator.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
curveinterpolator.h File Reference
+
+
+
+Include dependency graph for curveinterpolator.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Classes

class  CurveInterpolator
 
class  CurveInterpolator::Sample
 
+
+
+ + + + diff --git a/docs/curveinterpolator_8h__dep__incl.map b/docs/generated/docs/curveinterpolator_8h__dep__incl.map similarity index 100% rename from docs/curveinterpolator_8h__dep__incl.map rename to docs/generated/docs/curveinterpolator_8h__dep__incl.map diff --git a/docs/generated/docs/curveinterpolator_8h__dep__incl.md5 b/docs/generated/docs/curveinterpolator_8h__dep__incl.md5 new file mode 100644 index 000000000..7d0e6ca48 --- /dev/null +++ b/docs/generated/docs/curveinterpolator_8h__dep__incl.md5 @@ -0,0 +1 @@ +87fbd64a91ce1ff9c31163831d68023d \ No newline at end of file diff --git a/docs/generated/docs/curveinterpolator_8h__dep__incl.png b/docs/generated/docs/curveinterpolator_8h__dep__incl.png new file mode 100644 index 000000000..5a322742e Binary files /dev/null and b/docs/generated/docs/curveinterpolator_8h__dep__incl.png differ diff --git a/docs/generated/docs/curveinterpolator_8h__incl.map b/docs/generated/docs/curveinterpolator_8h__incl.map new file mode 100644 index 000000000..1ab726efd --- /dev/null +++ b/docs/generated/docs/curveinterpolator_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/curveinterpolator_8h__incl.md5 b/docs/generated/docs/curveinterpolator_8h__incl.md5 new file mode 100644 index 000000000..8e4f84ee7 --- /dev/null +++ b/docs/generated/docs/curveinterpolator_8h__incl.md5 @@ -0,0 +1 @@ +40ff444c4bdd3edd5ed3889fe6bc646c \ No newline at end of file diff --git a/docs/generated/docs/curveinterpolator_8h__incl.png b/docs/generated/docs/curveinterpolator_8h__incl.png new file mode 100644 index 000000000..58b014742 Binary files /dev/null and b/docs/generated/docs/curveinterpolator_8h__incl.png differ diff --git a/docs/generated/docs/curveinterpolator_8h_source.html b/docs/generated/docs/curveinterpolator_8h_source.html new file mode 100644 index 000000000..edb393c47 --- /dev/null +++ b/docs/generated/docs/curveinterpolator_8h_source.html @@ -0,0 +1,171 @@ + + + + + + + +SensESP: src/transforms/curveinterpolator.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
curveinterpolator.h
+
+
+Go to the documentation of this file.
1 #ifndef _CurveInterpolator_H_
+
2 #define _CurveInterpolator_H_
+
3 
+
4 #include "transforms/transform.h"
+
5 
+ +
15  public:
+
16  class Sample {
+
17  public:
+
18  float input;
+
19  float output;
+
20 
+
21  Sample();
+
22  Sample(float input, float output);
+
23  Sample(JsonObject& obj);
+
24 
+
25  friend bool operator<(const Sample& lhs, const Sample& rhs) {
+
26  return lhs.input < rhs.input;
+
27  }
+
28  };
+
29 
+
30  public:
+
31  CurveInterpolator(std::set<Sample>* defaults = NULL, String config_path = "");
+
32 
+
33  // Set and retrieve the transformed value
+
34  void set_input(float input, uint8_t input_channel = 0) override final;
+
35 
+
36  // For reading and writing the configuration of this transformation
+
37  virtual void get_configuration(JsonObject& doc) override;
+
38  virtual bool set_configuration(const JsonObject& config) override;
+
39  virtual String get_config_schema() override;
+
40 
+
41  // For manually adding sample points
+
42  void clear_samples();
+
43  // FIXME: Uncomment the following once the PIO Xtensa toolchain is updated
+
44  // [[deprecated("Use clear_samples() instead.")]]
+
45  void clearSamples() {
+
46  debugW("Use clear_samples() instead.");
+
47  clear_samples();
+
48  }
+
49  void add_sample(const Sample& new_sample);
+
50  // FIXME: Uncomment the following once the PIO Xtensa toolchain is updated
+
51  // [[deprecated("Use add_sample(...) instead.")]]
+
52  void addSample(
+
53  const Sample& new_sample) {
+
54  debugW("Use add_sample(...) instead");
+
55  add_sample(new_sample);
+
56  }
+
57 
+
58  private:
+
59  std::set<Sample> samples;
+
60 };
+
61 
+
62 #endif
+
+
+ + +
void set_input(float input, uint8_t input_channel=0) override final
+ +
virtual String get_config_schema() override
+ +
CurveInterpolator(std::set< Sample > *defaults=NULL, String config_path="")
+ +
friend bool operator<(const Sample &lhs, const Sample &rhs)
+
virtual void get_configuration(JsonObject &doc) override
+ +
virtual bool set_configuration(const JsonObject &config) override
+ + +
void addSample(const Sample &new_sample)
+
void add_sample(const Sample &new_sample)
+ + + + + diff --git a/docs/generated/docs/debounce_8cpp.html b/docs/generated/docs/debounce_8cpp.html new file mode 100644 index 000000000..6dbf3644d --- /dev/null +++ b/docs/generated/docs/debounce_8cpp.html @@ -0,0 +1,130 @@ + + + + + + + +SensESP: src/transforms/debounce.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
debounce.cpp File Reference
+
+
+
#include "debounce.h"
+
+Include dependency graph for debounce.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/generated/docs/debounce_8cpp__incl.map b/docs/generated/docs/debounce_8cpp__incl.map new file mode 100644 index 000000000..e067b5562 --- /dev/null +++ b/docs/generated/docs/debounce_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/debounce_8cpp__incl.md5 b/docs/generated/docs/debounce_8cpp__incl.md5 new file mode 100644 index 000000000..fcef41cb2 --- /dev/null +++ b/docs/generated/docs/debounce_8cpp__incl.md5 @@ -0,0 +1 @@ +2102d3f1278d59a1869981000d45e0ae \ No newline at end of file diff --git a/docs/generated/docs/debounce_8cpp__incl.png b/docs/generated/docs/debounce_8cpp__incl.png new file mode 100644 index 000000000..6e3d89f0b Binary files /dev/null and b/docs/generated/docs/debounce_8cpp__incl.png differ diff --git a/docs/generated/docs/debounce_8cpp_source.html b/docs/generated/docs/debounce_8cpp_source.html new file mode 100644 index 000000000..42802fe7a --- /dev/null +++ b/docs/generated/docs/debounce_8cpp_source.html @@ -0,0 +1,121 @@ + + + + + + + +SensESP: src/transforms/debounce.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
debounce.cpp
+
+
+Go to the documentation of this file.
1 #include "debounce.h"
+
2 
+
3 Debounce::Debounce(int ms_min_delay, String config_path)
+
4  : BooleanTransform(config_path), ms_min_delay{ms_min_delay} {
+
5  last_time = millis();
+
6 }
+
7 
+
8 void Debounce::set_input(bool newValue, uint8_t inputChannel) {
+
9  int elapsed = millis() - last_time;
+
10  if (newValue != output || elapsed > ms_min_delay) {
+
11  output = newValue;
+
12  last_time = millis();
+
13  notify();
+
14  }
+
15 }
+
+
+
int ms_min_delay
Definition: debounce.h:19
+ +
virtual void set_input(bool new_value, uint8_t input_channel=0) override
Definition: debounce.cpp:8
+
unsigned long last_time
Definition: debounce.h:18
+
Debounce(int ms_min_delay=200, String config_path="")
Definition: debounce.cpp:3
+ + + + + diff --git a/docs/generated/docs/debounce_8h.html b/docs/generated/docs/debounce_8h.html new file mode 100644 index 000000000..e066dea55 --- /dev/null +++ b/docs/generated/docs/debounce_8h.html @@ -0,0 +1,146 @@ + + + + + + + +SensESP: src/transforms/debounce.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
debounce.h File Reference
+
+
+
+Include dependency graph for debounce.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  Debounce
 
+
+
+ + + + diff --git a/docs/debounce_8h__dep__incl.map b/docs/generated/docs/debounce_8h__dep__incl.map similarity index 100% rename from docs/debounce_8h__dep__incl.map rename to docs/generated/docs/debounce_8h__dep__incl.map diff --git a/docs/generated/docs/debounce_8h__dep__incl.md5 b/docs/generated/docs/debounce_8h__dep__incl.md5 new file mode 100644 index 000000000..29e58bb28 --- /dev/null +++ b/docs/generated/docs/debounce_8h__dep__incl.md5 @@ -0,0 +1 @@ +ba09d74ee8bf626dcf30935e5dbc50ba \ No newline at end of file diff --git a/docs/generated/docs/debounce_8h__dep__incl.png b/docs/generated/docs/debounce_8h__dep__incl.png new file mode 100644 index 000000000..329ba7c66 Binary files /dev/null and b/docs/generated/docs/debounce_8h__dep__incl.png differ diff --git a/docs/generated/docs/debounce_8h__incl.map b/docs/generated/docs/debounce_8h__incl.map new file mode 100644 index 000000000..bdecc0f42 --- /dev/null +++ b/docs/generated/docs/debounce_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/debounce_8h__incl.md5 b/docs/generated/docs/debounce_8h__incl.md5 new file mode 100644 index 000000000..9d05c9476 --- /dev/null +++ b/docs/generated/docs/debounce_8h__incl.md5 @@ -0,0 +1 @@ +f09fe01a9cafdfcdcffa0a674b9e8b92 \ No newline at end of file diff --git a/docs/generated/docs/debounce_8h__incl.png b/docs/generated/docs/debounce_8h__incl.png new file mode 100644 index 000000000..1c1889b09 Binary files /dev/null and b/docs/generated/docs/debounce_8h__incl.png differ diff --git a/docs/generated/docs/debounce_8h_source.html b/docs/generated/docs/debounce_8h_source.html new file mode 100644 index 000000000..933c4e873 --- /dev/null +++ b/docs/generated/docs/debounce_8h_source.html @@ -0,0 +1,124 @@ + + + + + + + +SensESP: src/transforms/debounce.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
debounce.h
+
+
+Go to the documentation of this file.
1 #ifndef debounce_H
+
2 #define debounce_H
+
3 
+
4 #include "transforms/transform.h"
+
5 
+
11 class Debounce : public BooleanTransform {
+
12  public:
+
13  Debounce(int ms_min_delay = 200, String config_path = "");
+
14 
+
15  virtual void set_input(bool new_value, uint8_t input_channel = 0) override;
+
16 
+
17  protected:
+
18  unsigned long last_time;
+ +
20 };
+
21 
+
22 #endif
+
+
+
int ms_min_delay
Definition: debounce.h:19
+ +
virtual void set_input(bool new_value, uint8_t input_channel=0) override
Definition: debounce.cpp:8
+
unsigned long last_time
Definition: debounce.h:18
+ + +
Debounce(int ms_min_delay=200, String config_path="")
Definition: debounce.cpp:3
+ + + + diff --git a/docs/generated/docs/difference_8cpp.html b/docs/generated/docs/difference_8cpp.html new file mode 100644 index 000000000..75df778bc --- /dev/null +++ b/docs/generated/docs/difference_8cpp.html @@ -0,0 +1,130 @@ + + + + + + + +SensESP: src/transforms/difference.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
difference.cpp File Reference
+
+
+
#include "difference.h"
+
+Include dependency graph for difference.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/generated/docs/difference_8cpp__incl.map b/docs/generated/docs/difference_8cpp__incl.map new file mode 100644 index 000000000..03adc6043 --- /dev/null +++ b/docs/generated/docs/difference_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/difference_8cpp__incl.md5 b/docs/generated/docs/difference_8cpp__incl.md5 new file mode 100644 index 000000000..96c783ffe --- /dev/null +++ b/docs/generated/docs/difference_8cpp__incl.md5 @@ -0,0 +1 @@ +061043bbcda3d521e2c7775be8a8fa26 \ No newline at end of file diff --git a/docs/generated/docs/difference_8cpp__incl.png b/docs/generated/docs/difference_8cpp__incl.png new file mode 100644 index 000000000..a735e105f Binary files /dev/null and b/docs/generated/docs/difference_8cpp__incl.png differ diff --git a/docs/generated/docs/difference_8cpp_source.html b/docs/generated/docs/difference_8cpp_source.html new file mode 100644 index 000000000..aa03c98f5 --- /dev/null +++ b/docs/generated/docs/difference_8cpp_source.html @@ -0,0 +1,155 @@ + + + + + + + +SensESP: src/transforms/difference.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
difference.cpp
+
+
+Go to the documentation of this file.
1 #include "difference.h"
+
2 
+
3 // Difference
+
4 
+
5 Difference::Difference(float k1, float k2, String config_path)
+
6  : NumericTransform(config_path), k1{k1}, k2{k2} {
+
7  load_configuration();
+
8 }
+
9 
+
10 void Difference::set_input(float input, uint8_t inputChannel) {
+
11  inputs[inputChannel] = input;
+
12  received |= 1 << inputChannel;
+
13  if (received == 0b11) {
+
14  output = k1 * inputs[0] - k2 * inputs[1];
+
15  received = 0;
+
16  notify();
+
17  }
+
18 }
+
19 
+
20 void Difference::get_configuration(JsonObject& root) {
+
21  root["k1"] = k1;
+
22  root["k2"] = k2;
+
23  root["value"] = output;
+
24 }
+
25 
+
26 static const char SCHEMA[] PROGMEM = R"({
+
27  "type": "object",
+
28  "properties": {
+
29  "k1": { "title": "Input #1 multiplier", "type": "number" },
+
30  "k2": { "title": "Input #2 multiplier", "type": "number" },
+
31  "value": { "title": "Last value", "type" : "number", "readOnly": true }
+
32  }
+
33  })";
+
34 
+
35 String Difference::get_config_schema() { return FPSTR(SCHEMA); }
+
36 
+
37 bool Difference::set_configuration(const JsonObject& config) {
+
38  String expected[] = {"k1", "k2"};
+
39  for (auto str : expected) {
+
40  if (!config.containsKey(str)) {
+
41  return false;
+
42  }
+
43  }
+
44  k1 = config["k1"];
+
45  k2 = config["k2"];
+
46  return true;
+
47 }
+
+
+
virtual bool set_configuration(const JsonObject &config) override
Definition: difference.cpp:37
+
virtual String get_config_schema() override
Definition: difference.cpp:35
+ +
const char PAGE_index[] PROGMEM
Definition: index.h:2
+ +
virtual void set_input(float input, uint8_t inputChannel) override
Definition: difference.cpp:10
+
virtual void get_configuration(JsonObject &doc) override
Definition: difference.cpp:20
+
Difference(float k1, float k2, String config_path="")
Definition: difference.cpp:5
+ + + + diff --git a/docs/generated/docs/difference_8h.html b/docs/generated/docs/difference_8h.html new file mode 100644 index 000000000..1ef5b27b9 --- /dev/null +++ b/docs/generated/docs/difference_8h.html @@ -0,0 +1,148 @@ + + + + + + + +SensESP: src/transforms/difference.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
difference.h File Reference
+
+
+
#include "transform.h"
+
+Include dependency graph for difference.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  Difference
 
+
+
+ + + + diff --git a/docs/difference_8h__dep__incl.map b/docs/generated/docs/difference_8h__dep__incl.map similarity index 100% rename from docs/difference_8h__dep__incl.map rename to docs/generated/docs/difference_8h__dep__incl.map diff --git a/docs/generated/docs/difference_8h__dep__incl.md5 b/docs/generated/docs/difference_8h__dep__incl.md5 new file mode 100644 index 000000000..1f5ff8b10 --- /dev/null +++ b/docs/generated/docs/difference_8h__dep__incl.md5 @@ -0,0 +1 @@ +7565d69226d1a90c5967ea392fce831c \ No newline at end of file diff --git a/docs/generated/docs/difference_8h__dep__incl.png b/docs/generated/docs/difference_8h__dep__incl.png new file mode 100644 index 000000000..30afd6bd0 Binary files /dev/null and b/docs/generated/docs/difference_8h__dep__incl.png differ diff --git a/docs/generated/docs/difference_8h__incl.map b/docs/generated/docs/difference_8h__incl.map new file mode 100644 index 000000000..f1f70f228 --- /dev/null +++ b/docs/generated/docs/difference_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/difference_8h__incl.md5 b/docs/generated/docs/difference_8h__incl.md5 new file mode 100644 index 000000000..1c7debb56 --- /dev/null +++ b/docs/generated/docs/difference_8h__incl.md5 @@ -0,0 +1 @@ +c978e83a173ab23032dd800a6bb1f0af \ No newline at end of file diff --git a/docs/generated/docs/difference_8h__incl.png b/docs/generated/docs/difference_8h__incl.png new file mode 100644 index 000000000..4828dd08d Binary files /dev/null and b/docs/generated/docs/difference_8h__incl.png differ diff --git a/docs/generated/docs/difference_8h_source.html b/docs/generated/docs/difference_8h_source.html new file mode 100644 index 000000000..f7adbafc0 --- /dev/null +++ b/docs/generated/docs/difference_8h_source.html @@ -0,0 +1,130 @@ + + + + + + + +SensESP: src/transforms/difference.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
difference.h
+
+
+Go to the documentation of this file.
1 #ifndef _difference_H_
+
2 #define _difference_H_
+
3 
+
4 #include "transform.h"
+
5 
+
6 // y = k1 * x1 - k2 * x2
+
7 class Difference : public NumericTransform {
+
8  public:
+
9  Difference(float k1, float k2, String config_path = "");
+
10  virtual void set_input(float input, uint8_t inputChannel) override;
+
11  virtual void get_configuration(JsonObject& doc) override;
+
12  virtual bool set_configuration(const JsonObject& config) override;
+
13  virtual String get_config_schema() override;
+
14 
+
15  private:
+
16  uint8_t received = 0;
+
17  float inputs[2];
+
18  float k1;
+
19  float k2;
+
20 };
+
21 
+
22 #endif
+
+
+
virtual bool set_configuration(const JsonObject &config) override
Definition: difference.cpp:37
+
virtual String get_config_schema() override
Definition: difference.cpp:35
+ +
virtual void set_input(float input, uint8_t inputChannel) override
Definition: difference.cpp:10
+
virtual void get_configuration(JsonObject &doc) override
Definition: difference.cpp:20
+ + +
Difference(float k1, float k2, String config_path="")
Definition: difference.cpp:5
+ + + + diff --git a/docs/generated/docs/digital__input_8cpp.html b/docs/generated/docs/digital__input_8cpp.html new file mode 100644 index 000000000..ea3619c25 --- /dev/null +++ b/docs/generated/docs/digital__input_8cpp.html @@ -0,0 +1,133 @@ + + + + + + + +SensESP: src/sensors/digital_input.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
digital_input.cpp File Reference
+
+
+
#include "digital_input.h"
+#include <FunctionalInterrupt.h>
+#include "sensesp.h"
+
+Include dependency graph for digital_input.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/generated/docs/digital__input_8cpp__incl.map b/docs/generated/docs/digital__input_8cpp__incl.map new file mode 100644 index 000000000..7e700c766 --- /dev/null +++ b/docs/generated/docs/digital__input_8cpp__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/digital__input_8cpp__incl.md5 b/docs/generated/docs/digital__input_8cpp__incl.md5 new file mode 100644 index 000000000..866e56538 --- /dev/null +++ b/docs/generated/docs/digital__input_8cpp__incl.md5 @@ -0,0 +1 @@ +3c37d58daaaf2f0f174116fb75827664 \ No newline at end of file diff --git a/docs/generated/docs/digital__input_8cpp__incl.png b/docs/generated/docs/digital__input_8cpp__incl.png new file mode 100644 index 000000000..e8a5f1835 Binary files /dev/null and b/docs/generated/docs/digital__input_8cpp__incl.png differ diff --git a/docs/generated/docs/digital__input_8cpp_source.html b/docs/generated/docs/digital__input_8cpp_source.html new file mode 100644 index 000000000..b5839a29b --- /dev/null +++ b/docs/generated/docs/digital__input_8cpp_source.html @@ -0,0 +1,215 @@ + + + + + + + +SensESP: src/sensors/digital_input.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
digital_input.cpp
+
+
+Go to the documentation of this file.
1 #include "digital_input.h"
+
2 
+
3 #include <FunctionalInterrupt.h>
+
4 
+
5 #include "sensesp.h"
+
6 
+
7 DigitalInput::DigitalInput(uint8_t pin, int pin_mode, int interrupt_type,
+
8  String config_path)
+
9  : Sensor(config_path), pin{pin}, interrupt_type{interrupt_type} {
+
10  pinMode(pin, pin_mode);
+
11 }
+
12 
+
13 DigitalInputValue::DigitalInputValue(uint8_t pin, int pin_mode,
+
14  int interrupt_type, int read_delay,
+
15  String config_path)
+ + +
18  read_delay{read_delay} {}
+
19 
+ +
21  app.onRepeat(read_delay, [this]() {
+
22  output = digitalRead(pin);
+
23  notify();
+
24  });
+
25 }
+
26 
+
27 void DigitalInputValue::get_configuration(JsonObject& root) {
+
28  root["read_delay"] = read_delay;
+
29  root["value"] = output;
+
30 }
+
31 
+
32 static const char SCHEMA2[] PROGMEM = R"###({
+
33  "type": "object",
+
34  "properties": {
+
35  "read_delay": { "title": "Read delay", "type": "number", "description": "The time, in milliseconds, between each read of the input" },
+
36  "value": { "title": "Last value", "type" : "number", "readOnly": true }
+
37  }
+
38  })###";
+
39 
+
40 String DigitalInputValue::get_config_schema() { return FPSTR(SCHEMA2); }
+
41 
+
42 bool DigitalInputValue::set_configuration(const JsonObject& config) {
+
43  String expected[] = {"read_delay"};
+
44  for (auto str : expected) {
+
45  if (!config.containsKey(str)) {
+
46  return false;
+
47  }
+
48  }
+
49  read_delay = config["read_delay"];
+
50  return true;
+
51 }
+
52 
+
53 DigitalInputCounter::DigitalInputCounter(uint8_t pin, int pin_mode,
+
54  int interrupt_type, uint read_delay,
+
55  String config_path)
+ + +
58  read_delay{read_delay} {
+
59  load_configuration();
+
60 }
+
61 
+ +
63  app.onInterrupt(pin, interrupt_type, [this]() { this->counter++; });
+
64 
+
65  app.onRepeat(read_delay, [this]() {
+
66  noInterrupts();
+
67  output = counter;
+
68  counter = 0;
+
69  interrupts();
+
70  notify();
+
71  });
+
72 }
+
73 
+
74 void DigitalInputCounter::get_configuration(JsonObject& root) {
+
75  root["read_delay"] = read_delay;
+
76  root["value"] = output;
+
77 }
+
78 
+
79 static const char SCHEMA[] PROGMEM = R"###({
+
80  "type": "object",
+
81  "properties": {
+
82  "read_delay": { "title": "Read delay", "type": "number", "description": "The time, in milliseconds, between each read of the input" },
+
83  "value": { "title": "Last value", "type" : "number", "readOnly": true }
+
84  }
+
85  })###";
+
86 
+
87 String DigitalInputCounter::get_config_schema() { return FPSTR(SCHEMA); }
+
88 
+
89 bool DigitalInputCounter::set_configuration(const JsonObject& config) {
+
90  String expected[] = {"read_delay"};
+
91  for (auto str : expected) {
+
92  if (!config.containsKey(str)) {
+
93  return false;
+
94  }
+
95  }
+
96  read_delay = config["read_delay"];
+
97  return true;
+
98 }
+
+
+
void notify()
Definition: observable.cpp:3
+
DigitalInput(uint8_t pin, int pin_mode, int interrupt_type, String config_path="")
+ +
void enable() override final
+ +
const char PAGE_index[] PROGMEM
Definition: index.h:2
+
const String config_path
Definition: configurable.h:31
+ +
DigitalInputValue(uint8_t pin, int pin_mode, int interrupt_type, int read_delay=1000, String config_path="")
+ + +
ValueProducer< int > IntegerProducer
Definition: valueproducer.h:90
+
virtual void enable() override final
+
DigitalInputCounter(uint8_t pin, int pin_mode, int interrupt_type, uint read_delay, String config_path="")
+
ReactESP app
+ +
Definition: sensor.h:15
+ + + + diff --git a/docs/generated/docs/digital__input_8h.html b/docs/generated/docs/digital__input_8h.html new file mode 100644 index 000000000..f4cd7b7ee --- /dev/null +++ b/docs/generated/docs/digital__input_8h.html @@ -0,0 +1,152 @@ + + + + + + + +SensESP: src/sensors/digital_input.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
digital_input.h File Reference
+
+
+
#include "sensor.h"
+
+Include dependency graph for digital_input.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + +

+Classes

class  DigitalInput
 
class  DigitalInputValue
 
class  DigitalInputCounter
 
+
+
+ + + + diff --git a/docs/digital__input_8h__dep__incl.map b/docs/generated/docs/digital__input_8h__dep__incl.map similarity index 100% rename from docs/digital__input_8h__dep__incl.map rename to docs/generated/docs/digital__input_8h__dep__incl.map diff --git a/docs/generated/docs/digital__input_8h__dep__incl.md5 b/docs/generated/docs/digital__input_8h__dep__incl.md5 new file mode 100644 index 000000000..a0dae95b4 --- /dev/null +++ b/docs/generated/docs/digital__input_8h__dep__incl.md5 @@ -0,0 +1 @@ +35a700262b23bd326bde7a9e1e7e81c2 \ No newline at end of file diff --git a/docs/generated/docs/digital__input_8h__dep__incl.png b/docs/generated/docs/digital__input_8h__dep__incl.png new file mode 100644 index 000000000..206b37e8e Binary files /dev/null and b/docs/generated/docs/digital__input_8h__dep__incl.png differ diff --git a/docs/generated/docs/digital__input_8h__incl.map b/docs/generated/docs/digital__input_8h__incl.map new file mode 100644 index 000000000..2ecff4ecf --- /dev/null +++ b/docs/generated/docs/digital__input_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/digital__input_8h__incl.md5 b/docs/generated/docs/digital__input_8h__incl.md5 new file mode 100644 index 000000000..f1213bad2 --- /dev/null +++ b/docs/generated/docs/digital__input_8h__incl.md5 @@ -0,0 +1 @@ +74f0053e8e22bd4525bd64879aab3157 \ No newline at end of file diff --git a/docs/generated/docs/digital__input_8h__incl.png b/docs/generated/docs/digital__input_8h__incl.png new file mode 100644 index 000000000..88d4c59bc Binary files /dev/null and b/docs/generated/docs/digital__input_8h__incl.png differ diff --git a/docs/generated/docs/digital__input_8h_source.html b/docs/generated/docs/digital__input_8h_source.html new file mode 100644 index 000000000..5fc2ce3e8 --- /dev/null +++ b/docs/generated/docs/digital__input_8h_source.html @@ -0,0 +1,163 @@ + + + + + + + +SensESP: src/sensors/digital_input.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
digital_input.h
+
+
+Go to the documentation of this file.
1 #ifndef _digital_input_H_
+
2 #define _digital_input_H_
+
3 
+
4 #include "sensor.h"
+
5 
+
6 class DigitalInput : public Sensor {
+
7  public:
+
8  DigitalInput(uint8_t pin, int pin_mode, int interrupt_type,
+
9  String config_path = "");
+
10 
+
11  protected:
+
12  uint8_t pin;
+ +
14 };
+
15 
+
16 // DigitalInputValue is meant to report directly the state of
+
17 // a slowly changing signal
+ +
19  public:
+
20  DigitalInputValue(uint8_t pin, int pin_mode, int interrupt_type,
+
21  int read_delay = 1000, String config_path = "");
+
22 
+
23  virtual void enable() override final;
+
24 
+
25  private:
+
26  bool triggered = false;
+
27  int read_delay;
+
28  virtual void get_configuration(JsonObject& doc) override;
+
29  virtual bool set_configuration(const JsonObject& config) override;
+
30  virtual String get_config_schema() override;
+
31 };
+
32 
+
33 // DigitalInputCounter tracks rapidly changing digital inputs
+ +
35  public:
+
36  DigitalInputCounter(uint8_t pin, int pin_mode, int interrupt_type,
+
37  uint read_delay, String config_path = "");
+
38 
+
39  void enable() override final;
+
40 
+
41  private:
+
42  uint read_delay;
+
43  volatile uint counter = 0;
+
44  virtual void get_configuration(JsonObject& doc) override;
+
45  virtual bool set_configuration(const JsonObject& config) override;
+
46  virtual String get_config_schema() override;
+
47 };
+
48 
+
49 #endif
+
+
+
DigitalInput(uint8_t pin, int pin_mode, int interrupt_type, String config_path="")
+
void enable() override final
+ + + + +
const String config_path
Definition: configurable.h:31
+ +
DigitalInputValue(uint8_t pin, int pin_mode, int interrupt_type, int read_delay=1000, String config_path="")
+
virtual void enable() override final
+ +
DigitalInputCounter(uint8_t pin, int pin_mode, int interrupt_type, uint read_delay, String config_path="")
+ +
Definition: sensor.h:15
+ + + + diff --git a/docs/generated/docs/digital__output_8cpp.html b/docs/generated/docs/digital__output_8cpp.html new file mode 100644 index 000000000..60bd485bd --- /dev/null +++ b/docs/generated/docs/digital__output_8cpp.html @@ -0,0 +1,124 @@ + + + + + + + +SensESP: src/sensors/digital_output.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
digital_output.cpp File Reference
+
+
+
#include "digital_output.h"
+#include "Arduino.h"
+
+Include dependency graph for digital_output.cpp:
+
+
+ + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/generated/docs/digital__output_8cpp__incl.map b/docs/generated/docs/digital__output_8cpp__incl.map new file mode 100644 index 000000000..a28848d9c --- /dev/null +++ b/docs/generated/docs/digital__output_8cpp__incl.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/digital__output_8cpp__incl.md5 b/docs/generated/docs/digital__output_8cpp__incl.md5 new file mode 100644 index 000000000..50499a7a9 --- /dev/null +++ b/docs/generated/docs/digital__output_8cpp__incl.md5 @@ -0,0 +1 @@ +55e84b4b6f46a77a1675119db5726120 \ No newline at end of file diff --git a/docs/generated/docs/digital__output_8cpp__incl.png b/docs/generated/docs/digital__output_8cpp__incl.png new file mode 100644 index 000000000..c2258b609 Binary files /dev/null and b/docs/generated/docs/digital__output_8cpp__incl.png differ diff --git a/docs/generated/docs/digital__output_8cpp_source.html b/docs/generated/docs/digital__output_8cpp_source.html new file mode 100644 index 000000000..305baf03d --- /dev/null +++ b/docs/generated/docs/digital__output_8cpp_source.html @@ -0,0 +1,115 @@ + + + + + + + +SensESP: src/sensors/digital_output.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
digital_output.cpp
+
+
+Go to the documentation of this file.
1 #include "digital_output.h"
+
2 
+
3 #include "Arduino.h"
+
4 
+ +
6  pin_number = pin;
+
7  pinMode(pin, OUTPUT);
+
8 }
+
9 
+
10 void DigitalOutput::set_input(bool newValue, uint8_t inputChannel) {
+
11  digitalWrite(pin_number, newValue);
+
12 }
+
+
+ +
void set_input(bool new_value, uint8_t input_channel=0) override
+
DigitalOutput(int pin)
+ + + + diff --git a/docs/generated/docs/digital__output_8h.html b/docs/generated/docs/digital__output_8h.html new file mode 100644 index 000000000..49c724ae9 --- /dev/null +++ b/docs/generated/docs/digital__output_8h.html @@ -0,0 +1,140 @@ + + + + + + + +SensESP: src/sensors/digital_output.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
digital_output.h File Reference
+
+
+
#include <ArduinoJson.h>
+#include "system/observable.h"
+#include "system/valueconsumer.h"
+
+Include dependency graph for digital_output.h:
+
+
+ + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  DigitalOutput
 
+
+
+ + + + diff --git a/docs/generated/docs/digital__output_8h__dep__incl.map b/docs/generated/docs/digital__output_8h__dep__incl.map new file mode 100644 index 000000000..df761ee2e --- /dev/null +++ b/docs/generated/docs/digital__output_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/digital__output_8h__dep__incl.md5 b/docs/generated/docs/digital__output_8h__dep__incl.md5 new file mode 100644 index 000000000..5d367addb --- /dev/null +++ b/docs/generated/docs/digital__output_8h__dep__incl.md5 @@ -0,0 +1 @@ +bd54c1f127c53c65a65c97d7a308ce8a \ No newline at end of file diff --git a/docs/generated/docs/digital__output_8h__dep__incl.png b/docs/generated/docs/digital__output_8h__dep__incl.png new file mode 100644 index 000000000..5a31fb8e1 Binary files /dev/null and b/docs/generated/docs/digital__output_8h__dep__incl.png differ diff --git a/docs/generated/docs/digital__output_8h__incl.map b/docs/generated/docs/digital__output_8h__incl.map new file mode 100644 index 000000000..01469abdb --- /dev/null +++ b/docs/generated/docs/digital__output_8h__incl.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/docs/generated/docs/digital__output_8h__incl.md5 b/docs/generated/docs/digital__output_8h__incl.md5 new file mode 100644 index 000000000..173a6dd2e --- /dev/null +++ b/docs/generated/docs/digital__output_8h__incl.md5 @@ -0,0 +1 @@ +ad63d770813aa30f4607d29557fe5868 \ No newline at end of file diff --git a/docs/generated/docs/digital__output_8h__incl.png b/docs/generated/docs/digital__output_8h__incl.png new file mode 100644 index 000000000..989b2ca5a Binary files /dev/null and b/docs/generated/docs/digital__output_8h__incl.png differ diff --git a/docs/generated/docs/digital__output_8h_source.html b/docs/generated/docs/digital__output_8h_source.html new file mode 100644 index 000000000..cceac7b63 --- /dev/null +++ b/docs/generated/docs/digital__output_8h_source.html @@ -0,0 +1,124 @@ + + + + + + + +SensESP: src/sensors/digital_output.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
digital_output.h
+
+
+Go to the documentation of this file.
1 #ifndef _digital_output_H
+
2 #define _digital_output_H
+
3 
+
4 #include <ArduinoJson.h>
+
5 
+
6 #include "system/observable.h"
+
7 #include "system/valueconsumer.h"
+
8 
+
9 class DigitalOutput : public BooleanConsumer {
+
10  public:
+
11  DigitalOutput(int pin);
+
12  void set_input(bool new_value, uint8_t input_channel = 0) override;
+
13 
+
14  private:
+
15  int pin_number;
+
16 };
+
17 
+
18 #endif
+
+
+ +
void set_input(bool new_value, uint8_t input_channel=0) override
+ +
DigitalOutput(int pin)
+ + + + + + diff --git a/docs/dir_000001_000002.html b/docs/generated/docs/dir_000001_000002.html similarity index 88% rename from docs/dir_000001_000002.html rename to docs/generated/docs/dir_000001_000002.html index 1cae59f77..647331303 100644 --- a/docs/dir_000001_000002.html +++ b/docs/generated/docs/dir_000001_000002.html @@ -3,7 +3,7 @@ - + SensESP: src/net -> web Relation @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -87,15 +83,13 @@
-

net → web Relation

File in src/netIncludes file in src/net/web
http.cppindex.h
http.cppjs_jsoneditor.h
http.cppsetup.h
+

net → web Relation

File in src/netIncludes file in src/net/web
http.cppindex.h
http.cppjs_jsoneditor.h
http.cppjs_sensesp.h
http.cppsetup.h
diff --git a/docs/dir_000001_000004.html b/docs/generated/docs/dir_000001_000004.html similarity index 84% rename from docs/dir_000001_000004.html rename to docs/generated/docs/dir_000001_000004.html index 68556618a..5957d4b1c 100644 --- a/docs/dir_000001_000004.html +++ b/docs/generated/docs/dir_000001_000004.html @@ -3,7 +3,7 @@ - + SensESP: src/net -> signalk Relation @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -87,15 +83,13 @@
-

net → signalk Relation

File in src/netIncludes file in src/signalk
ws_client.hsignalk_delta.h
+

net → signalk Relation

File in src/netIncludes file in src/signalk
ws_client.cppsignalk_listener.h
ws_client.hsignalk_delta.h
diff --git a/docs/dir_000001_000005.html b/docs/generated/docs/dir_000001_000005.html similarity index 90% rename from docs/dir_000001_000005.html rename to docs/generated/docs/dir_000001_000005.html index d1a2d0f1e..03f14bd5a 100644 --- a/docs/dir_000001_000005.html +++ b/docs/generated/docs/dir_000001_000005.html @@ -3,7 +3,7 @@ - + SensESP: src/net -> system Relation @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -93,9 +89,7 @@

net → system Relation

    - +
diff --git a/docs/generated/docs/dir_000003_000005.html b/docs/generated/docs/dir_000003_000005.html new file mode 100644 index 000000000..81461fd2d --- /dev/null +++ b/docs/generated/docs/dir_000003_000005.html @@ -0,0 +1,96 @@ + + + + + + + +SensESP: src/sensors -> system Relation + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/dir_000004_000003.html b/docs/generated/docs/dir_000004_000003.html similarity index 89% rename from docs/dir_000004_000003.html rename to docs/generated/docs/dir_000004_000003.html index eaa067740..4ce7c7dd6 100644 --- a/docs/dir_000004_000003.html +++ b/docs/generated/docs/dir_000004_000003.html @@ -3,7 +3,7 @@ - + SensESP: src/signalk -> sensors Relation @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -93,9 +89,7 @@

signalk → sensors Relation

diff --git a/docs/dir_000004_000005.html b/docs/generated/docs/dir_000004_000005.html similarity index 76% rename from docs/dir_000004_000005.html rename to docs/generated/docs/dir_000004_000005.html index 4d24db08d..aaf1572aa 100644 --- a/docs/dir_000004_000005.html +++ b/docs/generated/docs/dir_000004_000005.html @@ -3,7 +3,7 @@ - +SensESP: src/signalk -> system Relation @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -87,15 +83,13 @@
-

signalk → system Relation

File in src/signalkIncludes file in src/system
signalk_emitter.hconfigurable.h
signalk_emitter.hobservable.h
signalk_emitter.hvalueproducer.h
+

signalk → system Relation

File in src/signalkIncludes file in src/system
signalk_emitter.hconfigurable.h
signalk_emitter.hobservable.h
signalk_emitter.hvalueproducer.h
signalk_listener.hconfigurable.h
signalk_listener.hobservable.h
signalk_listener.hvalueproducer.h
signalk_value_listener.hobservable.h
signalk_value_listener.hvalueproducer.h
diff --git a/docs/dir_000004_000006.html b/docs/generated/docs/dir_000004_000006.html similarity index 89% rename from docs/dir_000004_000006.html rename to docs/generated/docs/dir_000004_000006.html index 3845bf7ee..a0d4e9c97 100644 --- a/docs/dir_000004_000006.html +++ b/docs/generated/docs/dir_000004_000006.html @@ -3,7 +3,7 @@ - + SensESP: src/signalk -> transforms Relation @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -93,9 +89,7 @@

signalk → transforms Relation

diff --git a/docs/dir_000006_000005.html b/docs/generated/docs/dir_000006_000005.html similarity index 91% rename from docs/dir_000006_000005.html rename to docs/generated/docs/dir_000006_000005.html index 722a40f60..92da4a379 100644 --- a/docs/dir_000006_000005.html +++ b/docs/generated/docs/dir_000006_000005.html @@ -3,7 +3,7 @@ - +SensESP: src/transforms -> system Relation @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -93,9 +89,7 @@

transforms → system Relation

diff --git a/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 000000000..839b41183 --- /dev/null +++ b/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,151 @@ + + + + + + + +SensESP: src Directory Reference + + + + + + + + + + + + + +
+
+
+ + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
src Directory Reference
+
+
+
+Directory dependency graph for src:
+
+
src
+ + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +

+Directories

directory  net
 
directory  sensors
 
directory  signalk
 
directory  system
 
directory  transforms
 
+ + + + + + + + + + + + + + + +

+Files

file  main.cpp [code]
 
file  sensesp.h [code]
 
file  sensesp_app.cpp [code]
 
file  sensesp_app.h [code]
 
file  sensesp_app_builder.h [code]
 
file  wiring_helpers.cpp [code]
 
file  wiring_helpers.h [code]
 
+
+
+ + + + diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js b/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js similarity index 80% rename from docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js rename to docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js index 00141c568..1a8acd3ef 100644 --- a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js +++ b/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js @@ -5,9 +5,13 @@ var dir_68267d1309a1af8e8297ef4c3efbcdba = [ "signalk", "dir_846aa835ffd15ea225ad18b5b4aa0d4f.html", "dir_846aa835ffd15ea225ad18b5b4aa0d4f" ], [ "system", "dir_d501334aeb1b78ad67cd3c72c37b1e87.html", "dir_d501334aeb1b78ad67cd3c72c37b1e87" ], [ "transforms", "dir_859cad99e661c8c6c06da42378c04432.html", "dir_859cad99e661c8c6c06da42378c04432" ], + [ "main.cpp", "main_8cpp.html", "main_8cpp" ], [ "sensesp.h", "sensesp_8h.html", "sensesp_8h" ], [ "sensesp_app.cpp", "sensesp__app_8cpp.html", "sensesp__app_8cpp" ], [ "sensesp_app.h", "sensesp__app_8h.html", "sensesp__app_8h" ], + [ "sensesp_app_builder.h", "sensesp__app__builder_8h.html", [ + [ "SensESPAppBuilder", "class_sens_e_s_p_app_builder.html", "class_sens_e_s_p_app_builder" ] + ] ], [ "wiring_helpers.cpp", "wiring__helpers_8cpp.html", "wiring__helpers_8cpp" ], [ "wiring_helpers.h", "wiring__helpers_8h.html", "wiring__helpers_8h" ] ]; \ No newline at end of file diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map b/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map similarity index 77% rename from docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map rename to docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map index 4e18adc9c..e0a75a770 100644 --- a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map +++ b/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map @@ -1,15 +1,15 @@ - + - + - - - + + + - - + + diff --git a/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 b/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 new file mode 100644 index 000000000..0f9a3f69d --- /dev/null +++ b/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 @@ -0,0 +1 @@ +80bc90747d048a7aa380155997ff1470 \ No newline at end of file diff --git a/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png b/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png new file mode 100644 index 000000000..4f11b389e Binary files /dev/null and b/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png differ diff --git a/docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f.html b/docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f.html new file mode 100644 index 000000000..33d5dc638 --- /dev/null +++ b/docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f.html @@ -0,0 +1,181 @@ + + + + + + + +SensESP: src/sensors Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
sensors Directory Reference
+
+
+
+Directory dependency graph for sensors:
+
+
src/sensors
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  ads1x15.cpp [code]
 
file  ads1x15.h [code]
 
file  analog_input.cpp [code]
 
file  analog_input.h [code]
 
file  analog_reader.h [code]
 
file  bme280.cpp [code]
 
file  bme280.h [code]
 
file  bmp280.cpp [code]
 
file  bmp280.h [code]
 
file  digital_input.cpp [code]
 
file  digital_input.h [code]
 
file  digital_output.cpp [code]
 
file  digital_output.h [code]
 
file  gps.cpp [code]
 
file  gps.h [code]
 
file  ina219.cpp [code]
 
file  ina219.h [code]
 
file  max31856_thermocouple.cpp [code]
 
file  max31856_thermocouple.h [code]
 
file  onewire_temperature.cpp [code]
 
file  onewire_temperature.h [code]
 
file  orientation_9dof_input.cpp [code]
 
file  orientation_9dof_input.h [code]
 
file  sensor.cpp [code]
 
file  sensor.h [code]
 
file  sensor_nxp_fxos8700_fxas21002.cpp [code]
 
file  sensor_nxp_fxos8700_fxas21002.h [code]
 
file  sht31.cpp [code]
 
file  sht31.h [code]
 
file  system_info.cpp [code]
 
file  system_info.h [code]
 
file  ultrasonic_distance.cpp [code]
 
file  ultrasonic_distance.h [code]
 
+
+
+ + + + diff --git a/docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f.js b/docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f.js new file mode 100644 index 000000000..280426c6a --- /dev/null +++ b/docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f.js @@ -0,0 +1,63 @@ +var dir_7349e89ef19c117195f8e371603e1b1f = +[ + [ "ads1x15.cpp", "ads1x15_8cpp.html", null ], + [ "ads1x15.h", "ads1x15_8h.html", "ads1x15_8h" ], + [ "analog_input.cpp", "analog__input_8cpp.html", null ], + [ "analog_input.h", "analog__input_8h.html", [ + [ "AnalogInput", "class_analog_input.html", "class_analog_input" ] + ] ], + [ "analog_reader.h", "analog__reader_8h.html", [ + [ "BaseAnalogReader", "class_base_analog_reader.html", "class_base_analog_reader" ] + ] ], + [ "bme280.cpp", "bme280_8cpp.html", null ], + [ "bme280.h", "bme280_8h.html", "bme280_8h" ], + [ "bmp280.cpp", "bmp280_8cpp.html", null ], + [ "bmp280.h", "bmp280_8h.html", "bmp280_8h" ], + [ "digital_input.cpp", "digital__input_8cpp.html", null ], + [ "digital_input.h", "digital__input_8h.html", [ + [ "DigitalInput", "class_digital_input.html", "class_digital_input" ], + [ "DigitalInputValue", "class_digital_input_value.html", "class_digital_input_value" ], + [ "DigitalInputCounter", "class_digital_input_counter.html", "class_digital_input_counter" ] + ] ], + [ "digital_output.cpp", "digital__output_8cpp.html", null ], + [ "digital_output.h", "digital__output_8h.html", [ + [ "DigitalOutput", "class_digital_output.html", "class_digital_output" ] + ] ], + [ "gps.cpp", "gps_8cpp.html", null ], + [ "gps.h", "gps_8h.html", [ + [ "GPSInput", "class_g_p_s_input.html", "class_g_p_s_input" ] + ] ], + [ "ina219.cpp", "ina219_8cpp.html", null ], + [ "ina219.h", "ina219_8h.html", "ina219_8h" ], + [ "max31856_thermocouple.cpp", "max31856__thermocouple_8cpp.html", null ], + [ "max31856_thermocouple.h", "max31856__thermocouple_8h.html", [ + [ "MAX31856Thermocouple", "class_m_a_x31856_thermocouple.html", "class_m_a_x31856_thermocouple" ] + ] ], + [ "onewire_temperature.cpp", "onewire__temperature_8cpp.html", "onewire__temperature_8cpp" ], + [ "onewire_temperature.h", "onewire__temperature_8h.html", "onewire__temperature_8h" ], + [ "orientation_9dof_input.cpp", "orientation__9dof__input_8cpp.html", "orientation__9dof__input_8cpp" ], + [ "orientation_9dof_input.h", "orientation__9dof__input_8h.html", "orientation__9dof__input_8h" ], + [ "sensor.cpp", "sensor_8cpp.html", null ], + [ "sensor.h", "sensor_8h.html", [ + [ "Sensor", "class_sensor.html", "class_sensor" ], + [ "NumericSensor", "class_numeric_sensor.html", "class_numeric_sensor" ], + [ "IntegerSensor", "class_integer_sensor.html", "class_integer_sensor" ], + [ "StringSensor", "class_string_sensor.html", "class_string_sensor" ] + ] ], + [ "sensor_nxp_fxos8700_fxas21002.cpp", "sensor__nxp__fxos8700__fxas21002_8cpp.html", "sensor__nxp__fxos8700__fxas21002_8cpp" ], + [ "sensor_nxp_fxos8700_fxas21002.h", "sensor__nxp__fxos8700__fxas21002_8h.html", [ + [ "SensorNXP_FXOS8700_FXAS21002", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002" ] + ] ], + [ "sht31.cpp", "sht31_8cpp.html", null ], + [ "sht31.h", "sht31_8h.html", "sht31_8h" ], + [ "system_info.cpp", "system__info_8cpp.html", null ], + [ "system_info.h", "system__info_8h.html", [ + [ "SystemHz", "class_system_hz.html", "class_system_hz" ], + [ "FreeMem", "class_free_mem.html", "class_free_mem" ], + [ "Uptime", "class_uptime.html", "class_uptime" ], + [ "IPAddrDev", "class_i_p_addr_dev.html", "class_i_p_addr_dev" ], + [ "WifiSignal", "class_wifi_signal.html", "class_wifi_signal" ] + ] ], + [ "ultrasonic_distance.cpp", "ultrasonic__distance_8cpp.html", null ], + [ "ultrasonic_distance.h", "ultrasonic__distance_8h.html", "ultrasonic__distance_8h" ] +]; \ No newline at end of file diff --git a/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.map b/docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.map similarity index 91% rename from docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.map rename to docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.map index bfa234f1d..9e44bd3b0 100644 --- a/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.map +++ b/docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.map @@ -1,6 +1,6 @@ - + diff --git a/docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.md5 b/docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.md5 new file mode 100644 index 000000000..079c5a820 --- /dev/null +++ b/docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.md5 @@ -0,0 +1 @@ +cbda01aa1832811f35cfbb1e1b788508 \ No newline at end of file diff --git a/docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.png b/docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.png new file mode 100644 index 000000000..1da6ac5e8 Binary files /dev/null and b/docs/generated/docs/dir_7349e89ef19c117195f8e371603e1b1f_dep.png differ diff --git a/docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f.html b/docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f.html new file mode 100644 index 000000000..e215528a0 --- /dev/null +++ b/docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f.html @@ -0,0 +1,145 @@ + + + + + + + +SensESP: src/signalk Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
signalk Directory Reference
+
+
+
+Directory dependency graph for signalk:
+
+
src/signalk
+ + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  signalk_delta.cpp [code]
 
file  signalk_delta.h [code]
 
file  signalk_emitter.cpp [code]
 
file  signalk_emitter.h [code]
 
file  signalk_listener.cpp [code]
 
file  signalk_listener.h [code]
 
file  signalk_output.h [code]
 
file  signalk_position.cpp [code]
 
file  signalk_position.h [code]
 
file  signalk_time.cpp [code]
 
file  signalk_time.h [code]
 
file  signalk_value_listener.h [code]
 
+
+
+ + + + diff --git a/docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f.js b/docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f.js new file mode 100644 index 000000000..e3892469e --- /dev/null +++ b/docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f.js @@ -0,0 +1,23 @@ +var dir_846aa835ffd15ea225ad18b5b4aa0d4f = +[ + [ "signalk_delta.cpp", "signalk__delta_8cpp.html", null ], + [ "signalk_delta.h", "signalk__delta_8h.html", [ + [ "SKDelta", "class_s_k_delta.html", "class_s_k_delta" ] + ] ], + [ "signalk_emitter.cpp", "signalk__emitter_8cpp.html", null ], + [ "signalk_emitter.h", "signalk__emitter_8h.html", [ + [ "SKEmitter", "class_s_k_emitter.html", "class_s_k_emitter" ] + ] ], + [ "signalk_listener.cpp", "signalk__listener_8cpp.html", null ], + [ "signalk_listener.h", "signalk__listener_8h.html", [ + [ "SKListener", "class_s_k_listener.html", "class_s_k_listener" ] + ] ], + [ "signalk_output.h", "signalk__output_8h.html", "signalk__output_8h" ], + [ "signalk_position.cpp", "signalk__position_8cpp.html", null ], + [ "signalk_position.h", "signalk__position_8h.html", "signalk__position_8h" ], + [ "signalk_time.cpp", "signalk__time_8cpp.html", null ], + [ "signalk_time.h", "signalk__time_8h.html", [ + [ "SKOutputTime", "class_s_k_output_time.html", "class_s_k_output_time" ] + ] ], + [ "signalk_value_listener.h", "signalk__value__listener_8h.html", "signalk__value__listener_8h" ] +]; \ No newline at end of file diff --git a/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.map b/docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.map similarity index 80% rename from docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.map rename to docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.map index d0cc14a62..01ae54fcf 100644 --- a/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.map +++ b/docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.map @@ -1,12 +1,12 @@ - + - + - - - + + + diff --git a/docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.md5 b/docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.md5 new file mode 100644 index 000000000..0843308c7 --- /dev/null +++ b/docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.md5 @@ -0,0 +1 @@ +66956cdf6e0bbbf8300a820baaff7ece \ No newline at end of file diff --git a/docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.png b/docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.png new file mode 100644 index 000000000..58c842f5f Binary files /dev/null and b/docs/generated/docs/dir_846aa835ffd15ea225ad18b5b4aa0d4f_dep.png differ diff --git a/docs/dir_85858df28c9c737bf6d126646f545b97.html b/docs/generated/docs/dir_85858df28c9c737bf6d126646f545b97.html similarity index 91% rename from docs/dir_85858df28c9c737bf6d126646f545b97.html rename to docs/generated/docs/dir_85858df28c9c737bf6d126646f545b97.html index 759e8c381..a8feb2806 100644 --- a/docs/dir_85858df28c9c737bf6d126646f545b97.html +++ b/docs/generated/docs/dir_85858df28c9c737bf6d126646f545b97.html @@ -3,7 +3,7 @@ - + SensESP: src/net/web Directory Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -109,9 +105,7 @@ diff --git a/docs/dir_85858df28c9c737bf6d126646f545b97.js b/docs/generated/docs/dir_85858df28c9c737bf6d126646f545b97.js similarity index 100% rename from docs/dir_85858df28c9c737bf6d126646f545b97.js rename to docs/generated/docs/dir_85858df28c9c737bf6d126646f545b97.js diff --git a/docs/generated/docs/dir_859cad99e661c8c6c06da42378c04432.html b/docs/generated/docs/dir_859cad99e661c8c6c06da42378c04432.html new file mode 100644 index 000000000..ac5e6d833 --- /dev/null +++ b/docs/generated/docs/dir_859cad99e661c8c6c06da42378c04432.html @@ -0,0 +1,189 @@ + + + + + + + +SensESP: src/transforms Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
transforms Directory Reference
+
+
+
+Directory dependency graph for transforms:
+
+
src/transforms
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  ads1x15_voltage.cpp [code]
 
file  ads1x15_voltage.h [code]
 
file  analogvoltage.cpp [code]
 
file  analogvoltage.h [code]
 
file  angle_correction.cpp [code]
 
file  angle_correction.h [code]
 
file  change_filter.cpp [code]
 
file  change_filter.h [code]
 
file  curveinterpolator.cpp [code]
 
file  curveinterpolator.h [code]
 
file  debounce.cpp [code]
 
file  debounce.h [code]
 
file  difference.cpp [code]
 
file  difference.h [code]
 
file  frequency.cpp [code]
 
file  frequency.h [code]
 
file  hysteresis.h [code]
 
file  integrator.cpp [code]
 
file  integrator.h [code]
 
file  lambda_transform.cpp [code]
 
file  lambda_transform.h [code]
 
file  linear.cpp [code]
 
file  linear.h [code]
 
file  median.cpp [code]
 
file  median.h [code]
 
file  moving_average.cpp [code]
 
file  moving_average.h [code]
 
file  threshold.cpp [code]
 
file  threshold.h [code]
 
file  timestring.cpp [code]
 
file  timestring.h [code]
 
file  transform.cpp [code]
 
file  transform.h [code]
 
file  voltage_multiplier.cpp [code]
 
file  voltage_multiplier.h [code]
 
file  voltagedivider.cpp [code]
 
file  voltagedivider.h [code]
 
+
+
+ + + + diff --git a/docs/generated/docs/dir_859cad99e661c8c6c06da42378c04432.js b/docs/generated/docs/dir_859cad99e661c8c6c06da42378c04432.js new file mode 100644 index 000000000..21b0e29f2 --- /dev/null +++ b/docs/generated/docs/dir_859cad99e661c8c6c06da42378c04432.js @@ -0,0 +1,72 @@ +var dir_859cad99e661c8c6c06da42378c04432 = +[ + [ "ads1x15_voltage.cpp", "ads1x15__voltage_8cpp.html", null ], + [ "ads1x15_voltage.h", "ads1x15__voltage_8h.html", "ads1x15__voltage_8h" ], + [ "analogvoltage.cpp", "analogvoltage_8cpp.html", null ], + [ "analogvoltage.h", "analogvoltage_8h.html", "analogvoltage_8h" ], + [ "angle_correction.cpp", "angle__correction_8cpp.html", "angle__correction_8cpp" ], + [ "angle_correction.h", "angle__correction_8h.html", [ + [ "AngleCorrection", "class_angle_correction.html", "class_angle_correction" ] + ] ], + [ "change_filter.cpp", "change__filter_8cpp.html", null ], + [ "change_filter.h", "change__filter_8h.html", [ + [ "ChangeFilter", "class_change_filter.html", "class_change_filter" ] + ] ], + [ "curveinterpolator.cpp", "curveinterpolator_8cpp.html", null ], + [ "curveinterpolator.h", "curveinterpolator_8h.html", [ + [ "CurveInterpolator", "class_curve_interpolator.html", "class_curve_interpolator" ], + [ "Sample", "class_curve_interpolator_1_1_sample.html", "class_curve_interpolator_1_1_sample" ] + ] ], + [ "debounce.cpp", "debounce_8cpp.html", null ], + [ "debounce.h", "debounce_8h.html", [ + [ "Debounce", "class_debounce.html", "class_debounce" ] + ] ], + [ "difference.cpp", "difference_8cpp.html", null ], + [ "difference.h", "difference_8h.html", [ + [ "Difference", "class_difference.html", "class_difference" ] + ] ], + [ "frequency.cpp", "frequency_8cpp.html", null ], + [ "frequency.h", "frequency_8h.html", [ + [ "Frequency", "class_frequency.html", "class_frequency" ] + ] ], + [ "hysteresis.h", "hysteresis_8h.html", "hysteresis_8h" ], + [ "integrator.cpp", "integrator_8cpp.html", null ], + [ "integrator.h", "integrator_8h.html", [ + [ "Integrator", "class_integrator.html", "class_integrator" ] + ] ], + [ "lambda_transform.cpp", "lambda__transform_8cpp.html", "lambda__transform_8cpp" ], + [ "lambda_transform.h", "lambda__transform_8h.html", "lambda__transform_8h" ], + [ "linear.cpp", "linear_8cpp.html", null ], + [ "linear.h", "linear_8h.html", [ + [ "Linear", "class_linear.html", "class_linear" ] + ] ], + [ "median.cpp", "median_8cpp.html", null ], + [ "median.h", "median_8h.html", [ + [ "Median", "class_median.html", "class_median" ] + ] ], + [ "moving_average.cpp", "moving__average_8cpp.html", null ], + [ "moving_average.h", "moving__average_8h.html", [ + [ "MovingAverage", "class_moving_average.html", "class_moving_average" ] + ] ], + [ "threshold.cpp", "threshold_8cpp.html", null ], + [ "threshold.h", "threshold_8h.html", [ + [ "ThresholdTransform", "class_threshold_transform.html", "class_threshold_transform" ], + [ "NumericThreshold", "class_numeric_threshold.html", "class_numeric_threshold" ], + [ "IntegerThreshold", "class_integer_threshold.html", "class_integer_threshold" ] + ] ], + [ "timestring.cpp", "timestring_8cpp.html", null ], + [ "timestring.h", "timestring_8h.html", [ + [ "TimeString", "class_time_string.html", "class_time_string" ] + ] ], + [ "transform.cpp", "transform_8cpp.html", null ], + [ "transform.h", "transform_8h.html", "transform_8h" ], + [ "voltage_multiplier.cpp", "voltage__multiplier_8cpp.html", null ], + [ "voltage_multiplier.h", "voltage__multiplier_8h.html", [ + [ "VoltageMultiplier", "class_voltage_multiplier.html", "class_voltage_multiplier" ] + ] ], + [ "voltagedivider.cpp", "voltagedivider_8cpp.html", null ], + [ "voltagedivider.h", "voltagedivider_8h.html", [ + [ "VoltageDividerR1", "class_voltage_divider_r1.html", "class_voltage_divider_r1" ], + [ "VoltageDividerR2", "class_voltage_divider_r2.html", "class_voltage_divider_r2" ] + ] ] +]; \ No newline at end of file diff --git a/docs/dir_859cad99e661c8c6c06da42378c04432_dep.map b/docs/generated/docs/dir_859cad99e661c8c6c06da42378c04432_dep.map similarity index 91% rename from docs/dir_859cad99e661c8c6c06da42378c04432_dep.map rename to docs/generated/docs/dir_859cad99e661c8c6c06da42378c04432_dep.map index b1b2c383b..6bfd09a89 100644 --- a/docs/dir_859cad99e661c8c6c06da42378c04432_dep.map +++ b/docs/generated/docs/dir_859cad99e661c8c6c06da42378c04432_dep.map @@ -1,6 +1,6 @@ - + diff --git a/docs/dir_859cad99e661c8c6c06da42378c04432_dep.md5 b/docs/generated/docs/dir_859cad99e661c8c6c06da42378c04432_dep.md5 similarity index 100% rename from docs/dir_859cad99e661c8c6c06da42378c04432_dep.md5 rename to docs/generated/docs/dir_859cad99e661c8c6c06da42378c04432_dep.md5 diff --git a/docs/generated/docs/dir_859cad99e661c8c6c06da42378c04432_dep.png b/docs/generated/docs/dir_859cad99e661c8c6c06da42378c04432_dep.png new file mode 100644 index 000000000..0cfb99d0b Binary files /dev/null and b/docs/generated/docs/dir_859cad99e661c8c6c06da42378c04432_dep.png differ diff --git a/docs/dir_c72b25b75abe208498b36a3e44a3726c.html b/docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c.html similarity index 82% rename from docs/dir_c72b25b75abe208498b36a3e44a3726c.html rename to docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c.html index 90fcd604e..bbfd3b12c 100644 --- a/docs/dir_c72b25b75abe208498b36a3e44a3726c.html +++ b/docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c.html @@ -3,7 +3,7 @@ - + SensESP: src/net Directory Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -94,17 +90,17 @@
Directory dependency graph for net:
-
src/net
- - - - - - - - - - +
src/net
+ + + + + + + + + +
@@ -142,9 +138,7 @@ diff --git a/docs/dir_c72b25b75abe208498b36a3e44a3726c.js b/docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c.js similarity index 94% rename from docs/dir_c72b25b75abe208498b36a3e44a3726c.js rename to docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c.js index a1a57e661..b2b327abb 100644 --- a/docs/dir_c72b25b75abe208498b36a3e44a3726c.js +++ b/docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c.js @@ -3,7 +3,7 @@ var dir_c72b25b75abe208498b36a3e44a3726c = [ "web", "dir_85858df28c9c737bf6d126646f545b97.html", "dir_85858df28c9c737bf6d126646f545b97" ], [ "discovery.cpp", "discovery_8cpp.html", "discovery_8cpp" ], [ "discovery.h", "discovery_8h.html", "discovery_8h" ], - [ "http.cpp", "http_8cpp.html", null ], + [ "http.cpp", "http_8cpp.html", "http_8cpp" ], [ "http.h", "http_8h.html", [ [ "HTTPServer", "class_h_t_t_p_server.html", "class_h_t_t_p_server" ] ] ], diff --git a/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.map b/docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.map similarity index 82% rename from docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.map rename to docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.map index 7ccacdf30..e6a629bed 100644 --- a/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.map +++ b/docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.map @@ -1,11 +1,11 @@ - + - + - - + + diff --git a/docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.md5 b/docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.md5 new file mode 100644 index 000000000..eebfb87fb --- /dev/null +++ b/docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.md5 @@ -0,0 +1 @@ +ccf9e15b41b653b909d12cc699cd9bdc \ No newline at end of file diff --git a/docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.png b/docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.png new file mode 100644 index 000000000..03dd19365 Binary files /dev/null and b/docs/generated/docs/dir_c72b25b75abe208498b36a3e44a3726c_dep.png differ diff --git a/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87.html b/docs/generated/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87.html similarity index 90% rename from docs/dir_d501334aeb1b78ad67cd3c72c37b1e87.html rename to docs/generated/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87.html index 853061b3e..3661ea914 100644 --- a/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87.html +++ b/docs/generated/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87.html @@ -3,7 +3,7 @@ - +SensESP: src/system Directory Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -94,10 +90,10 @@
Directory dependency graph for system:
-
src/system
- - - +
src/system
+ + +
@@ -140,9 +136,7 @@ diff --git a/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87.js b/docs/generated/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87.js similarity index 94% rename from docs/dir_d501334aeb1b78ad67cd3c72c37b1e87.js rename to docs/generated/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87.js index 7e83c40d1..58643de0c 100644 --- a/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87.js +++ b/docs/generated/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87.js @@ -6,7 +6,7 @@ var dir_d501334aeb1b78ad67cd3c72c37b1e87 = [ "enable.h", "enable_8h.html", [ [ "Enable", "class_enable.html", "class_enable" ] ] ], - [ "led_blinker.cpp", "led__blinker_8cpp.html", "led__blinker_8cpp" ], + [ "led_blinker.cpp", "led__blinker_8cpp.html", null ], [ "led_blinker.h", "led__blinker_8h.html", [ [ "LedBlinker", "class_led_blinker.html", "class_led_blinker" ] ] ], diff --git a/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87_dep.map b/docs/generated/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87_dep.map similarity index 100% rename from docs/dir_d501334aeb1b78ad67cd3c72c37b1e87_dep.map rename to docs/generated/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87_dep.map diff --git a/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87_dep.md5 b/docs/generated/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87_dep.md5 similarity index 100% rename from docs/dir_d501334aeb1b78ad67cd3c72c37b1e87_dep.md5 rename to docs/generated/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87_dep.md5 diff --git a/docs/generated/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87_dep.png b/docs/generated/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87_dep.png new file mode 100644 index 000000000..e6e0ac8ec Binary files /dev/null and b/docs/generated/docs/dir_d501334aeb1b78ad67cd3c72c37b1e87_dep.png differ diff --git a/docs/discovery_8cpp.html b/docs/generated/docs/discovery_8cpp.html similarity index 78% rename from docs/discovery_8cpp.html rename to docs/generated/docs/discovery_8cpp.html index 776711ee3..73b083daf 100644 --- a/docs/discovery_8cpp.html +++ b/docs/generated/docs/discovery_8cpp.html @@ -3,7 +3,7 @@ - +SensESP: src/net/discovery.cpp File Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
- +
@@ -97,12 +93,12 @@
Include dependency graph for discovery.cpp:
-
- - - - - +
+ + + + +
@@ -110,7 +106,7 @@ - +

Functions

void setup_discovery (const char *hostname)
void setup_discovery (const char *hostname)
 

Function Documentation

@@ -131,6 +127,16 @@

Definition at line 10 of file discovery.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + +
@@ -140,9 +146,7 @@

diff --git a/docs/discovery_8cpp.js b/docs/generated/docs/discovery_8cpp.js similarity index 100% rename from docs/discovery_8cpp.js rename to docs/generated/docs/discovery_8cpp.js diff --git a/docs/discovery_8cpp__incl.map b/docs/generated/docs/discovery_8cpp__incl.map similarity index 100% rename from docs/discovery_8cpp__incl.map rename to docs/generated/docs/discovery_8cpp__incl.map diff --git a/docs/generated/docs/discovery_8cpp__incl.md5 b/docs/generated/docs/discovery_8cpp__incl.md5 new file mode 100644 index 000000000..e181d2d5a --- /dev/null +++ b/docs/generated/docs/discovery_8cpp__incl.md5 @@ -0,0 +1 @@ +3d6153073c18c2a53565da951c2d970e \ No newline at end of file diff --git a/docs/generated/docs/discovery_8cpp__incl.png b/docs/generated/docs/discovery_8cpp__incl.png new file mode 100644 index 000000000..289ac25db Binary files /dev/null and b/docs/generated/docs/discovery_8cpp__incl.png differ diff --git a/docs/generated/docs/discovery_8cpp_aeea49ee803402167d8d79ca58268363e_icgraph.map b/docs/generated/docs/discovery_8cpp_aeea49ee803402167d8d79ca58268363e_icgraph.map new file mode 100644 index 000000000..751a7d84d --- /dev/null +++ b/docs/generated/docs/discovery_8cpp_aeea49ee803402167d8d79ca58268363e_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/discovery_8cpp_aeea49ee803402167d8d79ca58268363e_icgraph.md5 b/docs/generated/docs/discovery_8cpp_aeea49ee803402167d8d79ca58268363e_icgraph.md5 new file mode 100644 index 000000000..dbfc81045 --- /dev/null +++ b/docs/generated/docs/discovery_8cpp_aeea49ee803402167d8d79ca58268363e_icgraph.md5 @@ -0,0 +1 @@ +3c1c3cfe81bdf2f9cb2545e23affb2aa \ No newline at end of file diff --git a/docs/generated/docs/discovery_8cpp_aeea49ee803402167d8d79ca58268363e_icgraph.png b/docs/generated/docs/discovery_8cpp_aeea49ee803402167d8d79ca58268363e_icgraph.png new file mode 100644 index 000000000..bd9a6284e Binary files /dev/null and b/docs/generated/docs/discovery_8cpp_aeea49ee803402167d8d79ca58268363e_icgraph.png differ diff --git a/docs/generated/docs/discovery_8cpp_source.html b/docs/generated/docs/discovery_8cpp_source.html new file mode 100644 index 000000000..be9520280 --- /dev/null +++ b/docs/generated/docs/discovery_8cpp_source.html @@ -0,0 +1,126 @@ + + + + + + + +SensESP: src/net/discovery.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
discovery.cpp
+
+
+Go to the documentation of this file.
1 #include "sensesp.h"
+
2 
+
3 #ifdef ESP8266
+
4  #include <ESP8266mDNS.h> // Include the mDNS library
+
5 #elif defined(ESP32)
+
6  #include <ESPmDNS.h>
+
7 #endif
+
8 
+
9 
+
10 void setup_discovery(const char* hostname) {
+
11  // MDNS.begin(hostname) will crash if hostname is blank
+
12  if ((hostname == NULL) || (hostname[0] == '\0')) {
+
13  debugE("hostname has not been set - mDNS can't start");
+
14  return;
+
15  }
+
16  if (!MDNS.begin(hostname)) { // Start the mDNS responder for esp8266.local
+
17  debugW("Error setting up mDNS responder");
+
18  } else {
+
19  debugI("mDNS responder started at %s", hostname);
+
20  }
+
21  MDNS.addService("http", "tcp", 80);
+
22  MDNS.addService("signalk-sensesp", "tcp", 80);
+
23 }
+
+
+
void setup_discovery(const char *hostname)
Definition: discovery.cpp:10
+ +
ObservableValue< String > * hostname
Definition: sensesp_app.cpp:56
+ + + + diff --git a/docs/discovery_8h.html b/docs/generated/docs/discovery_8h.html similarity index 79% rename from docs/discovery_8h.html rename to docs/generated/docs/discovery_8h.html index c7987303e..dd42aa5b7 100644 --- a/docs/discovery_8h.html +++ b/docs/generated/docs/discovery_8h.html @@ -3,7 +3,7 @@ - + SensESP: src/net/discovery.h File Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -96,10 +92,10 @@
This graph shows which files directly or indirectly include this file:
-
- - - +
+ + +
@@ -107,7 +103,7 @@ - +

Functions

void setup_discovery (const char *hostname)
void setup_discovery (const char *hostname)
 

Function Documentation

@@ -128,6 +124,16 @@

Definition at line 10 of file discovery.cpp.

+
+Here is the caller graph for this function:
+
+
+ + + + + +

@@ -137,9 +143,7 @@

diff --git a/docs/discovery_8h.js b/docs/generated/docs/discovery_8h.js similarity index 100% rename from docs/discovery_8h.js rename to docs/generated/docs/discovery_8h.js diff --git a/docs/discovery_8h__dep__incl.map b/docs/generated/docs/discovery_8h__dep__incl.map similarity index 100% rename from docs/discovery_8h__dep__incl.map rename to docs/generated/docs/discovery_8h__dep__incl.map diff --git a/docs/discovery_8h__dep__incl.md5 b/docs/generated/docs/discovery_8h__dep__incl.md5 similarity index 100% rename from docs/discovery_8h__dep__incl.md5 rename to docs/generated/docs/discovery_8h__dep__incl.md5 diff --git a/docs/generated/docs/discovery_8h__dep__incl.png b/docs/generated/docs/discovery_8h__dep__incl.png new file mode 100644 index 000000000..3034e710a Binary files /dev/null and b/docs/generated/docs/discovery_8h__dep__incl.png differ diff --git a/docs/generated/docs/discovery_8h_aeea49ee803402167d8d79ca58268363e_icgraph.map b/docs/generated/docs/discovery_8h_aeea49ee803402167d8d79ca58268363e_icgraph.map new file mode 100644 index 000000000..751a7d84d --- /dev/null +++ b/docs/generated/docs/discovery_8h_aeea49ee803402167d8d79ca58268363e_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/discovery_8h_aeea49ee803402167d8d79ca58268363e_icgraph.md5 b/docs/generated/docs/discovery_8h_aeea49ee803402167d8d79ca58268363e_icgraph.md5 new file mode 100644 index 000000000..dbfc81045 --- /dev/null +++ b/docs/generated/docs/discovery_8h_aeea49ee803402167d8d79ca58268363e_icgraph.md5 @@ -0,0 +1 @@ +3c1c3cfe81bdf2f9cb2545e23affb2aa \ No newline at end of file diff --git a/docs/generated/docs/discovery_8h_aeea49ee803402167d8d79ca58268363e_icgraph.png b/docs/generated/docs/discovery_8h_aeea49ee803402167d8d79ca58268363e_icgraph.png new file mode 100644 index 000000000..bd9a6284e Binary files /dev/null and b/docs/generated/docs/discovery_8h_aeea49ee803402167d8d79ca58268363e_icgraph.png differ diff --git a/docs/generated/docs/discovery_8h_source.html b/docs/generated/docs/discovery_8h_source.html new file mode 100644 index 000000000..d14fa55a5 --- /dev/null +++ b/docs/generated/docs/discovery_8h_source.html @@ -0,0 +1,108 @@ + + + + + + + +SensESP: src/net/discovery.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
discovery.h
+
+
+Go to the documentation of this file.
1 #ifndef _discovery_H_
+
2 #define _discovery_H_
+
3 
+
4 void setup_discovery(const char* hostname);
+
5 
+
6 #endif
+
+
+
void setup_discovery(const char *hostname)
Definition: discovery.cpp:10
+
ObservableValue< String > * hostname
Definition: sensesp_app.cpp:56
+ + + + diff --git a/docs/doc.png b/docs/generated/docs/doc.png similarity index 100% rename from docs/doc.png rename to docs/generated/docs/doc.png diff --git a/docs/doxygen.css b/docs/generated/docs/doxygen.css similarity index 97% rename from docs/doxygen.css rename to docs/generated/docs/doxygen.css index e2515926c..f640966e2 100644 --- a/docs/doxygen.css +++ b/docs/generated/docs/doxygen.css @@ -1,4 +1,4 @@ -/* The standard CSS for doxygen 1.8.15 */ +/* The standard CSS for doxygen 1.8.20 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; @@ -53,17 +53,24 @@ dt { font-weight: bold; } -div.multicol { +ul.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; + column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; + column-count: 3; } p.startli, p.startdd { margin-top: 2px; } +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + p.starttd { margin-top: 0px; } @@ -533,7 +540,7 @@ table.memberdecls { white-space: nowrap; } -.memItemRight { +.memItemRight, .memTemplItemRight { width: 100%; } @@ -701,7 +708,7 @@ dl.reflist dd { padding-left: 0px; } -.params .paramname, .retval .paramname, .tparams .paramname { +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { font-weight: bold; vertical-align: top; } @@ -1351,10 +1358,12 @@ dl.citelist dt { font-weight:bold; margin-right:10px; padding:5px; + text-align:right; + width:52px; } dl.citelist dd { - margin:2px 0; + margin:2px 0 2px 72px; padding:5px 0; } @@ -1654,47 +1663,6 @@ tr.heading h2 { /* @group Markdown */ -/* -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.markdownTableHead tr { -} - -table.markdownTableBodyLeft td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft { - text-align: left -} - -th.markdownTableHeadRight { - text-align: right -} - -th.markdownTableHeadCenter { - text-align: center -} -*/ - table.markdownTable { border-collapse:collapse; margin-top: 4px; diff --git a/docs/generated/docs/doxygen.svg b/docs/generated/docs/doxygen.svg new file mode 100644 index 000000000..d42dad52d --- /dev/null +++ b/docs/generated/docs/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/dynsections.js b/docs/generated/docs/dynsections.js new file mode 100644 index 000000000..88f2c27e6 --- /dev/null +++ b/docs/generated/docs/dynsections.js @@ -0,0 +1,128 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +SensESP: src/system/enable.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
enable.cpp File Reference
+
+
+
#include "enable.h"
+#include "sensesp_app.h"
+
+Include dependency graph for enable.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/generated/docs/enable_8cpp__incl.map b/docs/generated/docs/enable_8cpp__incl.map new file mode 100644 index 000000000..3ac43e64a --- /dev/null +++ b/docs/generated/docs/enable_8cpp__incl.map @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/enable_8cpp__incl.md5 b/docs/generated/docs/enable_8cpp__incl.md5 new file mode 100644 index 000000000..99aa3d392 --- /dev/null +++ b/docs/generated/docs/enable_8cpp__incl.md5 @@ -0,0 +1 @@ +4b289ca4031307364491e665a58cf1cb \ No newline at end of file diff --git a/docs/generated/docs/enable_8cpp__incl.png b/docs/generated/docs/enable_8cpp__incl.png new file mode 100644 index 000000000..c39bce1cd Binary files /dev/null and b/docs/generated/docs/enable_8cpp__incl.png differ diff --git a/docs/generated/docs/enable_8cpp_source.html b/docs/generated/docs/enable_8cpp_source.html new file mode 100644 index 000000000..347b7db30 --- /dev/null +++ b/docs/generated/docs/enable_8cpp_source.html @@ -0,0 +1,122 @@ + + + + + + + +SensESP: src/system/enable.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
enable.cpp
+
+
+Go to the documentation of this file.
1 #include "enable.h"
+
2 
+
3 #include "sensesp_app.h"
+
4 
+
5 std::priority_queue<Enable*> Enable::enableList;
+
6 
+
7 Enable::Enable(uint8_t priority) : priority{priority} {
+
8  Enable::enableList.push(this);
+
9 }
+
10 
+ +
12  debugD("Enabling all required sensors and transforms");
+
13  while (!enableList.empty()) {
+
14  auto& obj = *enableList.top();
+
15  obj.enable();
+
16  enableList.pop();
+
17  } // while
+
18 }
+
+
+
static void enable_all()
Definition: enable.cpp:11
+ +
Enable(uint8_t priority=0)
Definition: enable.cpp:7
+ + + + + diff --git a/docs/generated/docs/enable_8h.html b/docs/generated/docs/enable_8h.html new file mode 100644 index 000000000..a3fdbc482 --- /dev/null +++ b/docs/generated/docs/enable_8h.html @@ -0,0 +1,183 @@ + + + + + + + +SensESP: src/system/enable.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
enable.h File Reference
+
+
+
#include <stdint.h>
+#include <queue>
+#include "sensesp.h"
+
+Include dependency graph for enable.h:
+
+
+ + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  Enable
 
+
+
+ + + + diff --git a/docs/generated/docs/enable_8h__dep__incl.map b/docs/generated/docs/enable_8h__dep__incl.map new file mode 100644 index 000000000..522c9b331 --- /dev/null +++ b/docs/generated/docs/enable_8h__dep__incl.map @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/enable_8h__dep__incl.md5 b/docs/generated/docs/enable_8h__dep__incl.md5 new file mode 100644 index 000000000..9312f3e2d --- /dev/null +++ b/docs/generated/docs/enable_8h__dep__incl.md5 @@ -0,0 +1 @@ +93eaca2d7400da80cc4a4a339bc6888d \ No newline at end of file diff --git a/docs/generated/docs/enable_8h__dep__incl.png b/docs/generated/docs/enable_8h__dep__incl.png new file mode 100644 index 000000000..888cdf0bb Binary files /dev/null and b/docs/generated/docs/enable_8h__dep__incl.png differ diff --git a/docs/generated/docs/enable_8h__incl.map b/docs/generated/docs/enable_8h__incl.map new file mode 100644 index 000000000..3790aaa1f --- /dev/null +++ b/docs/generated/docs/enable_8h__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/generated/docs/enable_8h__incl.md5 b/docs/generated/docs/enable_8h__incl.md5 new file mode 100644 index 000000000..6467bf3b5 --- /dev/null +++ b/docs/generated/docs/enable_8h__incl.md5 @@ -0,0 +1 @@ +61d0edaa5181a56305a48e79c3a38594 \ No newline at end of file diff --git a/docs/generated/docs/enable_8h__incl.png b/docs/generated/docs/enable_8h__incl.png new file mode 100644 index 000000000..6d19154bb Binary files /dev/null and b/docs/generated/docs/enable_8h__incl.png differ diff --git a/docs/generated/docs/enable_8h_source.html b/docs/generated/docs/enable_8h_source.html new file mode 100644 index 000000000..1007d2d98 --- /dev/null +++ b/docs/generated/docs/enable_8h_source.html @@ -0,0 +1,148 @@ + + + + + + + +SensESP: src/system/enable.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
enable.h
+
+
+Go to the documentation of this file.
1 #ifndef _enable_H_
+
2 #define _enable_H_
+
3 
+
4 #include <stdint.h>
+
5 
+
6 #include <queue>
+
7 
+
8 #include "sensesp.h"
+
9 
+
18 class Enable {
+
19  public:
+
20  Enable(uint8_t priority = 0);
+
21 
+
26  virtual void enable() {}
+
27 
+
28  const uint8_t get_enable_priority() { return priority; }
+
29 
+
30  void set_priority(uint8_t priority) { this->priority = priority; }
+
31 
+
41  static void enable_all();
+
42 
+
43  // FIXME: Uncomment the following once the PIO Xtensa toolchain is updated
+
44  // [[deprecated("Use enable_all() instead.")]]
+
45  static void enableAll() {
+
46  debugW("Use enable_all() instead.");
+
47  enable_all();
+
48  };
+
49 
+
50  friend bool operator<(const Enable& lhs, const Enable& rhs) {
+
51  return lhs.priority < rhs.priority;
+
52  }
+
53 
+
54  private:
+
55  uint8_t priority;
+
56 
+
57  static std::priority_queue<Enable*> enableList;
+
58 };
+
59 
+
60 #endif
+
+
+
static void enable_all()
Definition: enable.cpp:11
+
const uint8_t get_enable_priority()
Definition: enable.h:28
+
void set_priority(uint8_t priority)
Definition: enable.h:30
+
static void enableAll()
Definition: enable.h:45
+
Enable(uint8_t priority=0)
Definition: enable.cpp:7
+
friend bool operator<(const Enable &lhs, const Enable &rhs)
Definition: enable.h:50
+ +
Definition: enable.h:18
+
virtual void enable()
Definition: enable.h:26
+ + + + diff --git a/docs/generated/docs/files.html b/docs/generated/docs/files.html new file mode 100644 index 000000000..07a644655 --- /dev/null +++ b/docs/generated/docs/files.html @@ -0,0 +1,228 @@ + + + + + + + +SensESP: File List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all files with brief descriptions:
+
[detail level 1234]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  src
  net
  sensors
  signalk
  system
  transforms
 main.cpp
 sensesp.h
 sensesp_app.cpp
 sensesp_app.h
 sensesp_app_builder.h
 wiring_helpers.cpp
 wiring_helpers.h
+
+
+
+ + + + diff --git a/docs/files_dup.js b/docs/generated/docs/files_dup.js similarity index 100% rename from docs/files_dup.js rename to docs/generated/docs/files_dup.js diff --git a/docs/folderclosed.png b/docs/generated/docs/folderclosed.png similarity index 100% rename from docs/folderclosed.png rename to docs/generated/docs/folderclosed.png diff --git a/docs/folderopen.png b/docs/generated/docs/folderopen.png similarity index 100% rename from docs/folderopen.png rename to docs/generated/docs/folderopen.png diff --git a/docs/generated/docs/frequency_8cpp.html b/docs/generated/docs/frequency_8cpp.html new file mode 100644 index 000000000..e52432de5 --- /dev/null +++ b/docs/generated/docs/frequency_8cpp.html @@ -0,0 +1,130 @@ + + + + + + + +SensESP: src/transforms/frequency.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
frequency.cpp File Reference
+
+
+
#include "frequency.h"
+
+Include dependency graph for frequency.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/generated/docs/frequency_8cpp__incl.map b/docs/generated/docs/frequency_8cpp__incl.map new file mode 100644 index 000000000..0bda1a996 --- /dev/null +++ b/docs/generated/docs/frequency_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/frequency_8cpp__incl.md5 b/docs/generated/docs/frequency_8cpp__incl.md5 new file mode 100644 index 000000000..bf80c4ae9 --- /dev/null +++ b/docs/generated/docs/frequency_8cpp__incl.md5 @@ -0,0 +1 @@ +ea3cdb1405992ec390f310fe686bb8aa \ No newline at end of file diff --git a/docs/generated/docs/frequency_8cpp__incl.png b/docs/generated/docs/frequency_8cpp__incl.png new file mode 100644 index 000000000..5909af70b Binary files /dev/null and b/docs/generated/docs/frequency_8cpp__incl.png differ diff --git a/docs/generated/docs/frequency_8cpp_source.html b/docs/generated/docs/frequency_8cpp_source.html new file mode 100644 index 000000000..b4cc1c149 --- /dev/null +++ b/docs/generated/docs/frequency_8cpp_source.html @@ -0,0 +1,153 @@ + + + + + + + +SensESP: src/transforms/frequency.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
frequency.cpp
+
+
+Go to the documentation of this file.
1 #include "frequency.h"
+
2 
+
3 // Frequency
+
4 
+
5 Frequency::Frequency(float k, String config_path)
+
6  : Transform<int, float>(config_path), k{k} {
+
7  load_configuration();
+
8 }
+
9 
+
10 void Frequency::enable() { last_update = millis(); }
+
11 
+
12 void Frequency::set_input(int input, uint8_t inputChannel) {
+
13  unsigned long cur_millis = millis();
+
14  unsigned long elapsed_millis = cur_millis - last_update;
+
15  output = k * input / (elapsed_millis / 1000.);
+
16  last_update = cur_millis;
+
17  notify();
+
18 }
+
19 
+
20 void Frequency::get_configuration(JsonObject& root) {
+
21  root["k"] = k;
+
22  root["value"] = output;
+
23 }
+
24 
+
25 static const char SCHEMA[] PROGMEM = R"###({
+
26  "type": "object",
+
27  "properties": {
+
28  "k": { "title": "Multiplier", "type": "number" },
+
29  "value": { "title": "Last value", "type" : "number", "readOnly": true }
+
30  }
+
31  })###";
+
32 
+
33 String Frequency::get_config_schema() { return FPSTR(SCHEMA); }
+
34 
+
35 bool Frequency::set_configuration(const JsonObject& config) {
+
36  String expected[] = {"k"};
+
37  for (auto str : expected) {
+
38  if (!config.containsKey(str)) {
+
39  return false;
+
40  }
+
41  }
+
42  k = config["k"];
+
43  return true;
+
44 }
+
+
+
virtual void enable() override
Definition: frequency.cpp:10
+
Frequency(float k=1, String config_path="")
Definition: frequency.cpp:5
+
const char PAGE_index[] PROGMEM
Definition: index.h:2
+
virtual bool set_configuration(const JsonObject &config) override
Definition: frequency.cpp:35
+ +
virtual String get_config_schema() override
Definition: frequency.cpp:33
+
virtual void set_input(int input, uint8_t inputChannel=0) override
Definition: frequency.cpp:12
+ +
virtual void get_configuration(JsonObject &doc) override
Definition: frequency.cpp:20
+ + + + diff --git a/docs/generated/docs/frequency_8h.html b/docs/generated/docs/frequency_8h.html new file mode 100644 index 000000000..e4b20b836 --- /dev/null +++ b/docs/generated/docs/frequency_8h.html @@ -0,0 +1,148 @@ + + + + + + + +SensESP: src/transforms/frequency.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
frequency.h File Reference
+
+
+
#include "transform.h"
+
+Include dependency graph for frequency.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  Frequency
 
+
+
+ + + + diff --git a/docs/frequency_8h__dep__incl.map b/docs/generated/docs/frequency_8h__dep__incl.map similarity index 100% rename from docs/frequency_8h__dep__incl.map rename to docs/generated/docs/frequency_8h__dep__incl.map diff --git a/docs/generated/docs/frequency_8h__dep__incl.md5 b/docs/generated/docs/frequency_8h__dep__incl.md5 new file mode 100644 index 000000000..482876b20 --- /dev/null +++ b/docs/generated/docs/frequency_8h__dep__incl.md5 @@ -0,0 +1 @@ +f4c86a77dca75731b2f03922d1b005cc \ No newline at end of file diff --git a/docs/generated/docs/frequency_8h__dep__incl.png b/docs/generated/docs/frequency_8h__dep__incl.png new file mode 100644 index 000000000..85537c94a Binary files /dev/null and b/docs/generated/docs/frequency_8h__dep__incl.png differ diff --git a/docs/generated/docs/frequency_8h__incl.map b/docs/generated/docs/frequency_8h__incl.map new file mode 100644 index 000000000..204608927 --- /dev/null +++ b/docs/generated/docs/frequency_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/frequency_8h__incl.md5 b/docs/generated/docs/frequency_8h__incl.md5 new file mode 100644 index 000000000..c59c5ed82 --- /dev/null +++ b/docs/generated/docs/frequency_8h__incl.md5 @@ -0,0 +1 @@ +3ea3dd863aedadc2d7d14fc8f6fcec4a \ No newline at end of file diff --git a/docs/generated/docs/frequency_8h__incl.png b/docs/generated/docs/frequency_8h__incl.png new file mode 100644 index 000000000..97b260a47 Binary files /dev/null and b/docs/generated/docs/frequency_8h__incl.png differ diff --git a/docs/generated/docs/frequency_8h_source.html b/docs/generated/docs/frequency_8h_source.html new file mode 100644 index 000000000..a20ea624f --- /dev/null +++ b/docs/generated/docs/frequency_8h_source.html @@ -0,0 +1,132 @@ + + + + + + + +SensESP: src/transforms/frequency.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
frequency.h
+
+
+Go to the documentation of this file.
1 #ifndef _frequency_H_
+
2 #define _frequency_H_
+
3 
+
4 #include "transform.h"
+
5 
+
6 // Frequency transform divides its input value by the time elapsed since
+
7 // the last reading
+
8 class Frequency : public Transform<int, float> {
+
9  public:
+
10  Frequency(float k = 1, String config_path = "");
+
11  virtual void set_input(int input, uint8_t inputChannel = 0) override;
+
12  virtual void enable() override;
+
13  virtual void get_configuration(JsonObject& doc) override;
+
14  virtual bool set_configuration(const JsonObject& config) override;
+
15  virtual String get_config_schema() override;
+
16 
+
17  private:
+
18  float k;
+
19  int ticks = 0;
+
20  uint last_update = 0;
+
21 };
+
22 
+
23 #endif
+
+
+
virtual void enable() override
Definition: frequency.cpp:10
+
Frequency(float k=1, String config_path="")
Definition: frequency.cpp:5
+
virtual bool set_configuration(const JsonObject &config) override
Definition: frequency.cpp:35
+
virtual String get_config_schema() override
Definition: frequency.cpp:33
+
virtual void set_input(int input, uint8_t inputChannel=0) override
Definition: frequency.cpp:12
+ + +
virtual void get_configuration(JsonObject &doc) override
Definition: frequency.cpp:20
+ + + + + diff --git a/docs/generated/docs/functions.html b/docs/generated/docs/functions.html new file mode 100644 index 000000000..d6d55e563 --- /dev/null +++ b/docs/generated/docs/functions.html @@ -0,0 +1,152 @@ + + + + + + + +SensESP: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- a -

+
+
+ + + + diff --git a/docs/generated/docs/functions_b.html b/docs/generated/docs/functions_b.html new file mode 100644 index 000000000..246e4b950 --- /dev/null +++ b/docs/generated/docs/functions_b.html @@ -0,0 +1,126 @@ + + + + + + + +SensESP: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- b -

+
+
+ + + + diff --git a/docs/generated/docs/functions_c.html b/docs/generated/docs/functions_c.html new file mode 100644 index 000000000..1d0542d6f --- /dev/null +++ b/docs/generated/docs/functions_c.html @@ -0,0 +1,147 @@ + + + + + + + +SensESP: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- c -

+
+
+ + + + diff --git a/docs/generated/docs/functions_d.html b/docs/generated/docs/functions_d.html new file mode 100644 index 000000000..98a1e4cc3 --- /dev/null +++ b/docs/generated/docs/functions_d.html @@ -0,0 +1,135 @@ + + + + + + + +SensESP: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- d -

+
+
+ + + + diff --git a/docs/functions_dup.js b/docs/generated/docs/functions_dup.js similarity index 95% rename from docs/functions_dup.js rename to docs/generated/docs/functions_dup.js index 753d2e1bb..b5fc752db 100644 --- a/docs/functions_dup.js +++ b/docs/generated/docs/functions_dup.js @@ -9,6 +9,7 @@ var functions_dup = [ "g", "functions_g.html", null ], [ "h", "functions_h.html", null ], [ "i", "functions_i.html", null ], + [ "k", "functions_k.html", null ], [ "l", "functions_l.html", null ], [ "m", "functions_m.html", null ], [ "n", "functions_n.html", null ], diff --git a/docs/generated/docs/functions_e.html b/docs/generated/docs/functions_e.html new file mode 100644 index 000000000..7c792a84a --- /dev/null +++ b/docs/generated/docs/functions_e.html @@ -0,0 +1,144 @@ + + + + + + + +SensESP: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- e -

+
+
+ + + + diff --git a/docs/generated/docs/functions_f.html b/docs/generated/docs/functions_f.html new file mode 100644 index 000000000..45b0040cb --- /dev/null +++ b/docs/generated/docs/functions_f.html @@ -0,0 +1,108 @@ + + + + + + + +SensESP: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- f -

+
+
+ + + + diff --git a/docs/generated/docs/functions_func.html b/docs/generated/docs/functions_func.html new file mode 100644 index 000000000..2fa1c411a --- /dev/null +++ b/docs/generated/docs/functions_func.html @@ -0,0 +1,137 @@ + + + + + + + +SensESP: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+
+
+ + + + diff --git a/docs/functions_func.js b/docs/generated/docs/functions_func.js similarity index 95% rename from docs/functions_func.js rename to docs/generated/docs/functions_func.js index 11d713662..58f8dc287 100644 --- a/docs/functions_func.js +++ b/docs/generated/docs/functions_func.js @@ -1,6 +1,7 @@ var functions_func = [ [ "a", "functions_func.html", null ], + [ "b", "functions_func_b.html", null ], [ "c", "functions_func_c.html", null ], [ "d", "functions_func_d.html", null ], [ "e", "functions_func_e.html", null ], diff --git a/docs/generated/docs/functions_func_b.html b/docs/generated/docs/functions_func_b.html new file mode 100644 index 000000000..b44b90f59 --- /dev/null +++ b/docs/generated/docs/functions_func_b.html @@ -0,0 +1,111 @@ + + + + + + + +SensESP: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- b -

+
+
+ + + + diff --git a/docs/generated/docs/functions_func_c.html b/docs/generated/docs/functions_func_c.html new file mode 100644 index 000000000..c276cf283 --- /dev/null +++ b/docs/generated/docs/functions_func_c.html @@ -0,0 +1,141 @@ + + + + + + + +SensESP: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
SensESP +  0.4.3 +
+
Universal Signal K sensor framework for ESP8266 and ESP32
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- c -

+
+
+ + + + diff --git a/docs/functions_func_d.html b/docs/generated/docs/functions_func_d.html similarity index 86% rename from docs/functions_func_d.html rename to docs/generated/docs/functions_func_d.html index d3c2a433a..d1f0914e5 100644 --- a/docs/functions_func_d.html +++ b/docs/generated/docs/functions_func_d.html @@ -3,7 +3,7 @@ - + SensESP: Class Members - Functions @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
@@ -97,7 +93,7 @@

- d -

@@ -117,9 +116,7 @@

- d -

    diff --git a/docs/generated/docs/functions_func_e.html b/docs/generated/docs/functions_func_e.html new file mode 100644 index 000000000..f937b02cb --- /dev/null +++ b/docs/generated/docs/functions_func_e.html @@ -0,0 +1,138 @@ + + + + + + + +SensESP: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SensESP +  0.4.3 +
    +
    Universal Signal K sensor framework for ESP8266 and ESP32
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/docs/functions_func_f.html b/docs/generated/docs/functions_func_f.html similarity index 89% rename from docs/functions_func_f.html rename to docs/generated/docs/functions_func_f.html index 2dbf79c06..3832d0c3e 100644 --- a/docs/functions_func_f.html +++ b/docs/generated/docs/functions_func_f.html @@ -3,7 +3,7 @@ - + SensESP: Class Members - Functions @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
    @@ -105,9 +101,7 @@

    - f -

    - +
    @@ -111,15 +107,16 @@

    - h -

    diff --git a/docs/functions_func_i.html b/docs/generated/docs/functions_func_i.html similarity index 83% rename from docs/functions_func_i.html rename to docs/generated/docs/functions_func_i.html index 32c823488..a3a95c460 100644 --- a/docs/functions_func_i.html +++ b/docs/generated/docs/functions_func_i.html @@ -3,7 +3,7 @@ - + SensESP: Class Members - Functions @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
    @@ -90,9 +86,21 @@  

    - i -

      +
    • INA219() +: INA219 +
    • +
    • INA219Value() +: INA219Value +
    • +
    • initFilter() +: SensorNXP_FXOS8700_FXAS21002 +
    • IntegerSensor() : IntegerSensor
    • +
    • IntegerThreshold() +: IntegerThreshold +
    • Integrator() : Integrator
    • @@ -114,9 +122,7 @@

      - i -

        diff --git a/docs/functions_func_l.html b/docs/generated/docs/functions_func_l.html similarity index 87% rename from docs/functions_func_l.html rename to docs/generated/docs/functions_func_l.html index e39177334..4b009015a 100644 --- a/docs/functions_func_l.html +++ b/docs/generated/docs/functions_func_l.html @@ -3,7 +3,7 @@ - + SensESP: Class Members - Functions @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
    - +
    @@ -90,8 +86,11 @@  

    - l -

      +
    • LambdaTransform() +: LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 > +
    • LedBlinker() -: LedBlinker +: LedBlinker
    • Linear() : Linear @@ -108,9 +107,7 @@

      - l -

        diff --git a/docs/functions_func_m.html b/docs/generated/docs/functions_func_m.html similarity index 87% rename from docs/functions_func_m.html rename to docs/generated/docs/functions_func_m.html index 0980d04b5..bacd54295 100644 --- a/docs/functions_func_m.html +++ b/docs/generated/docs/functions_func_m.html @@ -3,7 +3,7 @@ - + SensESP: Class Members - Functions @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
    - +
    @@ -90,8 +86,11 @@  

    - m -

      +
    • MAX31856Thermocouple() +: MAX31856Thermocouple +
    • Median() -: Median +: Median
    • MovingAverage() : MovingAverage @@ -102,9 +101,7 @@

      - m -

        diff --git a/docs/functions_func_n.html b/docs/generated/docs/functions_func_n.html similarity index 87% rename from docs/functions_func_n.html rename to docs/generated/docs/functions_func_n.html index 633b5d906..fabd01d08 100644 --- a/docs/functions_func_n.html +++ b/docs/generated/docs/functions_func_n.html @@ -3,7 +3,7 @@ - + SensESP: Class Members - Functions @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
    - +
    @@ -91,7 +87,7 @@

    - n -

    diff --git a/docs/functions_func_o.html b/docs/generated/docs/functions_func_o.html similarity index 88% rename from docs/functions_func_o.html rename to docs/generated/docs/functions_func_o.html index 677b78d11..b1f0e0108 100644 --- a/docs/functions_func_o.html +++ b/docs/generated/docs/functions_func_o.html @@ -3,7 +3,7 @@ - + SensESP: Class Members - Functions @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
    @@ -106,20 +102,21 @@

    - o -

    diff --git a/docs/functions_func_p.html b/docs/generated/docs/functions_func_p.html similarity index 87% rename from docs/functions_func_p.html rename to docs/generated/docs/functions_func_p.html index a5b27aabb..5b68acdb8 100644 --- a/docs/functions_func_p.html +++ b/docs/generated/docs/functions_func_p.html @@ -3,7 +3,7 @@ - + SensESP: Class Members - Functions @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
    @@ -99,6 +95,13 @@

    - p -

      , PSTISentenceParser , SentenceParser +
    • parse_value() +: SKListener +, SKValueListener< T > +
    • +
    • printSensorDetails() +: SensorNXP_FXOS8700_FXAS21002 +
    • PSTI030SentenceParser() : PSTI030SentenceParser
    • @@ -114,9 +117,7 @@

      - p -

        diff --git a/docs/functions_func_r.html b/docs/generated/docs/functions_func_r.html similarity index 88% rename from docs/functions_func_r.html rename to docs/generated/docs/functions_func_r.html index d6dd82e5d..2f2ed7190 100644 --- a/docs/functions_func_r.html +++ b/docs/generated/docs/functions_func_r.html @@ -3,7 +3,7 @@ - + SensESP: Class Members - Functions @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
    - +
    @@ -90,6 +86,12 @@  

    - r -

    - +
    @@ -90,6 +86,9 @@  

    - t -

      +
    • ThresholdTransform() +: ThresholdTransform< C, P > +
    • TimeString() : TimeString
    • @@ -105,9 +104,7 @@

      - t -

        diff --git a/docs/functions_func_u.html b/docs/generated/docs/functions_func_u.html similarity index 88% rename from docs/functions_func_u.html rename to docs/generated/docs/functions_func_u.html index 66e4b375a..8dde1b681 100644 --- a/docs/functions_func_u.html +++ b/docs/generated/docs/functions_func_u.html @@ -3,7 +3,7 @@ - + SensESP: Class Members - Functions @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
    - +
    @@ -90,6 +86,9 @@  

    - u -

      +
    • UltrasonicDistance() +: UltrasonicDistance +
    • Uptime() : Uptime
    • @@ -99,9 +98,7 @@

      - u -

        diff --git a/docs/functions_func_v.html b/docs/generated/docs/functions_func_v.html similarity index 87% rename from docs/functions_func_v.html rename to docs/generated/docs/functions_func_v.html index c8ac8a844..6e608fe78 100644 --- a/docs/functions_func_v.html +++ b/docs/generated/docs/functions_func_v.html @@ -3,7 +3,7 @@ - + SensESP: Class Members - Functions @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
    - +
    @@ -93,18 +89,22 @@

    - v -

    diff --git a/docs/functions_func_w.html b/docs/generated/docs/functions_func_w.html similarity index 86% rename from docs/functions_func_w.html rename to docs/generated/docs/functions_func_w.html index 27a8d88f1..3ef42483f 100644 --- a/docs/functions_func_w.html +++ b/docs/generated/docs/functions_func_w.html @@ -3,7 +3,7 @@ - + SensESP: Class Members - Functions @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
    @@ -90,8 +86,11 @@  

    - w -

    @@ -99,9 +98,7 @@

    - w -

      diff --git a/docs/functions_func_~.html b/docs/generated/docs/functions_func_~.html similarity index 88% rename from docs/functions_func_~.html rename to docs/generated/docs/functions_func_~.html index c15b48445..5f5ee2834 100644 --- a/docs/functions_func_~.html +++ b/docs/generated/docs/functions_func_~.html @@ -3,7 +3,7 @@ - + SensESP: Class Members - Functions @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
      @@ -99,9 +95,7 @@

      - ~ -

      - +
      @@ -113,6 +109,10 @@

      - h -

      @@ -120,9 +120,7 @@

      - h -

        diff --git a/docs/functions_i.html b/docs/generated/docs/functions_i.html similarity index 79% rename from docs/functions_i.html rename to docs/generated/docs/functions_i.html index 2f2936600..de3c49f16 100644 --- a/docs/functions_i.html +++ b/docs/generated/docs/functions_i.html @@ -3,7 +3,7 @@ - + SensESP: Class Members @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
        @@ -90,12 +86,33 @@
        Here is a list of all class members with links to the classes they belong to:

        - i -

          +
        • in_range +: ThresholdTransform< C, P > +
        • +
        • ina219 +: INA219 +
        • +
        • INA219() +: INA219 +
        • +
        • ina219 +: INA219Value +
        • +
        • INA219Value() +: INA219Value +
        • +
        • initFilter() +: SensorNXP_FXOS8700_FXAS21002 +
        • input : CurveInterpolator::Sample
        • IntegerSensor() : IntegerSensor
        • +
        • IntegerThreshold() +: IntegerThreshold +
        • Integrator() : Integrator
        • @@ -120,9 +137,7 @@

          - i -

            diff --git a/docs/generated/docs/functions_k.html b/docs/generated/docs/functions_k.html new file mode 100644 index 000000000..9047aef48 --- /dev/null +++ b/docs/generated/docs/functions_k.html @@ -0,0 +1,102 @@ + + + + + + + +SensESP: Class Members + + + + + + + + + + + + + +
            +
            + + + + + + +
            +
            SensESP +  0.4.3 +
            +
            Universal Signal K sensor framework for ESP8266 and ESP32
            +
            +
            + + + + + + + +
            +
            + +
            +
            +
            + +
            + +
            +
            + + +
            + +
            + +
            +
            Here is a list of all class members with links to the classes they belong to:
            + +

            - k -

            +
            +
            + + + + diff --git a/docs/functions_l.html b/docs/generated/docs/functions_l.html similarity index 86% rename from docs/functions_l.html rename to docs/generated/docs/functions_l.html index f3657eef3..8dc2c7b1e 100644 --- a/docs/functions_l.html +++ b/docs/generated/docs/functions_l.html @@ -3,7 +3,7 @@ - + SensESP: Class Members @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
        - +
        @@ -90,14 +86,17 @@
        Here is a list of all class members with links to the classes they belong to:

        - l -

          -
        • lastTime -: Debounce +
        • LambdaTransform() +: LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 > +
        • +
        • last_time +: Debounce
        • latitude : Position
        • LedBlinker() -: LedBlinker +: LedBlinker
        • Linear() : Linear @@ -117,9 +116,7 @@

          - l -

            diff --git a/docs/generated/docs/functions_m.html b/docs/generated/docs/functions_m.html new file mode 100644 index 000000000..9ee3c1dd9 --- /dev/null +++ b/docs/generated/docs/functions_m.html @@ -0,0 +1,129 @@ + + + + + + + +SensESP: Class Members + + + + + + + + + + + + + +
            +
            + + + + + + +
            +
            SensESP +  0.4.3 +
            +
            Universal Signal K sensor framework for ESP8266 and ESP32
            +
            +
            + + + + + + + +
            +
            + +
            +
            +
            + +
            + +
            +
            + + +
            + +
            + +
            +
            Here is a list of all class members with links to the classes they belong to:
            + +

            - m -

            +
            +
            + + + + diff --git a/docs/functions_n.html b/docs/generated/docs/functions_n.html similarity index 89% rename from docs/functions_n.html rename to docs/generated/docs/functions_n.html index 7623046f1..8dbb20760 100644 --- a/docs/functions_n.html +++ b/docs/generated/docs/functions_n.html @@ -3,7 +3,7 @@ - + SensESP: Class Members @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
        - +
        @@ -91,7 +87,7 @@

        - n -

        diff --git a/docs/functions_o.html b/docs/generated/docs/functions_o.html similarity index 85% rename from docs/functions_o.html rename to docs/generated/docs/functions_o.html index 4f04bdfbc..87de05bba 100644 --- a/docs/functions_o.html +++ b/docs/generated/docs/functions_o.html @@ -3,7 +3,7 @@ - + SensESP: Class Members @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
        @@ -106,7 +102,7 @@

        - o -

          : WSClient
        • OneWireTemperature() -: OneWireTemperature +: OneWireTemperature
        • operator< : CurveInterpolator::Sample @@ -115,6 +111,15 @@

          - o -

          • operator=() : ObservableValue< T >
          • +
          • Orientation9DOF() +: Orientation9DOF +
          • +
          • orientation_9dof +: Read9DOF +
          • +
          • out_range +: ThresholdTransform< C, P > +
          • output : CurveInterpolator::Sample , ValueProducer< T > @@ -125,9 +130,7 @@

            - o -

              diff --git a/docs/functions_p.html b/docs/generated/docs/functions_p.html similarity index 88% rename from docs/functions_p.html rename to docs/generated/docs/functions_p.html index 9207ba987..bc13946b5 100644 --- a/docs/functions_p.html +++ b/docs/generated/docs/functions_p.html @@ -3,7 +3,7 @@ - + SensESP: Class Members @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
        - +
        @@ -99,12 +95,19 @@

        - p -

          , PSTISentenceParser , SentenceParser +
        • parse_value() +: SKListener +, SKValueListener< T > +
        • pin : DigitalInput
        • position : NMEAData
        • +
        • printSensorDetails() +: SensorNXP_FXOS8700_FXAS21002 +
        • PSTI030SentenceParser() : PSTI030SentenceParser
        • @@ -120,9 +123,7 @@

          - p -

            diff --git a/docs/functions_r.html b/docs/generated/docs/functions_r.html similarity index 87% rename from docs/functions_r.html rename to docs/generated/docs/functions_r.html index fcb366b08..7c377cdf7 100644 --- a/docs/functions_r.html +++ b/docs/generated/docs/functions_r.html @@ -3,7 +3,7 @@ - + SensESP: Class Members @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
        - +
        @@ -93,6 +89,15 @@

        - r -

        • R1 : VoltageDividerR2
        • +
        • R2 +: VoltageDividerR1 +
        • +
        • read() +: BaseAnalogReader +
        • +
        • Read9DOF() +: Read9DOF +
        • register_address() : DallasTemperatureSensors
        • @@ -117,9 +122,7 @@

          - r -

            diff --git a/docs/functions_rela.html b/docs/generated/docs/functions_rela.html similarity index 87% rename from docs/functions_rela.html rename to docs/generated/docs/functions_rela.html index e871693b1..10b6a3444 100644 --- a/docs/functions_rela.html +++ b/docs/generated/docs/functions_rela.html @@ -3,7 +3,7 @@ - + SensESP: Class Members - Related Functions @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
        - +
        @@ -88,19 +84,23 @@
         
        diff --git a/docs/generated/docs/functions_s.html b/docs/generated/docs/functions_s.html new file mode 100644 index 000000000..f5762f041 --- /dev/null +++ b/docs/generated/docs/functions_s.html @@ -0,0 +1,281 @@ + + + + + + + +SensESP: Class Members + + + + + + + + + + + + + +
        +
        + + + + + + +
        +
        SensESP +  0.4.3 +
        +
        Universal Signal K sensor framework for ESP8266 and ESP32
        +
        +
        + + + + + + + +
        +
        + +
        +
        +
        + +
        + +
        +
        + + +
        + +
        + +
        +
        Here is a list of all class members with links to the classes they belong to:
        + +

        - s -

        +
        +
        + + + + diff --git a/docs/functions_t.html b/docs/generated/docs/functions_t.html similarity index 90% rename from docs/functions_t.html rename to docs/generated/docs/functions_t.html index e6f9e7df3..381533b0f 100644 --- a/docs/functions_t.html +++ b/docs/generated/docs/functions_t.html @@ -3,7 +3,7 @@ - + SensESP: Class Members @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
        @@ -90,6 +86,9 @@
        Here is a list of all class members with links to the classes they belong to:

        - t -

          +
        • ThresholdTransform() +: ThresholdTransform< C, P > +
        • TimeString() : TimeString
        • @@ -108,9 +107,7 @@

          - t -

            diff --git a/docs/functions_u.html b/docs/generated/docs/functions_u.html similarity index 89% rename from docs/functions_u.html rename to docs/generated/docs/functions_u.html index 4b7930fd0..f7fe61917 100644 --- a/docs/functions_u.html +++ b/docs/generated/docs/functions_u.html @@ -3,7 +3,7 @@ - + SensESP: Class Members @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
        - +
        @@ -90,6 +86,9 @@
        Here is a list of all class members with links to the classes they belong to:

        - u -

          +
        • UltrasonicDistance() +: UltrasonicDistance +
        • up : ENUVector
        • @@ -102,9 +101,7 @@

          - u -

            diff --git a/docs/functions_v.html b/docs/generated/docs/functions_v.html similarity index 84% rename from docs/functions_v.html rename to docs/generated/docs/functions_v.html index 511946ea7..b4df6f5bc 100644 --- a/docs/functions_v.html +++ b/docs/generated/docs/functions_v.html @@ -3,7 +3,7 @@ - + SensESP: Class Members @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
        - +
        @@ -97,20 +93,25 @@

        - v -

        diff --git a/docs/generated/docs/functions_vars.html b/docs/generated/docs/functions_vars.html new file mode 100644 index 000000000..e4216e509 --- /dev/null +++ b/docs/generated/docs/functions_vars.html @@ -0,0 +1,350 @@ + + + + + + + +SensESP: Class Members - Variables + + + + + + + + + + + + + +
        +
        + + + + + + +
        +
        SensESP +  0.4.3 +
        +
        Universal Signal K sensor framework for ESP8266 and ESP32
        +
        +
        + + + + + + + +
        +
        + +
        +
        +
        + +
        + +
        +
        + + +
        + +
        + +
        +  + +

        - a -

        + + +

        - b -

        + + +

        - c -

        + + +

        - d -

        + + +

        - e -

        + + +

        - g -

        + + +

        - h -

        + + +

        - i -

        + + +

        - k -

        + + +

        - l -

        + + +

        - m -

        + + +

        - n -

        + + +

        - o -

        + + +

        - p -

        + + +

        - r -

        + + +

        - s -

        + + +

        - t -

        + + +

        - u -

        + + +

        - v -

        +
        +
        + + + + diff --git a/docs/functions_w.html b/docs/generated/docs/functions_w.html similarity index 87% rename from docs/functions_w.html rename to docs/generated/docs/functions_w.html index 538cdbac2..1c0b3ed74 100644 --- a/docs/functions_w.html +++ b/docs/generated/docs/functions_w.html @@ -3,7 +3,7 @@ - + SensESP: Class Members @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
        @@ -90,8 +86,11 @@
        Here is a list of all class members with links to the classes they belong to:

        - w -

        @@ -99,9 +98,7 @@

        - w -

          diff --git a/docs/functions_~.html b/docs/generated/docs/functions_~.html similarity index 89% rename from docs/functions_~.html rename to docs/generated/docs/functions_~.html index 108f36f12..ef7e5fc1e 100644 --- a/docs/functions_~.html +++ b/docs/generated/docs/functions_~.html @@ -3,7 +3,7 @@ - + SensESP: Class Members @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
          @@ -99,9 +95,7 @@

          - ~ -

          - +
          @@ -88,8 +84,23 @@
           
            +
          • ENABLE_LED +: sensesp_app.h +
          • +
          • HTTP_SERVER_PORT +: http.cpp +
          • LED_PIN -: led_blinker.cpp +: sensesp_app.h +
          • +
          • M_PI +: angle_correction.cpp +
          • +
          • MAX_ANALOG_OUTPUT +: analogvoltage.h +
          • +
          • MIN_PRINT_INTERVAL_MS +: sensor_nxp_fxos8700_fxas21002.cpp
          • USE_LIB_WEBSOCKET : sensesp_app.h @@ -103,9 +114,7 @@ diff --git a/docs/globals_enum.html b/docs/generated/docs/globals_enum.html similarity index 75% rename from docs/globals_enum.html rename to docs/generated/docs/globals_enum.html index 9805d99b8..2caeb99bf 100644 --- a/docs/globals_enum.html +++ b/docs/generated/docs/globals_enum.html @@ -3,7 +3,7 @@ - + SensESP: File Members @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
          - +
          @@ -88,21 +84,43 @@
           
          diff --git a/docs/generated/docs/globals_eval.html b/docs/generated/docs/globals_eval.html new file mode 100644 index 000000000..ca7983375 --- /dev/null +++ b/docs/generated/docs/globals_eval.html @@ -0,0 +1,300 @@ + + + + + + + +SensESP: File Members + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +  + +

          - a -

          + + +

          - b -

          + + +

          - c -

          + + +

          - d -

          + + +

          - e -

          + + +

          - f -

          + + +

          - g -

          + + +

          - h -

          + + +

          - i -

          + + +

          - l -

          + + +

          - m -

          + + +

          - n -

          + + +

          - p -

          + + +

          - r -

          + + +

          - s -

          + + +

          - t -

          + + +

          - u -

          + + +

          - w -

          +
          +
          + + + + diff --git a/docs/globals_func.html b/docs/generated/docs/globals_func.html similarity index 81% rename from docs/globals_func.html rename to docs/generated/docs/globals_func.html index 5a7b787a4..8927d358b 100644 --- a/docs/globals_func.html +++ b/docs/generated/docs/globals_func.html @@ -3,7 +3,7 @@ - + SensESP: File Members @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
          - +
          @@ -89,9 +85,30 @@
            +

          - a -

          + + +

          - g -

          + +

          - h -

          @@ -142,7 +159,7 @@

          - p -

            - r -

            • read_json() -: spiffs_storage.h +: spiffs_storage.h
            • read_string() : spiffs_storage.cpp @@ -181,9 +198,9 @@

              - s -

                : wiring_helpers.cpp , wiring_helpers.h -
              • setup_OTA() -: ota.cpp -, ota.h +
              • setup_ota() +: ota.cpp +, ota.h
              • setup_rpm_meter() : wiring_helpers.cpp @@ -193,6 +210,13 @@

                - s -

                  : spiffs_storage.cpp , spiffs_storage.h +
                • setup_standard_sensors() +: sensesp_app.cpp +
                • +
                • SetupSerialDebug() +: sensesp_app.cpp +, sensesp_app.h +
                • string_to_owda() : onewire_temperature.cpp
                • @@ -204,7 +228,7 @@

                  - w -

                    : ws_client.cpp
                  • write_json() -: spiffs_storage.h +: spiffs_storage.h
                  • write_string() : spiffs_storage.cpp @@ -216,9 +240,7 @@

                    - w -

                      diff --git a/docs/generated/docs/globals_type.html b/docs/generated/docs/globals_type.html new file mode 100644 index 000000000..886a0dd8e --- /dev/null +++ b/docs/generated/docs/globals_type.html @@ -0,0 +1,229 @@ + + + + + + + +SensESP: File Members + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      +  + +

                      - a -

                      + + +

                      - b -

                      + + +

                      - i -

                      + + +

                      - n -

                      + + +

                      - o -

                      + + +

                      - s -

                      + + +

                      - u -

                      + + +

                      - v -

                      +
                      +
                      + + + + diff --git a/docs/generated/docs/globals_vars.html b/docs/generated/docs/globals_vars.html new file mode 100644 index 000000000..b6a8bbbdb --- /dev/null +++ b/docs/generated/docs/globals_vars.html @@ -0,0 +1,173 @@ + + + + + + + +SensESP: File Members + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      +
                      +
                      + + + + diff --git a/docs/generated/docs/gps_8cpp.html b/docs/generated/docs/gps_8cpp.html new file mode 100644 index 000000000..d6a049935 --- /dev/null +++ b/docs/generated/docs/gps_8cpp.html @@ -0,0 +1,135 @@ + + + + + + + +SensESP: src/sensors/gps.cpp File Reference + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      +
                      +
                      gps.cpp File Reference
                      +
                      +
                      +
                      #include "gps.h"
                      +#include <math.h>
                      +#include "sensesp.h"
                      +
                      +Include dependency graph for gps.cpp:
                      +
                      +
                      + + + + + + + + + + + + + + + + + + + + + + + + + +
                      +
                      +

                      Go to the source code of this file.

                      +
                      +
                      + + + + diff --git a/docs/generated/docs/gps_8cpp__incl.map b/docs/generated/docs/gps_8cpp__incl.map new file mode 100644 index 000000000..32c7a0320 --- /dev/null +++ b/docs/generated/docs/gps_8cpp__incl.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/gps_8cpp__incl.md5 b/docs/generated/docs/gps_8cpp__incl.md5 new file mode 100644 index 000000000..08335bbe8 --- /dev/null +++ b/docs/generated/docs/gps_8cpp__incl.md5 @@ -0,0 +1 @@ +3ff2b1d717bf7565881e247a38e0d8ee \ No newline at end of file diff --git a/docs/generated/docs/gps_8cpp__incl.png b/docs/generated/docs/gps_8cpp__incl.png new file mode 100644 index 000000000..7462e6c47 Binary files /dev/null and b/docs/generated/docs/gps_8cpp__incl.png differ diff --git a/docs/generated/docs/gps_8cpp_source.html b/docs/generated/docs/gps_8cpp_source.html new file mode 100644 index 000000000..bf40a7dbb --- /dev/null +++ b/docs/generated/docs/gps_8cpp_source.html @@ -0,0 +1,152 @@ + + + + + + + +SensESP: src/sensors/gps.cpp Source File + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      +
                      +
                      gps.cpp
                      +
                      +
                      +Go to the documentation of this file.
                      1 #include "gps.h"
                      +
                      2 
                      +
                      3 #include <math.h>
                      +
                      4 
                      +
                      5 #include "sensesp.h"
                      +
                      6 
                      +
                      7 GPSInput::GPSInput(Stream* rx_stream, String config_path)
                      +
                      8  : Sensor(config_path) {
                      +
                      9  this->rx_stream = rx_stream;
                      +
                      10 
                      + + + + + + +
                      17 
                      + +
                      19 }
                      +
                      20 
                      + +
                      22  // enable reading the serial port
                      +
                      23  app.onAvailable(*rx_stream, [this]() {
                      +
                      24  while (this->rx_stream->available()) {
                      +
                      25  nmea_parser.handle(this->rx_stream->read());
                      +
                      26  }
                      +
                      27  });
                      +
                      28 
                      +
                      29  //#ifndef DEBUG_DISABLED
                      +
                      30  //app.onRepeat(1000, [this](){
                      +
                      31  // debugD("GPS characters processed: %d", gps.charsProcessed());
                      +
                      32  // debugD("Sentences with fix: %d", gps.sentencesWithFix());
                      +
                      33  // debugD("Passed checksum: %d", gps.passedChecksum());
                      +
                      34  // debugD("Failed checksum: %d", gps.failedChecksum());
                      +
                      35  //});
                      +
                      36  //#endif
                      +
                      37 }
                      +
                      +
                      + + +
                      GPSInput(Stream *rx_stream, String config_path="")
                      Definition: gps.cpp:7
                      +
                      NMEAData nmea_data
                      Definition: gps.h:14
                      + + +
                      void add_sentence_parser(SentenceParser *parser)
                      + +
                      virtual void enable() override final
                      Definition: gps.cpp:21
                      +
                      virtual void load_configuration()
                      + + + +
                      ReactESP app
                      +
                      Definition: sensor.h:15
                      + + + + diff --git a/docs/generated/docs/gps_8h.html b/docs/generated/docs/gps_8h.html new file mode 100644 index 000000000..cdc45cb73 --- /dev/null +++ b/docs/generated/docs/gps_8h.html @@ -0,0 +1,153 @@ + + + + + + + +SensESP: src/sensors/gps.h File Reference + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      + +
                      +
                      gps.h File Reference
                      +
                      +
                      +
                      #include "sensor.h"
                      +#include "system/nmea_parser.h"
                      +
                      +Include dependency graph for gps.h:
                      +
                      +
                      + + + + + + + + + + + + + + + + + + + + + + + +
                      +
                      +This graph shows which files directly or indirectly include this file:
                      +
                      +
                      + + + + + + + + +
                      +
                      +

                      Go to the source code of this file.

                      + + + + +

                      +Classes

                      class  GPSInput
                       
                      +
                      +
                      + + + + diff --git a/docs/gps_8h__dep__incl.map b/docs/generated/docs/gps_8h__dep__incl.map similarity index 100% rename from docs/gps_8h__dep__incl.map rename to docs/generated/docs/gps_8h__dep__incl.map diff --git a/docs/generated/docs/gps_8h__dep__incl.md5 b/docs/generated/docs/gps_8h__dep__incl.md5 new file mode 100644 index 000000000..c29edf7ac --- /dev/null +++ b/docs/generated/docs/gps_8h__dep__incl.md5 @@ -0,0 +1 @@ +0591ecce592def954bc00fc4c7f778d3 \ No newline at end of file diff --git a/docs/generated/docs/gps_8h__dep__incl.png b/docs/generated/docs/gps_8h__dep__incl.png new file mode 100644 index 000000000..3ebce31c5 Binary files /dev/null and b/docs/generated/docs/gps_8h__dep__incl.png differ diff --git a/docs/generated/docs/gps_8h__incl.map b/docs/generated/docs/gps_8h__incl.map new file mode 100644 index 000000000..5f70bd08f --- /dev/null +++ b/docs/generated/docs/gps_8h__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/gps_8h__incl.md5 b/docs/generated/docs/gps_8h__incl.md5 new file mode 100644 index 000000000..43482225d --- /dev/null +++ b/docs/generated/docs/gps_8h__incl.md5 @@ -0,0 +1 @@ +8080f331334c033acf13bab8996f0304 \ No newline at end of file diff --git a/docs/generated/docs/gps_8h__incl.png b/docs/generated/docs/gps_8h__incl.png new file mode 100644 index 000000000..f2a8a4f55 Binary files /dev/null and b/docs/generated/docs/gps_8h__incl.png differ diff --git a/docs/generated/docs/gps_8h_source.html b/docs/generated/docs/gps_8h_source.html new file mode 100644 index 000000000..1c417110b --- /dev/null +++ b/docs/generated/docs/gps_8h_source.html @@ -0,0 +1,142 @@ + + + + + + + +SensESP: src/sensors/gps.h Source File + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      +
                      +
                      gps.h
                      +
                      +
                      +Go to the documentation of this file.
                      1 #ifndef _gps_H_
                      +
                      2 #define _gps_H_
                      +
                      3 
                      +
                      4 #include "sensor.h"
                      +
                      5 #include "system/nmea_parser.h"
                      +
                      6 
                      +
                      7 // Support for a GPS module communicating with NMEA-0183
                      +
                      8 // messages over a serial interface
                      +
                      9 
                      +
                      10 class GPSInput : public Sensor {
                      +
                      11  public:
                      +
                      12  GPSInput(Stream* rx_stream, String config_path="");
                      +
                      13  virtual void enable() override final;
                      + +
                      15  private:
                      +
                      16  Stream* rx_stream;
                      +
                      17  NMEAParser nmea_parser;
                      +
                      18 };
                      +
                      19 
                      +
                      20 // must parse the following sentences:
                      +
                      21 // - GPGGA - Global Positioning System Fix Data
                      +
                      22 // - GPGLL - Latitude/Longitude
                      +
                      23 // - GPRMC - The Recommended Minimum
                      +
                      24 // - GPVTG - Course Over Ground and Ground Speed
                      +
                      25 // - GPGSA - GNSS DOP and Active Satellites
                      +
                      26 // - GLGSA - GNSS DOP and Active Satellites
                      +
                      27 // - GPGSV - GNSS Satellites in View
                      +
                      28 // - GLGSV - GNSS Satellites in View
                      +
                      29 // - PSTI,030 - Recommended Minimum 3D GNSS Data
                      +
                      30 // - PSTI,032 - RTK Baseline Data
                      +
                      31 
                      +
                      32 #endif
                      +
                      +
                      +
                      GPSInput(Stream *rx_stream, String config_path="")
                      Definition: gps.cpp:7
                      + +
                      NMEAData nmea_data
                      Definition: gps.h:14
                      + + +
                      Definition: gps.h:10
                      +
                      virtual void enable() override final
                      Definition: gps.cpp:21
                      +
                      const String config_path
                      Definition: configurable.h:31
                      + +
                      Definition: sensor.h:15
                      + + + + diff --git a/docs/generated/docs/graph_legend.html b/docs/generated/docs/graph_legend.html new file mode 100644 index 000000000..7e88cc175 --- /dev/null +++ b/docs/generated/docs/graph_legend.html @@ -0,0 +1,159 @@ + + + + + + + +SensESP: Graph Legend + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      +
                      +
                      Graph Legend
                      +
                      +
                      +

                      This page explains how to interpret the graphs that are generated by doxygen.

                      +

                      Consider the following example:

                      /*! Invisible class because of truncation */
                      +
                      class Invisible { };
                      +
                      +
                      /*! Truncated class, inheritance relation is hidden */
                      +
                      class Truncated : public Invisible { };
                      +
                      +
                      /* Class not documented with doxygen comments */
                      +
                      class Undocumented { };
                      +
                      +
                      /*! Class that is inherited using public inheritance */
                      +
                      class PublicBase : public Truncated { };
                      +
                      +
                      /*! A template class */
                      +
                      template<class T> class Templ { };
                      +
                      +
                      /*! Class that is inherited using protected inheritance */
                      +
                      class ProtectedBase { };
                      +
                      +
                      /*! Class that is inherited using private inheritance */
                      +
                      class PrivateBase { };
                      +
                      +
                      /*! Class that is used by the Inherited class */
                      +
                      class Used { };
                      +
                      +
                      /*! Super class that inherits a number of other classes */
                      +
                      class Inherited : public PublicBase,
                      +
                      protected ProtectedBase,
                      +
                      private PrivateBase,
                      +
                      public Undocumented,
                      +
                      public Templ<int>
                      +
                      {
                      +
                      private:
                      +
                      Used *m_usedClass;
                      +
                      };
                      +

                      This will result in the following graph:

                      +

                      The boxes in the above graph have the following meaning:

                      +
                        +
                      • +A filled gray box represents the struct or class for which the graph is generated.
                      • +
                      • +A box with a black border denotes a documented struct or class.
                      • +
                      • +A box with a gray border denotes an undocumented struct or class.
                      • +
                      • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
                      • +
                      +

                      The arrows have the following meaning:

                      +
                        +
                      • +A dark blue arrow is used to visualize a public inheritance relation between two classes.
                      • +
                      • +A dark green arrow is used for protected inheritance.
                      • +
                      • +A dark red arrow is used for private inheritance.
                      • +
                      • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
                      • +
                      • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
                      • +
                      +
                      +
                      + + + + diff --git a/docs/generated/docs/graph_legend.md5 b/docs/generated/docs/graph_legend.md5 new file mode 100644 index 000000000..8fcdccd1b --- /dev/null +++ b/docs/generated/docs/graph_legend.md5 @@ -0,0 +1 @@ +f51bf6e9a10430aafef59831b08dcbfe \ No newline at end of file diff --git a/docs/generated/docs/graph_legend.png b/docs/generated/docs/graph_legend.png new file mode 100644 index 000000000..08b4c8c41 Binary files /dev/null and b/docs/generated/docs/graph_legend.png differ diff --git a/docs/generated/docs/hierarchy.html b/docs/generated/docs/hierarchy.html new file mode 100644 index 000000000..b30a1086b --- /dev/null +++ b/docs/generated/docs/hierarchy.html @@ -0,0 +1,230 @@ + + + + + + + +SensESP: Class Hierarchy + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      +
                      +
                      Class Hierarchy
                      +
                      +
                      +
                      +

                      Go to the graphical class hierarchy

                      +This inheritance list is sorted roughly, but not completely, alphabetically:
                      +
                      [detail level 1234]
                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                       CBaseAnalogReader
                       CConfigurable
                       CNetworking
                       CSensor
                       CTransformBase
                       CWSClient
                       CEnable
                       CSensor
                       CTransformBase
                       CENUVector
                       CHTTPServer
                       CLedBlinker
                       CNMEAData
                       CNMEAParser
                       CObservable
                       CSensor
                       CSKEmitter
                       CSKListener
                       CParamInfo
                       CPosition
                       CCurveInterpolator::Sample
                       CSensESPApp
                       CSensESPAppBuilder
                       CSensorNXP_FXOS8700_FXAS21002
                       CSentenceParser
                       CGPGGASentenceParser
                       CGPGLLSentenceParser
                       CGPRMCSentenceParser
                       CPSTI030SentenceParser
                       CPSTI032SentenceParser
                       CPSTISentenceParser
                       CSKDelta
                       CTransform< C, P >
                       CThresholdTransform< C, P >
                       CTransform< float, bool >
                       CThresholdTransform< float, bool >
                       CTransform< float, float >
                       CLambdaTransform< float, float, float, float >
                       CSymmetricTransform< float >
                       CTransform< IN, OUT >
                       CLambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >Construct a new transform based on a single function
                       CLambdaTransform< IN, OUT, IN, IN, OUT, OUT >
                       CTransform< int, bool >
                       CThresholdTransform< int, bool >
                       CTransform< int, float >
                       CFrequency
                       CTransform< T, T >
                       CSymmetricTransform< T >
                       CTransform< time_t, String >
                       CTimeString
                       CValueConsumer< T >
                       CDigitalOutput
                       CValueProducer< T >
                       CObservableValue< T >
                       CSKValueListener< T >
                       CValueProducer< ENUVector >
                       CObservableValue< ENUVector >
                       CValueProducer< float >
                       CNumericSensor
                       CObservableValue< float >
                       CValueProducer< int >
                       CDigitalInputCounter
                       CDigitalInputValue
                       CIntegerSensor
                       CObservableValue< int >
                       CValueProducer< Position >
                       CObservableValue< Position >
                       CValueProducer< String >
                       CObservableValue< String >
                       CStringSensor
                       CValueProducer< time_t >
                       CObservableValue< time_t >
                       CValueProducer< uint32_t >
                       CFreeMem
                      +
                      +
                      +
                      + + + + diff --git a/docs/generated/docs/hierarchy.js b/docs/generated/docs/hierarchy.js new file mode 100644 index 000000000..8525952e5 --- /dev/null +++ b/docs/generated/docs/hierarchy.js @@ -0,0 +1,162 @@ +var hierarchy = +[ + [ "BaseAnalogReader", "class_base_analog_reader.html", null ], + [ "Configurable", "class_configurable.html", [ + [ "Networking", "class_networking.html", null ], + [ "Sensor", "class_sensor.html", [ + [ "ADS1x15< T_Ada_1x15 >", "class_a_d_s1x15.html", null ], + [ "BME280", "class_b_m_e280.html", null ], + [ "BMP280", "class_b_m_p280.html", null ], + [ "DallasTemperatureSensors", "class_dallas_temperature_sensors.html", null ], + [ "DigitalInput", "class_digital_input.html", [ + [ "DigitalInputCounter", "class_digital_input_counter.html", null ], + [ "DigitalInputValue", "class_digital_input_value.html", null ] + ] ], + [ "FreeMem", "class_free_mem.html", null ], + [ "GPSInput", "class_g_p_s_input.html", null ], + [ "INA219", "class_i_n_a219.html", null ], + [ "IntegerSensor", "class_integer_sensor.html", null ], + [ "NumericSensor", "class_numeric_sensor.html", [ + [ "ADS1x15Value< T_ads_1x15 >", "class_a_d_s1x15_value.html", null ], + [ "AnalogInput", "class_analog_input.html", null ], + [ "BME280Value", "class_b_m_e280_value.html", null ], + [ "BMP280Value", "class_b_m_p280_value.html", null ], + [ "INA219Value", "class_i_n_a219_value.html", null ], + [ "MAX31856Thermocouple", "class_m_a_x31856_thermocouple.html", null ], + [ "OneWireTemperature", "class_one_wire_temperature.html", null ], + [ "Read9DOF", "class_read9_d_o_f.html", null ], + [ "SHT31Value", "class_s_h_t31_value.html", null ], + [ "SystemHz", "class_system_hz.html", null ], + [ "UltrasonicDistance", "class_ultrasonic_distance.html", null ], + [ "Uptime", "class_uptime.html", null ], + [ "WifiSignal", "class_wifi_signal.html", null ] + ] ], + [ "Orientation9DOF", "class_orientation9_d_o_f.html", null ], + [ "SHT31", "class_s_h_t31.html", null ], + [ "StringSensor", "class_string_sensor.html", [ + [ "IPAddrDev", "class_i_p_addr_dev.html", null ] + ] ] + ] ], + [ "TransformBase", "class_transform_base.html", null ], + [ "WSClient", "class_w_s_client.html", null ] + ] ], + [ "Enable", "class_enable.html", [ + [ "Sensor", "class_sensor.html", null ], + [ "TransformBase", "class_transform_base.html", null ] + ] ], + [ "ENUVector", "struct_e_n_u_vector.html", null ], + [ "HTTPServer", "class_h_t_t_p_server.html", null ], + [ "LedBlinker", "class_led_blinker.html", null ], + [ "NMEAData", "struct_n_m_e_a_data.html", null ], + [ "NMEAParser", "class_n_m_e_a_parser.html", null ], + [ "Observable", "class_observable.html", [ + [ "Sensor", "class_sensor.html", null ], + [ "SKEmitter", "class_s_k_emitter.html", [ + [ "SKOutput< T >", "class_s_k_output.html", null ], + [ "SKOutputTime", "class_s_k_output_time.html", null ] + ] ], + [ "SKListener", "class_s_k_listener.html", [ + [ "SKValueListener< T >", "class_s_k_value_listener.html", null ] + ] ] + ] ], + [ "ParamInfo", "struct_param_info.html", null ], + [ "Position", "struct_position.html", null ], + [ "CurveInterpolator::Sample", "class_curve_interpolator_1_1_sample.html", null ], + [ "SensESPApp", "class_sens_e_s_p_app.html", null ], + [ "SensESPAppBuilder", "class_sens_e_s_p_app_builder.html", null ], + [ "SensorNXP_FXOS8700_FXAS21002", "class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html", null ], + [ "SentenceParser", "class_sentence_parser.html", [ + [ "GPGGASentenceParser", "class_g_p_g_g_a_sentence_parser.html", null ], + [ "GPGLLSentenceParser", "class_g_p_g_l_l_sentence_parser.html", null ], + [ "GPRMCSentenceParser", "class_g_p_r_m_c_sentence_parser.html", null ], + [ "PSTI030SentenceParser", "class_p_s_t_i030_sentence_parser.html", null ], + [ "PSTI032SentenceParser", "class_p_s_t_i032_sentence_parser.html", null ], + [ "PSTISentenceParser", "class_p_s_t_i_sentence_parser.html", null ] + ] ], + [ "SKDelta", "class_s_k_delta.html", null ], + [ "Transform< C, P >", "class_transform.html", [ + [ "ThresholdTransform< C, P >", "class_threshold_transform.html", null ] + ] ], + [ "Transform< float, bool >", "class_transform.html", [ + [ "ThresholdTransform< float, bool >", "class_threshold_transform.html", [ + [ "NumericThreshold", "class_numeric_threshold.html", null ] + ] ] + ] ], + [ "Transform< float, float >", "class_transform.html", [ + [ "LambdaTransform< float, float, float, float >", "class_lambda_transform.html", [ + [ "Linear", "class_linear.html", null ] + ] ], + [ "SymmetricTransform< float >", "class_symmetric_transform.html", [ + [ "ADS1x15Voltage", "class_a_d_s1x15_voltage.html", null ], + [ "AnalogVoltage", "class_analog_voltage.html", null ], + [ "AngleCorrection", "class_angle_correction.html", null ], + [ "ChangeFilter", "class_change_filter.html", null ], + [ "CurveInterpolator", "class_curve_interpolator.html", null ], + [ "Difference", "class_difference.html", null ], + [ "Integrator", "class_integrator.html", null ], + [ "Median", "class_median.html", null ], + [ "MovingAverage", "class_moving_average.html", null ], + [ "VoltageDividerR1", "class_voltage_divider_r1.html", null ], + [ "VoltageDividerR2", "class_voltage_divider_r2.html", null ], + [ "VoltageMultiplier", "class_voltage_multiplier.html", null ] + ] ] + ] ], + [ "Transform< IN, OUT >", "class_transform.html", [ + [ "LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >", "class_lambda_transform.html", null ], + [ "LambdaTransform< IN, OUT, IN, IN, OUT, OUT >", "class_lambda_transform.html", [ + [ "Hysteresis< IN, OUT >", "class_hysteresis.html", null ] + ] ] + ] ], + [ "Transform< int, bool >", "class_transform.html", [ + [ "ThresholdTransform< int, bool >", "class_threshold_transform.html", [ + [ "IntegerThreshold", "class_integer_threshold.html", null ] + ] ] + ] ], + [ "Transform< int, float >", "class_transform.html", [ + [ "Frequency", "class_frequency.html", null ] + ] ], + [ "Transform< T, T >", "class_transform.html", [ + [ "SymmetricTransform< T >", "class_symmetric_transform.html", [ + [ "Debounce", "class_debounce.html", null ], + [ "SKOutput< T >", "class_s_k_output.html", null ] + ] ] + ] ], + [ "Transform< time_t, String >", "class_transform.html", [ + [ "TimeString", "class_time_string.html", [ + [ "SKOutputTime", "class_s_k_output_time.html", null ] + ] ] + ] ], + [ "ValueConsumer< T >", "class_value_consumer.html", [ + [ "DigitalOutput", "class_digital_output.html", null ] + ] ], + [ "ValueProducer< T >", "class_value_producer.html", [ + [ "ObservableValue< T >", "class_observable_value.html", null ], + [ "SKValueListener< T >", "class_s_k_value_listener.html", null ] + ] ], + [ "ValueProducer< ENUVector >", "class_value_producer.html", [ + [ "ObservableValue< ENUVector >", "class_observable_value.html", null ] + ] ], + [ "ValueProducer< float >", "class_value_producer.html", [ + [ "NumericSensor", "class_numeric_sensor.html", null ], + [ "ObservableValue< float >", "class_observable_value.html", null ] + ] ], + [ "ValueProducer< int >", "class_value_producer.html", [ + [ "DigitalInputCounter", "class_digital_input_counter.html", null ], + [ "DigitalInputValue", "class_digital_input_value.html", null ], + [ "IntegerSensor", "class_integer_sensor.html", null ], + [ "ObservableValue< int >", "class_observable_value.html", null ] + ] ], + [ "ValueProducer< Position >", "class_value_producer.html", [ + [ "ObservableValue< Position >", "class_observable_value.html", null ] + ] ], + [ "ValueProducer< String >", "class_value_producer.html", [ + [ "ObservableValue< String >", "class_observable_value.html", null ], + [ "StringSensor", "class_string_sensor.html", null ] + ] ], + [ "ValueProducer< time_t >", "class_value_producer.html", [ + [ "ObservableValue< time_t >", "class_observable_value.html", null ] + ] ], + [ "ValueProducer< uint32_t >", "class_value_producer.html", [ + [ "FreeMem", "class_free_mem.html", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/generated/docs/http_8cpp.html b/docs/generated/docs/http_8cpp.html new file mode 100644 index 000000000..923a0b8a0 --- /dev/null +++ b/docs/generated/docs/http_8cpp.html @@ -0,0 +1,184 @@ + + + + + + + +SensESP: src/net/http.cpp File Reference + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      + +
                      +
                      http.cpp File Reference
                      +
                      +
                      +
                      #include "http.h"
                      +#include <FS.h>
                      +#include <functional>
                      +#include <ESPAsyncWebServer.h>
                      +#include "Arduino.h"
                      +#include "ArduinoJson.h"
                      +#include "AsyncJson.h"
                      +#include "sensesp_app.h"
                      +#include "system/configurable.h"
                      +#include "web/index.h"
                      +#include "web/js_jsoneditor.h"
                      +#include "web/js_sensesp.h"
                      +#include "web/setup.h"
                      +
                      +Include dependency graph for http.cpp:
                      +
                      +
                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                      +
                      +

                      Go to the source code of this file.

                      + + + + +

                      +Macros

                      #define HTTP_SERVER_PORT   80
                       
                      +

                      Macro Definition Documentation

                      + +

                      ◆ HTTP_SERVER_PORT

                      + +
                      +
                      + + + + +
                      #define HTTP_SERVER_PORT   80
                      +
                      + +

                      Definition at line 26 of file http.cpp.

                      + +
                      +
                      +
                      +
                      + + + + diff --git a/docs/generated/docs/http_8cpp.js b/docs/generated/docs/http_8cpp.js new file mode 100644 index 000000000..0a0937678 --- /dev/null +++ b/docs/generated/docs/http_8cpp.js @@ -0,0 +1,4 @@ +var http_8cpp = +[ + [ "HTTP_SERVER_PORT", "http_8cpp.html#a4f905ddd4da1a3e205a8935f4babb25b", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/http_8cpp__incl.map b/docs/generated/docs/http_8cpp__incl.map new file mode 100644 index 000000000..b4c90f903 --- /dev/null +++ b/docs/generated/docs/http_8cpp__incl.map @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/http_8cpp__incl.md5 b/docs/generated/docs/http_8cpp__incl.md5 new file mode 100644 index 000000000..8975bcd88 --- /dev/null +++ b/docs/generated/docs/http_8cpp__incl.md5 @@ -0,0 +1 @@ +689f3e4948ceddf61ff986ce53551422 \ No newline at end of file diff --git a/docs/generated/docs/http_8cpp__incl.png b/docs/generated/docs/http_8cpp__incl.png new file mode 100644 index 000000000..e28bbd873 Binary files /dev/null and b/docs/generated/docs/http_8cpp__incl.png differ diff --git a/docs/generated/docs/http_8cpp_source.html b/docs/generated/docs/http_8cpp_source.html new file mode 100644 index 000000000..5312768e8 --- /dev/null +++ b/docs/generated/docs/http_8cpp_source.html @@ -0,0 +1,349 @@ + + + + + + + +SensESP: src/net/http.cpp Source File + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      +
                      +
                      http.cpp
                      +
                      +
                      +Go to the documentation of this file.
                      1 #include "http.h"
                      +
                      2 
                      +
                      3 #include <FS.h>
                      +
                      4 
                      +
                      5 #include <functional>
                      +
                      6 #ifdef ESP32
                      +
                      7 #include "SPIFFS.h"
                      +
                      8 #endif
                      +
                      9 
                      +
                      10 #include <ESPAsyncWebServer.h>
                      +
                      11 
                      +
                      12 #include "Arduino.h"
                      +
                      13 #include "ArduinoJson.h"
                      +
                      14 #include "AsyncJson.h"
                      +
                      15 #include "sensesp_app.h"
                      +
                      16 #include "system/configurable.h"
                      +
                      17 
                      +
                      18 // Include the web UI stored in PROGMEM space
                      +
                      19 #include "web/index.h"
                      +
                      20 #include "web/js_jsoneditor.h"
                      +
                      21 #include "web/js_sensesp.h"
                      +
                      22 #include "web/setup.h"
                      +
                      23 
                      +
                      24 // HTTP port for the configuration interface
                      +
                      25 #ifndef HTTP_SERVER_PORT
                      +
                      26 #define HTTP_SERVER_PORT 80
                      +
                      27 #endif
                      +
                      28 
                      +
                      29 HTTPServer::HTTPServer(std::function<void()> reset_device) {
                      +
                      30  this->reset_device = reset_device;
                      +
                      31  server = new AsyncWebServer(HTTP_SERVER_PORT);
                      +
                      32  using std::placeholders::_1;
                      +
                      33 
                      +
                      34  server->onNotFound(std::bind(&HTTPServer::handle_not_found, this, _1));
                      +
                      35 
                      +
                      36  // Handle setting configuration values of a Configurable via a Json PUT to
                      +
                      37  // /config
                      +
                      38  AsyncCallbackJsonWebHandler* config_put_handler =
                      +
                      39  new AsyncCallbackJsonWebHandler(
                      +
                      40  "/config", [](AsyncWebServerRequest* request, JsonVariant& json) {
                      +
                      41  // omit the "/config" part of the url
                      +
                      42  String url_tail = request->url().substring(7);
                      +
                      43 
                      +
                      44  if (url_tail == "") {
                      +
                      45  request->send(405, "text/plain",
                      +
                      46  F("PUT to /config not allowed.\n"));
                      +
                      47  return;
                      +
                      48  }
                      +
                      49 
                      +
                      50  std::map<String, Configurable*>::iterator it =
                      +
                      51  configurables.find(url_tail);
                      +
                      52  if (it == configurables.end()) {
                      +
                      53  request->send(404, "text/plain",
                      +
                      54  F("Configuration key not found.\n"));
                      +
                      55  return;
                      +
                      56  }
                      +
                      57  Configurable* confable = it->second;
                      +
                      58 
                      +
                      59  JsonObject body = json.as<JsonObject>();
                      +
                      60 
                      +
                      61  if (!confable->set_configuration(body)) {
                      +
                      62  request->send(400, "text/plain",
                      +
                      63  F("Unable to extract keys from JSON.\n"));
                      +
                      64  return;
                      +
                      65  }
                      +
                      66  confable->save_configuration();
                      +
                      67  request->send(200, "text/plain", F("Configuration successful.\n"));
                      +
                      68  return;
                      +
                      69  });
                      +
                      70  config_put_handler->setMethod(HTTP_PUT);
                      +
                      71  server->addHandler(config_put_handler);
                      +
                      72 
                      +
                      73  // Handle requests to retrieve the current Json configuration of a
                      +
                      74  // Configurable via HTTP GET on /config
                      +
                      75  server->on("/config", HTTP_GET, [this](AsyncWebServerRequest* request) {
                      +
                      76  // omit the "/config" part of the url
                      +
                      77  String url_tail = request->url().substring(7);
                      +
                      78 
                      +
                      79  if (url_tail == "" || url_tail == "/") {
                      +
                      80  this->handle_config_list(request);
                      +
                      81  return;
                      +
                      82  }
                      +
                      83 
                      +
                      84  std::map<String, Configurable*>::iterator it = configurables.find(url_tail);
                      +
                      85  if (it == configurables.end()) {
                      +
                      86  request->send(404, "text/plain", F("Configuration key not found.\n"));
                      +
                      87  return;
                      +
                      88  }
                      +
                      89  Configurable* confable = it->second;
                      +
                      90 
                      +
                      91  AsyncResponseStream* response =
                      +
                      92  request->beginResponseStream("application/json");
                      +
                      93  DynamicJsonDocument json_doc(1024);
                      +
                      94  JsonObject config = json_doc.createNestedObject("config");
                      +
                      95  confable->get_configuration(config);
                      +
                      96  json_doc["schema"] = serialized(confable->get_config_schema());
                      +
                      97  serializeJson(json_doc, *response);
                      +
                      98  request->send(response);
                      +
                      99  });
                      +
                      100 
                      +
                      101  server->on("/", HTTP_GET, [](AsyncWebServerRequest* request) {
                      +
                      102  debugD("Serving index.html");
                      +
                      103  request->send_P(200, "text/html", PAGE_index);
                      +
                      104  });
                      +
                      105 
                      +
                      106  server->on("/setup", HTTP_GET, [](AsyncWebServerRequest* request) {
                      +
                      107  debugD("Serving setup.html");
                      +
                      108  request->send_P(200, "text/html", PAGE_setup);
                      +
                      109  });
                      +
                      110 
                      +
                      111  server->on("/js/jsoneditor.min.js", HTTP_GET,
                      +
                      112  [](AsyncWebServerRequest* request) {
                      +
                      113  debugD("Serving jsoneditor.min.js");
                      +
                      114  request->send_P(200, "text/javascript", PAGE_js_jsoneditor);
                      +
                      115  });
                      +
                      116 
                      +
                      117  server->on("/js/sensesp.js", HTTP_GET, [](AsyncWebServerRequest* request) {
                      +
                      118  debugD("Serving sensesp.js");
                      +
                      119  request->send_P(200, "text/javascript", PAGE_js_sensesp);
                      +
                      120  });
                      +
                      121 
                      +
                      122  server->on("/device/reset", HTTP_GET,
                      +
                      123  std::bind(&HTTPServer::handle_device_reset, this, _1));
                      +
                      124  server->on("/device/restart", HTTP_GET,
                      +
                      125  std::bind(&HTTPServer::handle_device_restart, this, _1));
                      +
                      126  server->on("/info", HTTP_GET, std::bind(&HTTPServer::handle_info, this, _1));
                      +
                      127 }
                      +
                      128 
                      +
                      129 void HTTPServer::handle_not_found(AsyncWebServerRequest* request) {
                      +
                      130  debugD("NOT_FOUND: ");
                      +
                      131  if (request->method() == HTTP_GET) {
                      +
                      132  debugD("GET");
                      +
                      133  } else if (request->method() == HTTP_POST) {
                      +
                      134  debugD("POST");
                      +
                      135  } else if (request->method() == HTTP_DELETE) {
                      +
                      136  debugD("DELETE");
                      +
                      137  } else if (request->method() == HTTP_PUT) {
                      +
                      138  debugD("PUT");
                      +
                      139  } else if (request->method() == HTTP_PATCH) {
                      +
                      140  debugD("PATCH");
                      +
                      141  } else if (request->method() == HTTP_HEAD) {
                      +
                      142  debugD("HEAD");
                      +
                      143  } else if (request->method() == HTTP_OPTIONS) {
                      +
                      144  debugD("OPTIONS");
                      +
                      145  } else {
                      +
                      146  debugD("UNKNOWN");
                      +
                      147  }
                      +
                      148  debugD(" http://%s%s\n", request->host().c_str(), request->url().c_str());
                      +
                      149 
                      +
                      150  if (request->contentLength()) {
                      +
                      151  debugD("_CONTENT_TYPE: %s\n", request->contentType().c_str());
                      +
                      152  debugD("_CONTENT_LENGTH: %u\n", request->contentLength());
                      +
                      153  }
                      +
                      154 
                      +
                      155  int headers = request->headers();
                      +
                      156  for (int i = 0; i < headers; i++) {
                      +
                      157  AsyncWebHeader* h = request->getHeader(i);
                      +
                      158  debugD("_HEADER[%s]: %s\n", h->name().c_str(), h->value().c_str());
                      +
                      159  }
                      +
                      160 
                      +
                      161  int params = request->params();
                      +
                      162  for (int i = 0; i < params; i++) {
                      +
                      163  AsyncWebParameter* p = request->getParam(i);
                      +
                      164  if (p->isFile()) {
                      +
                      165  debugD("_FILE[%s]: %s, size: %u\n", p->name().c_str(), p->value().c_str(),
                      +
                      166  p->size());
                      +
                      167  } else if (p->isPost()) {
                      +
                      168  debugD("_POST[%s]: %s\n", p->name().c_str(), p->value().c_str());
                      +
                      169  } else {
                      +
                      170  debugD("_GET[%s]: %s\n", p->name().c_str(), p->value().c_str());
                      +
                      171  }
                      +
                      172  }
                      +
                      173 
                      +
                      174  request->send(404);
                      +
                      175 }
                      +
                      176 
                      +
                      177 void HTTPServer::handle_config_list(AsyncWebServerRequest* request) {
                      +
                      178  AsyncResponseStream* response =
                      +
                      179  request->beginResponseStream("application/json");
                      +
                      180  DynamicJsonDocument json_doc(1024);
                      +
                      181  // JsonObject root = json_doc.as<JsonObject>();
                      +
                      182  JsonArray arr = json_doc.createNestedArray("keys");
                      +
                      183  for (auto it = configurables.begin(); it != configurables.end(); ++it) {
                      +
                      184  arr.add(it->first);
                      +
                      185  }
                      +
                      186  serializeJson(json_doc, *response);
                      +
                      187  request->send(response);
                      +
                      188 }
                      +
                      189 
                      +
                      190 void HTTPServer::handle_config(AsyncWebServerRequest* request) {
                      +
                      191  debugD("%s", request->url().c_str());
                      +
                      192  request->send(200, "text/plain", "/config");
                      +
                      193 }
                      +
                      194 
                      +
                      195 void HTTPServer::handle_device_reset(AsyncWebServerRequest* request) {
                      +
                      196  request->send(
                      +
                      197  200, "text/plain",
                      +
                      198  "OK, resetting the device settings back to factory defaults.\n");
                      +
                      199  app.onDelay(500, [this]() { this->reset_device(); });
                      +
                      200 }
                      +
                      201 
                      +
                      202 void HTTPServer::handle_device_restart(AsyncWebServerRequest* request) {
                      +
                      203  request->send(200, "text/plain", "OK, restarting\n");
                      +
                      204  app.onDelay(50, []() { ESP.restart(); });
                      +
                      205 }
                      +
                      206 
                      +
                      207 void HTTPServer::handle_info(AsyncWebServerRequest* request) {
                      +
                      208  auto* response = request->beginResponseStream("text/plain");
                      +
                      209 
                      +
                      210  response->setCode(200);
                      +
                      211  response->printf("Name: %s, build at %s %s\n",
                      +
                      212  sensesp_app->get_hostname().c_str(), __DATE__, __TIME__);
                      +
                      213 
                      +
                      214  response->printf("MAC: %s\n", WiFi.macAddress().c_str());
                      +
                      215  response->printf("WiFi signal: %d\n", WiFi.RSSI());
                      +
                      216 
                      +
                      217  response->printf("SSID: %s\n", WiFi.SSID().c_str());
                      +
                      218 
                      +
                      219  response->printf("Signal K server address: %s\n",
                      +
                      220  sensesp_app->ws_client->get_server_address().c_str());
                      +
                      221  response->printf("Signal K server port: %d\n",
                      +
                      222  sensesp_app->ws_client->get_server_port());
                      +
                      223 
                      +
                      224  request->send(response);
                      +
                      225 }
                      +
                      +
                      +
                      HTTPServer(std::function< void()> reset_device)
                      Definition: http.cpp:29
                      +
                      void handle_device_reset(AsyncWebServerRequest *request)
                      Definition: http.cpp:195
                      + +
                      const String get_server_address()
                      Definition: ws_client.h:32
                      +
                      const uint16_t get_server_port()
                      Definition: ws_client.h:33
                      + +
                      virtual void save_configuration()
                      +
                      void handle_device_restart(AsyncWebServerRequest *request)
                      Definition: http.cpp:202
                      +
                      void handle_config(AsyncWebServerRequest *request)
                      Definition: http.cpp:190
                      +
                      SensESPApp * sensesp_app
                      +
                      virtual void get_configuration(JsonObject &configObject)
                      +
                      void handle_info(AsyncWebServerRequest *request)
                      Definition: http.cpp:207
                      +
                      virtual String get_config_schema()
                      +
                      void handle_not_found(AsyncWebServerRequest *request)
                      Definition: http.cpp:129
                      + +
                      #define HTTP_SERVER_PORT
                      Definition: http.cpp:26
                      + +
                      std::map< String, Configurable * > configurables
                      + +
                      ReactESP app
                      + + + +
                      String get_hostname()
                      + + + + diff --git a/docs/generated/docs/http_8h.html b/docs/generated/docs/http_8h.html new file mode 100644 index 000000000..c9255a4c2 --- /dev/null +++ b/docs/generated/docs/http_8h.html @@ -0,0 +1,141 @@ + + + + + + + +SensESP: src/net/http.h File Reference + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      + +
                      +
                      http.h File Reference
                      +
                      +
                      +
                      #include <ESPAsyncWebServer.h>
                      +#include <functional>
                      +
                      +Include dependency graph for http.h:
                      +
                      +
                      + + + + + +
                      +
                      +This graph shows which files directly or indirectly include this file:
                      +
                      +
                      + + + + + + + + + + + + + + +
                      +
                      +

                      Go to the source code of this file.

                      + + + + +

                      +Classes

                      class  HTTPServer
                       
                      +
                      +
                      + + + + diff --git a/docs/generated/docs/http_8h__dep__incl.map b/docs/generated/docs/http_8h__dep__incl.map new file mode 100644 index 000000000..9a5cc5fd5 --- /dev/null +++ b/docs/generated/docs/http_8h__dep__incl.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/docs/generated/docs/http_8h__dep__incl.md5 b/docs/generated/docs/http_8h__dep__incl.md5 new file mode 100644 index 000000000..2d8a90c4d --- /dev/null +++ b/docs/generated/docs/http_8h__dep__incl.md5 @@ -0,0 +1 @@ +f4ff63435eb5fbc30d73250e5bffa676 \ No newline at end of file diff --git a/docs/generated/docs/http_8h__dep__incl.png b/docs/generated/docs/http_8h__dep__incl.png new file mode 100644 index 000000000..2bae5aef0 Binary files /dev/null and b/docs/generated/docs/http_8h__dep__incl.png differ diff --git a/docs/generated/docs/http_8h__incl.map b/docs/generated/docs/http_8h__incl.map new file mode 100644 index 000000000..5159b300e --- /dev/null +++ b/docs/generated/docs/http_8h__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/http_8h__incl.md5 b/docs/generated/docs/http_8h__incl.md5 new file mode 100644 index 000000000..1f0ab4f6c --- /dev/null +++ b/docs/generated/docs/http_8h__incl.md5 @@ -0,0 +1 @@ +03b8eed3ba7d2c59c4298b781ba69643 \ No newline at end of file diff --git a/docs/generated/docs/http_8h__incl.png b/docs/generated/docs/http_8h__incl.png new file mode 100644 index 000000000..f2d8cbf26 Binary files /dev/null and b/docs/generated/docs/http_8h__incl.png differ diff --git a/docs/generated/docs/http_8h_source.html b/docs/generated/docs/http_8h_source.html new file mode 100644 index 000000000..44ff2376d --- /dev/null +++ b/docs/generated/docs/http_8h_source.html @@ -0,0 +1,134 @@ + + + + + + + +SensESP: src/net/http.h Source File + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      +
                      +
                      http.h
                      +
                      +
                      +Go to the documentation of this file.
                      1 #ifndef _http_H_
                      +
                      2 #define _http_H_
                      +
                      3 
                      +
                      4 #include <ESPAsyncWebServer.h>
                      +
                      5 
                      +
                      6 #include <functional>
                      +
                      7 
                      +
                      8 class HTTPServer {
                      +
                      9  public:
                      +
                      10  HTTPServer(std::function<void()> reset_device);
                      +
                      11  ~HTTPServer() { delete server; }
                      +
                      12  void enable() { server->begin(); }
                      +
                      13  void handle_not_found(AsyncWebServerRequest* request);
                      +
                      14  void handle_config(AsyncWebServerRequest* request);
                      +
                      15  void handle_device_reset(AsyncWebServerRequest* request);
                      +
                      16  void handle_device_restart(AsyncWebServerRequest* request);
                      +
                      17  void handle_info(AsyncWebServerRequest* request);
                      +
                      18 
                      +
                      19  private:
                      +
                      20  AsyncWebServer* server;
                      +
                      21  std::function<void()> reset_device;
                      +
                      22  void handle_config_list(AsyncWebServerRequest* request);
                      +
                      23 };
                      +
                      24 
                      +
                      25 #endif
                      +
                      +
                      +
                      HTTPServer(std::function< void()> reset_device)
                      Definition: http.cpp:29
                      +
                      void handle_device_reset(AsyncWebServerRequest *request)
                      Definition: http.cpp:195
                      +
                      void handle_device_restart(AsyncWebServerRequest *request)
                      Definition: http.cpp:202
                      +
                      void handle_config(AsyncWebServerRequest *request)
                      Definition: http.cpp:190
                      +
                      void handle_info(AsyncWebServerRequest *request)
                      Definition: http.cpp:207
                      +
                      void handle_not_found(AsyncWebServerRequest *request)
                      Definition: http.cpp:129
                      +
                      void enable()
                      Definition: http.h:12
                      +
                      ~HTTPServer()
                      Definition: http.h:11
                      +
                      Definition: http.h:8
                      + + + + diff --git a/docs/generated/docs/hysteresis_8h.html b/docs/generated/docs/hysteresis_8h.html new file mode 100644 index 000000000..99c9889be --- /dev/null +++ b/docs/generated/docs/hysteresis_8h.html @@ -0,0 +1,176 @@ + + + + + + + +SensESP: src/transforms/hysteresis.h File Reference + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      + +
                      +
                      hysteresis.h File Reference
                      +
                      +
                      +
                      #include "lambda_transform.h"
                      +
                      +Include dependency graph for hysteresis.h:
                      +
                      +
                      + + + + + + + + + + + + + + + + + + + + + + +
                      +
                      +This graph shows which files directly or indirectly include this file:
                      +
                      +
                      + + + + +
                      +
                      +

                      Go to the source code of this file.

                      + + + + + +

                      +Classes

                      class  Hysteresis< IN, OUT >
                       Hysteresis function. More...
                       
                      + + + +

                      +Variables

                      const ParamInfo hysteresis_param_info [4]
                       
                      +

                      Variable Documentation

                      + +

                      ◆ hysteresis_param_info

                      + +
                      +
                      + + + + +
                      const ParamInfo hysteresis_param_info[4]
                      +
                      +Initial value:
                      = {
                      +
                      {"lower_threshold", "Lower threshold"},
                      +
                      {"upper_threshold", "Upper threshold"},
                      +
                      {"low_output", "Low output"},
                      +
                      {"high_output", "High output"}}
                      +
                      +

                      Definition at line 7 of file hysteresis.h.

                      + +
                      +
                      +
                      +
                      + + + + diff --git a/docs/generated/docs/hysteresis_8h.js b/docs/generated/docs/hysteresis_8h.js new file mode 100644 index 000000000..297865377 --- /dev/null +++ b/docs/generated/docs/hysteresis_8h.js @@ -0,0 +1,5 @@ +var hysteresis_8h = +[ + [ "Hysteresis", "class_hysteresis.html", "class_hysteresis" ], + [ "hysteresis_param_info", "hysteresis_8h.html#a7e7f7cc8e64ad4edaf12f0937589db19", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/hysteresis_8h__dep__incl.map b/docs/generated/docs/hysteresis_8h__dep__incl.map new file mode 100644 index 000000000..e38ea085d --- /dev/null +++ b/docs/generated/docs/hysteresis_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/hysteresis_8h__dep__incl.md5 b/docs/generated/docs/hysteresis_8h__dep__incl.md5 new file mode 100644 index 000000000..503523797 --- /dev/null +++ b/docs/generated/docs/hysteresis_8h__dep__incl.md5 @@ -0,0 +1 @@ +cf026869861597e9a3b6999c42f4d63c \ No newline at end of file diff --git a/docs/generated/docs/hysteresis_8h__dep__incl.png b/docs/generated/docs/hysteresis_8h__dep__incl.png new file mode 100644 index 000000000..35e2f511c Binary files /dev/null and b/docs/generated/docs/hysteresis_8h__dep__incl.png differ diff --git a/docs/generated/docs/hysteresis_8h__incl.map b/docs/generated/docs/hysteresis_8h__incl.map new file mode 100644 index 000000000..a1d621e1c --- /dev/null +++ b/docs/generated/docs/hysteresis_8h__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/hysteresis_8h__incl.md5 b/docs/generated/docs/hysteresis_8h__incl.md5 new file mode 100644 index 000000000..2e82a6208 --- /dev/null +++ b/docs/generated/docs/hysteresis_8h__incl.md5 @@ -0,0 +1 @@ +d9775144e70035043b9e5fb5ca9e62d0 \ No newline at end of file diff --git a/docs/generated/docs/hysteresis_8h__incl.png b/docs/generated/docs/hysteresis_8h__incl.png new file mode 100644 index 000000000..1ca930dbb Binary files /dev/null and b/docs/generated/docs/hysteresis_8h__incl.png differ diff --git a/docs/generated/docs/hysteresis_8h_source.html b/docs/generated/docs/hysteresis_8h_source.html new file mode 100644 index 000000000..b25c4b8fb --- /dev/null +++ b/docs/generated/docs/hysteresis_8h_source.html @@ -0,0 +1,145 @@ + + + + + + + +SensESP: src/transforms/hysteresis.h Source File + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      +
                      +
                      hysteresis.h
                      +
                      +
                      +Go to the documentation of this file.
                      1 #ifndef _hysteresis_H_
                      +
                      2 #define _hysteresis_H_
                      +
                      3 
                      +
                      4 #include "lambda_transform.h"
                      +
                      5 
                      +
                      6 // Web UI parameter name definition
                      + +
                      8  {"lower_threshold", "Lower threshold"},
                      +
                      9  {"upper_threshold", "Upper threshold"},
                      +
                      10  {"low_output", "Low output"},
                      +
                      11  {"high_output", "High output"}};
                      +
                      12 
                      +
                      29 template <class IN, class OUT>
                      +
                      30 // Hysteresis inherits from a specialized LambdaTransform type
                      +
                      31 class Hysteresis : public LambdaTransform<IN, OUT, IN, IN, OUT, OUT> {
                      +
                      32  public:
                      +
                      33  Hysteresis(IN lower_threshold, IN upper_threshold, OUT low_output,
                      +
                      34  OUT high_output, String config_path = "")
                      +
                      35  : LambdaTransform<IN, OUT, IN, IN, OUT, OUT>(
                      +
                      36  &(Hysteresis::function), lower_threshold, upper_threshold,
                      +
                      37  low_output, high_output, hysteresis_param_info, config_path) {}
                      +
                      38 
                      +
                      39  private:
                      +
                      40  // Function implementing the actual hysteresis logic
                      +
                      41  static OUT function(IN input, IN lower_threshold, IN upper_threshold,
                      +
                      42  OUT low_output, OUT high_output) {
                      +
                      43  static OUT last_value = low_output;
                      +
                      44  if (input < lower_threshold) {
                      +
                      45  last_value = low_output;
                      +
                      46  } else if (upper_threshold <= input) {
                      +
                      47  last_value = high_output;
                      +
                      48  }
                      +
                      49  // If neither of the above conditions were met, input is between the
                      +
                      50  // lower and upper thresholds (in the hysteresis region)
                      +
                      51  return last_value;
                      +
                      52  };
                      +
                      53 };
                      +
                      54 
                      +
                      55 #endif
                      +
                      +
                      +
                      const ParamInfo hysteresis_param_info[4]
                      Definition: hysteresis.h:7
                      + +
                      Construct a new transform based on a single function.
                      +
                      Hysteresis function.
                      Definition: hysteresis.h:31
                      +
                      Hysteresis(IN lower_threshold, IN upper_threshold, OUT low_output, OUT high_output, String config_path="")
                      Definition: hysteresis.h:33
                      + + + + + diff --git a/docs/generated/docs/ina219_8cpp.html b/docs/generated/docs/ina219_8cpp.html new file mode 100644 index 000000000..d6dc2835c --- /dev/null +++ b/docs/generated/docs/ina219_8cpp.html @@ -0,0 +1,134 @@ + + + + + + + +SensESP: src/sensors/ina219.cpp File Reference + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      +
                      +
                      ina219.cpp File Reference
                      +
                      +
                      +
                      #include "ina219.h"
                      +#include "sensesp.h"
                      +#include <RemoteDebug.h>
                      +
                      +Include dependency graph for ina219.cpp:
                      +
                      +
                      + + + + + + + + + + + + + + + + + + + + + + + + +
                      +
                      +

                      Go to the source code of this file.

                      +
                      +
                      + + + + diff --git a/docs/generated/docs/ina219_8cpp__incl.map b/docs/generated/docs/ina219_8cpp__incl.map new file mode 100644 index 000000000..cbf323409 --- /dev/null +++ b/docs/generated/docs/ina219_8cpp__incl.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/ina219_8cpp__incl.md5 b/docs/generated/docs/ina219_8cpp__incl.md5 new file mode 100644 index 000000000..2046b0454 --- /dev/null +++ b/docs/generated/docs/ina219_8cpp__incl.md5 @@ -0,0 +1 @@ +ffb95d0eeb1a0776922131cbb864731b \ No newline at end of file diff --git a/docs/generated/docs/ina219_8cpp__incl.png b/docs/generated/docs/ina219_8cpp__incl.png new file mode 100644 index 000000000..b9615e5b8 Binary files /dev/null and b/docs/generated/docs/ina219_8cpp__incl.png differ diff --git a/docs/generated/docs/ina219_8cpp_source.html b/docs/generated/docs/ina219_8cpp_source.html new file mode 100644 index 000000000..c561be8ad --- /dev/null +++ b/docs/generated/docs/ina219_8cpp_source.html @@ -0,0 +1,213 @@ + + + + + + + +SensESP: src/sensors/ina219.cpp Source File + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      +
                      +
                      ina219.cpp
                      +
                      +
                      +Go to the documentation of this file.
                      1 #include "ina219.h"
                      +
                      2 
                      +
                      3 #include "sensesp.h"
                      +
                      4 //#include "i2c_tools.h"
                      +
                      5 #include <RemoteDebug.h>
                      +
                      6 
                      +
                      7 // INA219 represents an ADAfruit (or compatible) INA219 High Side DC Current
                      +
                      8 // Sensor.
                      +
                      9 INA219::INA219(uint8_t addr, INA219CAL_t calibration_setting,
                      +
                      10  String config_path)
                      +
                      11  : Sensor(config_path) {
                      + +
                      13  ina219 = new Adafruit_INA219(addr);
                      +
                      14  ina219->begin();
                      +
                      15  // Default calibration in the Adafruit_INA219 constructor is 32V and 2A, so
                      +
                      16  // that's what it will be unless it's set to something different in the call
                      +
                      17  // to this constructor:
                      +
                      18  if (calibration_setting == cal32_1) {
                      +
                      19  ina219->setCalibration_32V_1A();
                      +
                      20  } else if (calibration_setting == cal16_400) {
                      +
                      21  ina219->setCalibration_16V_400mA();
                      +
                      22  }
                      +
                      23 }
                      +
                      24 
                      +
                      25 // INA219Value reads and outputs the specified type of value of a INA219 sensor
                      + +
                      27  uint read_delay, String config_path)
                      +
                      28  : NumericSensor(config_path),
                      +
                      29  ina219{ina219},
                      +
                      30  val_type{val_type},
                      +
                      31  read_delay{read_delay} {
                      +
                      32  load_configuration();
                      +
                      33 }
                      +
                      34 
                      + +
                      36  app.onRepeat(read_delay, [this]() {
                      +
                      37  switch (val_type) {
                      +
                      38  case bus_voltage:
                      +
                      39  output = ina219->ina219->getBusVoltage_V();
                      +
                      40  break;
                      +
                      41  case shunt_voltage:
                      +
                      42  output = (ina219->ina219->getShuntVoltage_mV() /
                      +
                      43  1000); // SK wants volts, not mV
                      +
                      44  break;
                      +
                      45  case current:
                      +
                      46  output =
                      +
                      47  (ina219->ina219->getCurrent_mA() / 1000); // SK wants amps, not mA
                      +
                      48  break;
                      +
                      49  case power:
                      +
                      50  output =
                      +
                      51  (ina219->ina219->getPower_mW() / 1000); // SK want watts, not mW
                      +
                      52  break;
                      +
                      53  case load_voltage:
                      +
                      54  output = (ina219->ina219->getBusVoltage_V() +
                      +
                      55  (ina219->ina219->getShuntVoltage_mV() / 1000));
                      +
                      56  break;
                      +
                      57  default:
                      +
                      58  debugE("FATAL: invalid val_type parameter.");
                      +
                      59  }
                      +
                      60 
                      +
                      61  notify();
                      +
                      62  });
                      +
                      63 }
                      +
                      64 
                      +
                      65 void INA219Value::get_configuration(JsonObject& root) {
                      +
                      66  root["read_delay"] = read_delay;
                      +
                      67  root["value"] = output;
                      +
                      68 }
                      +
                      69 
                      +
                      70 static const char SCHEMA[] PROGMEM = R"###({
                      +
                      71  "type": "object",
                      +
                      72  "properties": {
                      +
                      73  "read_delay": { "title": "Read delay", "type": "number", "description": "The time, in milliseconds, between each read of the input" },
                      +
                      74  "value": { "title": "Last value", "type" : "number", "readOnly": true }
                      +
                      75  }
                      +
                      76  })###";
                      +
                      77 
                      +
                      78 String INA219Value::get_config_schema() { return FPSTR(SCHEMA); }
                      +
                      79 
                      +
                      80 bool INA219Value::set_configuration(const JsonObject& config) {
                      +
                      81  String expected[] = {"read_delay"};
                      +
                      82  for (auto str : expected) {
                      +
                      83  if (!config.containsKey(str)) {
                      +
                      84  return false;
                      +
                      85  }
                      +
                      86  }
                      +
                      87  read_delay = config["read_delay"];
                      +
                      88  return true;
                      +
                      89 }
                      +
                      +
                      + +
                      Definition: ina219.h:21
                      +
                      @ cal32_1
                      Definition: ina219.h:14
                      +
                      INA219 * ina219
                      Definition: ina219.h:38
                      +
                      void notify()
                      Definition: observable.cpp:3
                      + +
                      @ current
                      Definition: ina219.h:30
                      +
                      const char PAGE_index[] PROGMEM
                      Definition: index.h:2
                      +
                      @ shunt_voltage
                      Definition: ina219.h:30
                      +
                      @ cal16_400
                      Definition: ina219.h:14
                      +
                      INA219Value(INA219 *ina219, INA219ValType val_type, uint read_delay=500, String config_path="")
                      Definition: ina219.cpp:26
                      +
                      @ power
                      Definition: ina219.h:30
                      +
                      INA219CAL_t
                      Definition: ina219.h:14
                      +
                      INA219ValType
                      Definition: ina219.h:30
                      + +
                      virtual void load_configuration()
                      +
                      Adafruit_INA219 * ina219
                      Definition: ina219.h:25
                      +
                      @ bus_voltage
                      Definition: ina219.h:30
                      +
                      @ load_voltage
                      Definition: ina219.h:30
                      + +
                      INA219(uint8_t addr=0x40, INA219CAL_t calibration_setting=cal32_2, String config_path="")
                      Definition: ina219.cpp:9
                      +
                      ReactESP app
                      +
                      void enable() override final
                      Definition: ina219.cpp:35
                      +
                      Definition: sensor.h:15
                      + + + + diff --git a/docs/generated/docs/ina219_8h.html b/docs/generated/docs/ina219_8h.html new file mode 100644 index 000000000..354512532 --- /dev/null +++ b/docs/generated/docs/ina219_8h.html @@ -0,0 +1,239 @@ + + + + + + + +SensESP: src/sensors/ina219.h File Reference + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      + +
                      +
                      ina219.h File Reference
                      +
                      +
                      +
                      #include <Adafruit_INA219.h>
                      +#include <Wire.h>
                      +#include "sensor.h"
                      +
                      +Include dependency graph for ina219.h:
                      +
                      +
                      + + + + + + + + + + + + + + + + + + + + + + + +
                      +
                      +This graph shows which files directly or indirectly include this file:
                      +
                      +
                      + + + + +
                      +
                      +

                      Go to the source code of this file.

                      + + + + + + +

                      +Classes

                      class  INA219
                       
                      class  INA219Value
                       
                      + + + +

                      +Typedefs

                      typedef INA219Value INA219value
                       
                      + + + + + +

                      +Enumerations

                      enum  INA219CAL_t { cal32_2, +cal32_1, +cal16_400 + }
                       
                      enum  INA219ValType {
                      +  bus_voltage, +shunt_voltage, +current, +power, +
                      +  load_voltage +
                      + }
                       
                      +

                      Typedef Documentation

                      + +

                      ◆ INA219value

                      + +
                      +
                      + + + + +
                      typedef INA219Value INA219value
                      +
                      + +

                      Definition at line 50 of file ina219.h.

                      + +
                      +
                      +

                      Enumeration Type Documentation

                      + +

                      ◆ INA219CAL_t

                      + +
                      +
                      + + + + +
                      enum INA219CAL_t
                      +
                      + + + + +
                      Enumerator
                      cal32_2 
                      cal32_1 
                      cal16_400 
                      + +

                      Definition at line 14 of file ina219.h.

                      + +
                      +
                      + +

                      ◆ INA219ValType

                      + +
                      +
                      + + + + +
                      enum INA219ValType
                      +
                      + + + + + + +
                      Enumerator
                      bus_voltage 
                      shunt_voltage 
                      current 
                      power 
                      load_voltage 
                      + +

                      Definition at line 30 of file ina219.h.

                      + +
                      +
                      +
                      +
                      + + + + diff --git a/docs/generated/docs/ina219_8h.js b/docs/generated/docs/ina219_8h.js new file mode 100644 index 000000000..0bca1ee10 --- /dev/null +++ b/docs/generated/docs/ina219_8h.js @@ -0,0 +1,18 @@ +var ina219_8h = +[ + [ "INA219", "class_i_n_a219.html", "class_i_n_a219" ], + [ "INA219Value", "class_i_n_a219_value.html", "class_i_n_a219_value" ], + [ "INA219value", "ina219_8h.html#aab1b0e7a44b1751e455f2f0716da1794", null ], + [ "INA219CAL_t", "ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0", [ + [ "cal32_2", "ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0ae0ccdd359f693e07141b4bcef13e149a", null ], + [ "cal32_1", "ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0a588648d40e059f0ff2d9297aedbbf915", null ], + [ "cal16_400", "ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0a01a08da826cf9ddb397bf94f3cea755c", null ] + ] ], + [ "INA219ValType", "ina219_8h.html#a80681f57fd3d14d390d830a2ea845654", [ + [ "bus_voltage", "ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a111ba01d5017c5f1829f20d73348f03f", null ], + [ "shunt_voltage", "ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a02073ae5cd2835f972526f8a03dd2af1", null ], + [ "current", "ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a8225bfb34b5298eb7529ec580a4d178e", null ], + [ "power", "ina219_8h.html#a80681f57fd3d14d390d830a2ea845654af8c33b3fcc6333e88c55e603007e9fe4", null ], + [ "load_voltage", "ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a3edc24834fa7d8deb140997b6e64b067", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/generated/docs/ina219_8h__dep__incl.map b/docs/generated/docs/ina219_8h__dep__incl.map new file mode 100644 index 000000000..fdef3bd31 --- /dev/null +++ b/docs/generated/docs/ina219_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/ina219_8h__dep__incl.md5 b/docs/generated/docs/ina219_8h__dep__incl.md5 new file mode 100644 index 000000000..66e5b4c40 --- /dev/null +++ b/docs/generated/docs/ina219_8h__dep__incl.md5 @@ -0,0 +1 @@ +2507d535e497b81cfbc9379846b678d0 \ No newline at end of file diff --git a/docs/generated/docs/ina219_8h__dep__incl.png b/docs/generated/docs/ina219_8h__dep__incl.png new file mode 100644 index 000000000..66dd2aebc Binary files /dev/null and b/docs/generated/docs/ina219_8h__dep__incl.png differ diff --git a/docs/generated/docs/ina219_8h__incl.map b/docs/generated/docs/ina219_8h__incl.map new file mode 100644 index 000000000..0c85c86ab --- /dev/null +++ b/docs/generated/docs/ina219_8h__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/ina219_8h__incl.md5 b/docs/generated/docs/ina219_8h__incl.md5 new file mode 100644 index 000000000..4534edfd3 --- /dev/null +++ b/docs/generated/docs/ina219_8h__incl.md5 @@ -0,0 +1 @@ +0e9ff6da81e553a680e8c55998a44a8d \ No newline at end of file diff --git a/docs/generated/docs/ina219_8h__incl.png b/docs/generated/docs/ina219_8h__incl.png new file mode 100644 index 000000000..add7338d0 Binary files /dev/null and b/docs/generated/docs/ina219_8h__incl.png differ diff --git a/docs/generated/docs/ina219_8h_source.html b/docs/generated/docs/ina219_8h_source.html new file mode 100644 index 000000000..fc0b8c283 --- /dev/null +++ b/docs/generated/docs/ina219_8h_source.html @@ -0,0 +1,174 @@ + + + + + + + +SensESP: src/sensors/ina219.h Source File + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      +
                      SensESP +  0.4.3 +
                      +
                      Universal Signal K sensor framework for ESP8266 and ESP32
                      +
                      +
                      + + + + + + + +
                      +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + + +
                      + +
                      + +
                      +
                      +
                      ina219.h
                      +
                      +
                      +Go to the documentation of this file.
                      1 #ifndef _ina219_H_
                      +
                      2 #define _ina219_H_
                      +
                      3 
                      +
                      4 #include <Adafruit_INA219.h>
                      +
                      5 #include <Wire.h>
                      +
                      6 
                      +
                      7 #include "sensor.h"
                      +
                      8 
                      +
                      9 // The INA219 classes are based on the ADAfruit_INA219 library.
                      +
                      10 
                      +
                      11 // These are the used to tell the constructor what to set for maximum voltage
                      +
                      12 // and amperage. The default in the Adafruit constructor is 32V and 2A, so we
                      +
                      13 // only need to handle the other two.
                      + +
                      15 
                      +
                      16 // INA219 represents an ADAfruit (or compatible) INA219 High Side DC Current
                      +
                      17 // Sensor. The constructor creates a pointer to the instance, and starts up the
                      +
                      18 // sensor. The pointer is passed to INA219value, which retrieves the specified
                      +
                      19 // value.
                      +
                      20 //
                      +
                      21 class INA219 : public Sensor {
                      +
                      22  public:
                      +
                      23  INA219(uint8_t addr = 0x40, INA219CAL_t calibration_setting = cal32_2,
                      +
                      24  String config_path = "");
                      +
                      25  Adafruit_INA219* ina219;
                      +
                      26 };
                      +
                      27 
                      +
                      28 // Pass one of these in the constructor to INA219value() to tell which type of
                      +
                      29 // value you want to output
                      + +
                      31 
                      +
                      32 // INA219Value reads and outputs the specified value of a INA219 sensor.
                      +
                      33 class INA219Value : public NumericSensor {
                      +
                      34  public:
                      +
                      35  INA219Value(INA219* ina219, INA219ValType val_type, uint read_delay = 500,
                      +
                      36  String config_path = "");
                      +
                      37  void enable() override final;
                      + +
                      39 
                      +
                      40  private:
                      +
                      41  INA219ValType val_type;
                      +
                      42  uint read_delay;
                      +
                      43  virtual void get_configuration(JsonObject& doc) override;
                      +
                      44  virtual bool set_configuration(const JsonObject& config) override;
                      +
                      45  virtual String get_config_schema() override;
                      +
                      46 };
                      +
                      47 
                      +
                      48 // FIXME: Uncomment the following once the PIO Xtensa toolchain is updated
                      +
                      49 // [[deprecated("Use INA219Value instead.")]]
                      + +
                      51 
                      +
                      52 #endif
                      +
                      +
                      +
                      Definition: ina219.h:21
                      +
                      @ cal32_1
                      Definition: ina219.h:14
                      +
                      INA219 * ina219
                      Definition: ina219.h:38
                      +
                      @ current
                      Definition: ina219.h:30
                      +
                      @ cal32_2
                      Definition: ina219.h:14
                      + +
                      @ shunt_voltage
                      Definition: ina219.h:30
                      +
                      @ cal16_400
                      Definition: ina219.h:14
                      +
                      INA219Value(INA219 *ina219, INA219ValType val_type, uint read_delay=500, String config_path="")
                      Definition: ina219.cpp:26
                      +
                      @ power
                      Definition: ina219.h:30
                      +
                      INA219CAL_t
                      Definition: ina219.h:14
                      +
                      INA219ValType
                      Definition: ina219.h:30
                      + +
                      Adafruit_INA219 * ina219
                      Definition: ina219.h:25
                      +
                      const String config_path
                      Definition: configurable.h:31
                      +
                      @ bus_voltage
                      Definition: ina219.h:30
                      +
                      @ load_voltage
                      Definition: ina219.h:30
                      + +
                      INA219(uint8_t addr=0x40, INA219CAL_t calibration_setting=cal32_2, String config_path="")
                      Definition: ina219.cpp:9
                      +
                      INA219Value INA219value
                      Definition: ina219.h:50
                      +
                      void enable() override final
                      Definition: ina219.cpp:35
                      +
                      Definition: sensor.h:15
                      + + + + diff --git a/docs/index.html b/docs/generated/docs/index.html similarity index 87% rename from docs/index.html rename to docs/generated/docs/index.html index 2b27c72ef..ded24cc33 100644 --- a/docs/index.html +++ b/docs/generated/docs/index.html @@ -3,7 +3,7 @@ - + SensESP: Main Page @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
          - +
          @@ -96,9 +92,7 @@ diff --git a/docs/generated/docs/index_8h.html b/docs/generated/docs/index_8h.html new file mode 100644 index 000000000..d23892d60 --- /dev/null +++ b/docs/generated/docs/index_8h.html @@ -0,0 +1,164 @@ + + + + + + + +SensESP: src/net/web/index.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          index.h File Reference
          +
          +
          +
          #include <pgmspace.h>
          +
          +Include dependency graph for index.h:
          +
          +
          + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Variables

          const char PAGE_index[] PROGMEM
           
          +

          Variable Documentation

          + +

          ◆ PROGMEM

          + +
          +
          + + + + +
          const char PAGE_index [] PROGMEM
          +
          +Initial value:
          = R"=====(
          +
          <html>
          +
          <head>
          +
          <title>SensESP Device</title>
          +
          </head>
          +
          <body>
          +
          <h1>SensESP Device</h1>
          +
          Your options:
          +
          <ul>
          +
          <li><a href="/info">Device information</a></li>
          +
          <li><a href="/setup">Configure device</a></li>
          +
          <li><a href="/device/restart" onclick="return confirm('Restart the device?')">Restart device</a></li>
          +
          <li><a href="/device/reset" onclick="return confirm('Are you sure you want to reset device to factory settings?')">Reset device</a></li>
          +
          </ul>
          +
          </body>
          +
          </html>
          +
          +
          )====="
          +
          +

          Definition at line 2 of file index.h.

          + +
          +
          +
          +
          + + + + diff --git a/docs/index_8h.js b/docs/generated/docs/index_8h.js similarity index 100% rename from docs/index_8h.js rename to docs/generated/docs/index_8h.js diff --git a/docs/index_8h__dep__incl.map b/docs/generated/docs/index_8h__dep__incl.map similarity index 100% rename from docs/index_8h__dep__incl.map rename to docs/generated/docs/index_8h__dep__incl.map diff --git a/docs/generated/docs/index_8h__dep__incl.md5 b/docs/generated/docs/index_8h__dep__incl.md5 new file mode 100644 index 000000000..d6d682727 --- /dev/null +++ b/docs/generated/docs/index_8h__dep__incl.md5 @@ -0,0 +1 @@ +c2edc3df161efeb51efc097d23e0b49f \ No newline at end of file diff --git a/docs/generated/docs/index_8h__dep__incl.png b/docs/generated/docs/index_8h__dep__incl.png new file mode 100644 index 000000000..6875e5824 Binary files /dev/null and b/docs/generated/docs/index_8h__dep__incl.png differ diff --git a/docs/index_8h__incl.map b/docs/generated/docs/index_8h__incl.map similarity index 100% rename from docs/index_8h__incl.map rename to docs/generated/docs/index_8h__incl.map diff --git a/docs/generated/docs/index_8h__incl.md5 b/docs/generated/docs/index_8h__incl.md5 new file mode 100644 index 000000000..c77c84eb7 --- /dev/null +++ b/docs/generated/docs/index_8h__incl.md5 @@ -0,0 +1 @@ +78c12331b81e36a9c702f524190f734b \ No newline at end of file diff --git a/docs/generated/docs/index_8h__incl.png b/docs/generated/docs/index_8h__incl.png new file mode 100644 index 000000000..1d48d6505 Binary files /dev/null and b/docs/generated/docs/index_8h__incl.png differ diff --git a/docs/generated/docs/index_8h_source.html b/docs/generated/docs/index_8h_source.html new file mode 100644 index 000000000..cedd2891e --- /dev/null +++ b/docs/generated/docs/index_8h_source.html @@ -0,0 +1,120 @@ + + + + + + + +SensESP: src/net/web/index.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          index.h
          +
          +
          +Go to the documentation of this file.
          1 #include <pgmspace.h>
          +
          2 const char PAGE_index[] PROGMEM = R"=====(
          +
          3 <html>
          +
          4 <head>
          +
          5 <title>SensESP Device</title>
          +
          6 </head>
          +
          7 <body>
          +
          8 <h1>SensESP Device</h1>
          +
          9 Your options:
          +
          10 <ul>
          +
          11 <li><a href="/info">Device information</a></li>
          +
          12 <li><a href="/setup">Configure device</a></li>
          +
          13 <li><a href="/device/restart" onclick="return confirm('Restart the device?')">Restart device</a></li>
          +
          14 <li><a href="/device/reset" onclick="return confirm('Are you sure you want to reset device to factory settings?')">Reset device</a></li>
          +
          15 </ul>
          +
          16 </body>
          +
          17 </html>
          +
          18 
          +
          19 )=====";
          +
          +
          +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          + + + + diff --git a/docs/generated/docs/inherit_graph_0.map b/docs/generated/docs/inherit_graph_0.map new file mode 100644 index 000000000..642c3c54c --- /dev/null +++ b/docs/generated/docs/inherit_graph_0.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/generated/docs/inherit_graph_0.md5 b/docs/generated/docs/inherit_graph_0.md5 new file mode 100644 index 000000000..f80588226 --- /dev/null +++ b/docs/generated/docs/inherit_graph_0.md5 @@ -0,0 +1 @@ +adc4d85026361b62071ceb7641854226 \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_0.png b/docs/generated/docs/inherit_graph_0.png new file mode 100644 index 000000000..2afc4c90d Binary files /dev/null and b/docs/generated/docs/inherit_graph_0.png differ diff --git a/docs/inherit_graph_0.map b/docs/generated/docs/inherit_graph_1.map similarity index 100% rename from docs/inherit_graph_0.map rename to docs/generated/docs/inherit_graph_1.map diff --git a/docs/inherit_graph_0.md5 b/docs/generated/docs/inherit_graph_1.md5 similarity index 100% rename from docs/inherit_graph_0.md5 rename to docs/generated/docs/inherit_graph_1.md5 diff --git a/docs/generated/docs/inherit_graph_1.png b/docs/generated/docs/inherit_graph_1.png new file mode 100644 index 000000000..bed7f8b29 Binary files /dev/null and b/docs/generated/docs/inherit_graph_1.png differ diff --git a/docs/generated/docs/inherit_graph_10.map b/docs/generated/docs/inherit_graph_10.map new file mode 100644 index 000000000..1008a82e4 --- /dev/null +++ b/docs/generated/docs/inherit_graph_10.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/generated/docs/inherit_graph_10.md5 b/docs/generated/docs/inherit_graph_10.md5 new file mode 100644 index 000000000..1879c9c84 --- /dev/null +++ b/docs/generated/docs/inherit_graph_10.md5 @@ -0,0 +1 @@ +802d48ba202534640058c25ab8422ca4 \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_10.png b/docs/generated/docs/inherit_graph_10.png new file mode 100644 index 000000000..7b775889d Binary files /dev/null and b/docs/generated/docs/inherit_graph_10.png differ diff --git a/docs/generated/docs/inherit_graph_11.map b/docs/generated/docs/inherit_graph_11.map new file mode 100644 index 000000000..041d2ae0e --- /dev/null +++ b/docs/generated/docs/inherit_graph_11.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/generated/docs/inherit_graph_11.md5 b/docs/generated/docs/inherit_graph_11.md5 new file mode 100644 index 000000000..8d5ef86d8 --- /dev/null +++ b/docs/generated/docs/inherit_graph_11.md5 @@ -0,0 +1 @@ +495fd3841dce4084dfd655807be3909c \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_11.png b/docs/generated/docs/inherit_graph_11.png new file mode 100644 index 000000000..5905dd0cd Binary files /dev/null and b/docs/generated/docs/inherit_graph_11.png differ diff --git a/docs/inherit_graph_8.map b/docs/generated/docs/inherit_graph_12.map similarity index 100% rename from docs/inherit_graph_8.map rename to docs/generated/docs/inherit_graph_12.map diff --git a/docs/inherit_graph_8.md5 b/docs/generated/docs/inherit_graph_12.md5 similarity index 100% rename from docs/inherit_graph_8.md5 rename to docs/generated/docs/inherit_graph_12.md5 diff --git a/docs/generated/docs/inherit_graph_12.png b/docs/generated/docs/inherit_graph_12.png new file mode 100644 index 000000000..63857ab5a Binary files /dev/null and b/docs/generated/docs/inherit_graph_12.png differ diff --git a/docs/inherit_graph_9.map b/docs/generated/docs/inherit_graph_13.map similarity index 100% rename from docs/inherit_graph_9.map rename to docs/generated/docs/inherit_graph_13.map diff --git a/docs/inherit_graph_9.md5 b/docs/generated/docs/inherit_graph_13.md5 similarity index 100% rename from docs/inherit_graph_9.md5 rename to docs/generated/docs/inherit_graph_13.md5 diff --git a/docs/generated/docs/inherit_graph_13.png b/docs/generated/docs/inherit_graph_13.png new file mode 100644 index 000000000..a0d9eb48b Binary files /dev/null and b/docs/generated/docs/inherit_graph_13.png differ diff --git a/docs/generated/docs/inherit_graph_14.map b/docs/generated/docs/inherit_graph_14.map new file mode 100644 index 000000000..bd82fd066 --- /dev/null +++ b/docs/generated/docs/inherit_graph_14.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/inherit_graph_14.md5 b/docs/generated/docs/inherit_graph_14.md5 new file mode 100644 index 000000000..ba4d86b9c --- /dev/null +++ b/docs/generated/docs/inherit_graph_14.md5 @@ -0,0 +1 @@ +46f0d16a88a58915f426c1137a682c92 \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_14.png b/docs/generated/docs/inherit_graph_14.png new file mode 100644 index 000000000..f794301f1 Binary files /dev/null and b/docs/generated/docs/inherit_graph_14.png differ diff --git a/docs/generated/docs/inherit_graph_15.map b/docs/generated/docs/inherit_graph_15.map new file mode 100644 index 000000000..aa337130c --- /dev/null +++ b/docs/generated/docs/inherit_graph_15.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/inherit_graph_15.md5 b/docs/generated/docs/inherit_graph_15.md5 new file mode 100644 index 000000000..071f000cb --- /dev/null +++ b/docs/generated/docs/inherit_graph_15.md5 @@ -0,0 +1 @@ +41c2e345e4838f2961ee1c5f5d9d1212 \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_15.png b/docs/generated/docs/inherit_graph_15.png new file mode 100644 index 000000000..7296962f9 Binary files /dev/null and b/docs/generated/docs/inherit_graph_15.png differ diff --git a/docs/generated/docs/inherit_graph_16.map b/docs/generated/docs/inherit_graph_16.map new file mode 100644 index 000000000..f193d3897 --- /dev/null +++ b/docs/generated/docs/inherit_graph_16.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/inherit_graph_16.md5 b/docs/generated/docs/inherit_graph_16.md5 new file mode 100644 index 000000000..799de4a2a --- /dev/null +++ b/docs/generated/docs/inherit_graph_16.md5 @@ -0,0 +1 @@ +5b94df07354fd8b0f7816052566cc382 \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_16.png b/docs/generated/docs/inherit_graph_16.png new file mode 100644 index 000000000..b89c28352 Binary files /dev/null and b/docs/generated/docs/inherit_graph_16.png differ diff --git a/docs/generated/docs/inherit_graph_17.map b/docs/generated/docs/inherit_graph_17.map new file mode 100644 index 000000000..979e84316 --- /dev/null +++ b/docs/generated/docs/inherit_graph_17.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/inherit_graph_17.md5 b/docs/generated/docs/inherit_graph_17.md5 new file mode 100644 index 000000000..dba8e4f36 --- /dev/null +++ b/docs/generated/docs/inherit_graph_17.md5 @@ -0,0 +1 @@ +545a732024ae119e1cf6e7e70f770060 \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_17.png b/docs/generated/docs/inherit_graph_17.png new file mode 100644 index 000000000..79238a75a Binary files /dev/null and b/docs/generated/docs/inherit_graph_17.png differ diff --git a/docs/generated/docs/inherit_graph_18.map b/docs/generated/docs/inherit_graph_18.map new file mode 100644 index 000000000..cefd7e418 --- /dev/null +++ b/docs/generated/docs/inherit_graph_18.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/inherit_graph_18.md5 b/docs/generated/docs/inherit_graph_18.md5 new file mode 100644 index 000000000..0b7fc8e18 --- /dev/null +++ b/docs/generated/docs/inherit_graph_18.md5 @@ -0,0 +1 @@ +0f73558e67daa91334dbdfa0b6e52883 \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_18.png b/docs/generated/docs/inherit_graph_18.png new file mode 100644 index 000000000..6936513ba Binary files /dev/null and b/docs/generated/docs/inherit_graph_18.png differ diff --git a/docs/generated/docs/inherit_graph_19.map b/docs/generated/docs/inherit_graph_19.map new file mode 100644 index 000000000..033cadc46 --- /dev/null +++ b/docs/generated/docs/inherit_graph_19.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/inherit_graph_19.md5 b/docs/generated/docs/inherit_graph_19.md5 new file mode 100644 index 000000000..c5b1a7bfe --- /dev/null +++ b/docs/generated/docs/inherit_graph_19.md5 @@ -0,0 +1 @@ +976a9fdada5e6677536c528eda59d4fe \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_19.png b/docs/generated/docs/inherit_graph_19.png new file mode 100644 index 000000000..9de9d54ee Binary files /dev/null and b/docs/generated/docs/inherit_graph_19.png differ diff --git a/docs/inherit_graph_1.map b/docs/generated/docs/inherit_graph_2.map similarity index 100% rename from docs/inherit_graph_1.map rename to docs/generated/docs/inherit_graph_2.map diff --git a/docs/inherit_graph_1.md5 b/docs/generated/docs/inherit_graph_2.md5 similarity index 100% rename from docs/inherit_graph_1.md5 rename to docs/generated/docs/inherit_graph_2.md5 diff --git a/docs/generated/docs/inherit_graph_2.png b/docs/generated/docs/inherit_graph_2.png new file mode 100644 index 000000000..73bc6717b Binary files /dev/null and b/docs/generated/docs/inherit_graph_2.png differ diff --git a/docs/generated/docs/inherit_graph_20.map b/docs/generated/docs/inherit_graph_20.map new file mode 100644 index 000000000..c1f16710e --- /dev/null +++ b/docs/generated/docs/inherit_graph_20.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/inherit_graph_20.md5 b/docs/generated/docs/inherit_graph_20.md5 new file mode 100644 index 000000000..b25b9279a --- /dev/null +++ b/docs/generated/docs/inherit_graph_20.md5 @@ -0,0 +1 @@ +d913600c2558c388ba72234e5f6f2f9c \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_20.png b/docs/generated/docs/inherit_graph_20.png new file mode 100644 index 000000000..c127a0284 Binary files /dev/null and b/docs/generated/docs/inherit_graph_20.png differ diff --git a/docs/generated/docs/inherit_graph_21.map b/docs/generated/docs/inherit_graph_21.map new file mode 100644 index 000000000..d19d523b4 --- /dev/null +++ b/docs/generated/docs/inherit_graph_21.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/inherit_graph_21.md5 b/docs/generated/docs/inherit_graph_21.md5 new file mode 100644 index 000000000..757ce20f1 --- /dev/null +++ b/docs/generated/docs/inherit_graph_21.md5 @@ -0,0 +1 @@ +1a1805679194c1fc45f7bc3a42af8625 \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_21.png b/docs/generated/docs/inherit_graph_21.png new file mode 100644 index 000000000..b4bf353e0 Binary files /dev/null and b/docs/generated/docs/inherit_graph_21.png differ diff --git a/docs/generated/docs/inherit_graph_22.map b/docs/generated/docs/inherit_graph_22.map new file mode 100644 index 000000000..927305da4 --- /dev/null +++ b/docs/generated/docs/inherit_graph_22.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/inherit_graph_22.md5 b/docs/generated/docs/inherit_graph_22.md5 new file mode 100644 index 000000000..2e151c75f --- /dev/null +++ b/docs/generated/docs/inherit_graph_22.md5 @@ -0,0 +1 @@ +10e6f9a0e04d37a3d45c558064d6c27e \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_22.png b/docs/generated/docs/inherit_graph_22.png new file mode 100644 index 000000000..4a862ad25 Binary files /dev/null and b/docs/generated/docs/inherit_graph_22.png differ diff --git a/docs/generated/docs/inherit_graph_23.map b/docs/generated/docs/inherit_graph_23.map new file mode 100644 index 000000000..0b0d449a0 --- /dev/null +++ b/docs/generated/docs/inherit_graph_23.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/inherit_graph_23.md5 b/docs/generated/docs/inherit_graph_23.md5 new file mode 100644 index 000000000..98a53ac8c --- /dev/null +++ b/docs/generated/docs/inherit_graph_23.md5 @@ -0,0 +1 @@ +e824bf752ac24f6277173d30bceded99 \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_23.png b/docs/generated/docs/inherit_graph_23.png new file mode 100644 index 000000000..ea339b6aa Binary files /dev/null and b/docs/generated/docs/inherit_graph_23.png differ diff --git a/docs/generated/docs/inherit_graph_24.map b/docs/generated/docs/inherit_graph_24.map new file mode 100644 index 000000000..17b884a3f --- /dev/null +++ b/docs/generated/docs/inherit_graph_24.map @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/inherit_graph_24.md5 b/docs/generated/docs/inherit_graph_24.md5 new file mode 100644 index 000000000..83acd562f --- /dev/null +++ b/docs/generated/docs/inherit_graph_24.md5 @@ -0,0 +1 @@ +37c2d0a181e8fa7025b20a736c2b7375 \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_24.png b/docs/generated/docs/inherit_graph_24.png new file mode 100644 index 000000000..12b743b11 Binary files /dev/null and b/docs/generated/docs/inherit_graph_24.png differ diff --git a/docs/inherit_graph_2.map b/docs/generated/docs/inherit_graph_3.map similarity index 100% rename from docs/inherit_graph_2.map rename to docs/generated/docs/inherit_graph_3.map diff --git a/docs/inherit_graph_2.md5 b/docs/generated/docs/inherit_graph_3.md5 similarity index 100% rename from docs/inherit_graph_2.md5 rename to docs/generated/docs/inherit_graph_3.md5 diff --git a/docs/generated/docs/inherit_graph_3.png b/docs/generated/docs/inherit_graph_3.png new file mode 100644 index 000000000..5b4fe64ac Binary files /dev/null and b/docs/generated/docs/inherit_graph_3.png differ diff --git a/docs/inherit_graph_3.map b/docs/generated/docs/inherit_graph_4.map similarity index 100% rename from docs/inherit_graph_3.map rename to docs/generated/docs/inherit_graph_4.map diff --git a/docs/inherit_graph_3.md5 b/docs/generated/docs/inherit_graph_4.md5 similarity index 100% rename from docs/inherit_graph_3.md5 rename to docs/generated/docs/inherit_graph_4.md5 diff --git a/docs/generated/docs/inherit_graph_4.png b/docs/generated/docs/inherit_graph_4.png new file mode 100644 index 000000000..77ad058a3 Binary files /dev/null and b/docs/generated/docs/inherit_graph_4.png differ diff --git a/docs/inherit_graph_4.map b/docs/generated/docs/inherit_graph_5.map similarity index 100% rename from docs/inherit_graph_4.map rename to docs/generated/docs/inherit_graph_5.map diff --git a/docs/inherit_graph_4.md5 b/docs/generated/docs/inherit_graph_5.md5 similarity index 100% rename from docs/inherit_graph_4.md5 rename to docs/generated/docs/inherit_graph_5.md5 diff --git a/docs/generated/docs/inherit_graph_5.png b/docs/generated/docs/inherit_graph_5.png new file mode 100644 index 000000000..96d8465f1 Binary files /dev/null and b/docs/generated/docs/inherit_graph_5.png differ diff --git a/docs/inherit_graph_5.map b/docs/generated/docs/inherit_graph_6.map similarity index 100% rename from docs/inherit_graph_5.map rename to docs/generated/docs/inherit_graph_6.map diff --git a/docs/inherit_graph_5.md5 b/docs/generated/docs/inherit_graph_6.md5 similarity index 100% rename from docs/inherit_graph_5.md5 rename to docs/generated/docs/inherit_graph_6.md5 diff --git a/docs/generated/docs/inherit_graph_6.png b/docs/generated/docs/inherit_graph_6.png new file mode 100644 index 000000000..79e39317b Binary files /dev/null and b/docs/generated/docs/inherit_graph_6.png differ diff --git a/docs/generated/docs/inherit_graph_7.map b/docs/generated/docs/inherit_graph_7.map new file mode 100644 index 000000000..f100b9948 --- /dev/null +++ b/docs/generated/docs/inherit_graph_7.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/generated/docs/inherit_graph_7.md5 b/docs/generated/docs/inherit_graph_7.md5 new file mode 100644 index 000000000..1e90fc47b --- /dev/null +++ b/docs/generated/docs/inherit_graph_7.md5 @@ -0,0 +1 @@ +bddb9eae507e3e6bbd57d02381e36bf7 \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_7.png b/docs/generated/docs/inherit_graph_7.png new file mode 100644 index 000000000..630477c3b Binary files /dev/null and b/docs/generated/docs/inherit_graph_7.png differ diff --git a/docs/inherit_graph_6.map b/docs/generated/docs/inherit_graph_8.map similarity index 100% rename from docs/inherit_graph_6.map rename to docs/generated/docs/inherit_graph_8.map diff --git a/docs/inherit_graph_6.md5 b/docs/generated/docs/inherit_graph_8.md5 similarity index 100% rename from docs/inherit_graph_6.md5 rename to docs/generated/docs/inherit_graph_8.md5 diff --git a/docs/generated/docs/inherit_graph_8.png b/docs/generated/docs/inherit_graph_8.png new file mode 100644 index 000000000..181a8bc3d Binary files /dev/null and b/docs/generated/docs/inherit_graph_8.png differ diff --git a/docs/inherit_graph_7.map b/docs/generated/docs/inherit_graph_9.map similarity index 100% rename from docs/inherit_graph_7.map rename to docs/generated/docs/inherit_graph_9.map diff --git a/docs/inherit_graph_7.md5 b/docs/generated/docs/inherit_graph_9.md5 similarity index 100% rename from docs/inherit_graph_7.md5 rename to docs/generated/docs/inherit_graph_9.md5 diff --git a/docs/generated/docs/inherit_graph_9.png b/docs/generated/docs/inherit_graph_9.png new file mode 100644 index 000000000..5ebb12f37 Binary files /dev/null and b/docs/generated/docs/inherit_graph_9.png differ diff --git a/docs/generated/docs/inherits.html b/docs/generated/docs/inherits.html new file mode 100644 index 000000000..53c77d02a --- /dev/null +++ b/docs/generated/docs/inherits.html @@ -0,0 +1,316 @@ + + + + + + + +SensESP: Class Hierarchy + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          Class Hierarchy
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + +
          + + + +
          + + + +
          + + + +
          + + + +
          + + + +
          + + + +
          + + + +
          + + + +
          + + + +
          + + + +
          + + + +
          + + + +
          + + + + + + + + + +
          + + + +
          + + + + +
          + + + + + +
          + + + + + + + + + + + + + + + + + + +
          + + + + + + +
          + + + + + +
          + + + + +
          + + + + +
          + + + + +
          + + + + +
          + + + + +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +
          + + + + diff --git a/docs/generated/docs/integrator_8cpp.html b/docs/generated/docs/integrator_8cpp.html new file mode 100644 index 000000000..a8a79068a --- /dev/null +++ b/docs/generated/docs/integrator_8cpp.html @@ -0,0 +1,143 @@ + + + + + + + +SensESP: src/transforms/integrator.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          integrator.cpp File Reference
          +
          +
          +
          #include "integrator.h"
          +#include "sensesp_app.h"
          +
          +Include dependency graph for integrator.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/integrator_8cpp__incl.map b/docs/generated/docs/integrator_8cpp__incl.map new file mode 100644 index 000000000..b6ccd32d5 --- /dev/null +++ b/docs/generated/docs/integrator_8cpp__incl.map @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/integrator_8cpp__incl.md5 b/docs/generated/docs/integrator_8cpp__incl.md5 new file mode 100644 index 000000000..886e19ec3 --- /dev/null +++ b/docs/generated/docs/integrator_8cpp__incl.md5 @@ -0,0 +1 @@ +f60a59fefda2b477c7e42e97fbf471ad \ No newline at end of file diff --git a/docs/generated/docs/integrator_8cpp__incl.png b/docs/generated/docs/integrator_8cpp__incl.png new file mode 100644 index 000000000..2739f28b0 Binary files /dev/null and b/docs/generated/docs/integrator_8cpp__incl.png differ diff --git a/docs/generated/docs/integrator_8cpp_source.html b/docs/generated/docs/integrator_8cpp_source.html new file mode 100644 index 000000000..d0f9499a5 --- /dev/null +++ b/docs/generated/docs/integrator_8cpp_source.html @@ -0,0 +1,160 @@ + + + + + + + +SensESP: src/transforms/integrator.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          integrator.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "integrator.h"
          +
          2 
          +
          3 #include "sensesp_app.h"
          +
          4 
          +
          5 // Integrator
          +
          6 
          +
          7 Integrator::Integrator(float k, float value, String config_path)
          +
          8  : NumericTransform(config_path), k{k} {
          +
          9  output = value;
          +
          10  load_configuration();
          +
          11 }
          +
          12 
          + +
          14  // save the integrator value every 10 s
          +
          15  // NOTE: Disabled for now because interrupts start throwing
          +
          16  // exceptions.
          +
          17  // app.onRepeat(10000, [this](){ this->save_configuration(); });
          +
          18 }
          +
          19 
          +
          20 void Integrator::set_input(float input, uint8_t inputChannel) {
          +
          21  output += input;
          +
          22  notify();
          +
          23 }
          +
          24 
          +
          25 void Integrator::get_configuration(JsonObject& root) {
          +
          26  root["k"] = k;
          +
          27  root["value"] = output;
          +
          28 }
          +
          29 
          +
          30 static const char SCHEMA[] PROGMEM = R"({
          +
          31  "type": "object",
          +
          32  "properties": {
          +
          33  "k": { "title": "Multiplier", "type": "number" },
          +
          34  "value": { "title": "Current value", "type" : "number", "readOnly": false }
          +
          35  }
          +
          36  })";
          +
          37 
          +
          38 String Integrator::get_config_schema() { return FPSTR(SCHEMA); }
          +
          39 
          +
          40 bool Integrator::set_configuration(const JsonObject& config) {
          +
          41  String expected[] = {"k"};
          +
          42  for (auto str : expected) {
          +
          43  if (!config.containsKey(str)) {
          +
          44  return false;
          +
          45  }
          +
          46  }
          +
          47  k = config["k"];
          +
          48  output = config["value"];
          +
          49  return true;
          +
          50 }
          +
          +
          +
          Integrator(float k=1, float value=0, String config_path="")
          Definition: integrator.cpp:7
          + +
          virtual void set_input(float input, uint8_t inputChannel=0) override final
          Definition: integrator.cpp:20
          +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          +
          virtual void enable() override final
          Definition: integrator.cpp:13
          +
          virtual bool set_configuration(const JsonObject &config) override final
          Definition: integrator.cpp:40
          +
          virtual String get_config_schema() override
          Definition: integrator.cpp:38
          + +
          virtual void get_configuration(JsonObject &doc) override final
          Definition: integrator.cpp:25
          + + + + + diff --git a/docs/generated/docs/integrator_8h.html b/docs/generated/docs/integrator_8h.html new file mode 100644 index 000000000..1757063c2 --- /dev/null +++ b/docs/generated/docs/integrator_8h.html @@ -0,0 +1,147 @@ + + + + + + + +SensESP: src/transforms/integrator.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          integrator.h File Reference
          +
          +
          +
          #include "transform.h"
          +
          +Include dependency graph for integrator.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  Integrator
           
          +
          +
          + + + + diff --git a/docs/integrator_8h__dep__incl.map b/docs/generated/docs/integrator_8h__dep__incl.map similarity index 100% rename from docs/integrator_8h__dep__incl.map rename to docs/generated/docs/integrator_8h__dep__incl.map diff --git a/docs/generated/docs/integrator_8h__dep__incl.md5 b/docs/generated/docs/integrator_8h__dep__incl.md5 new file mode 100644 index 000000000..008f00c3a --- /dev/null +++ b/docs/generated/docs/integrator_8h__dep__incl.md5 @@ -0,0 +1 @@ +d2505d16fe66d153c3c11a9b446c0e2a \ No newline at end of file diff --git a/docs/generated/docs/integrator_8h__dep__incl.png b/docs/generated/docs/integrator_8h__dep__incl.png new file mode 100644 index 000000000..c618746dc Binary files /dev/null and b/docs/generated/docs/integrator_8h__dep__incl.png differ diff --git a/docs/generated/docs/integrator_8h__incl.map b/docs/generated/docs/integrator_8h__incl.map new file mode 100644 index 000000000..2953377f5 --- /dev/null +++ b/docs/generated/docs/integrator_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/integrator_8h__incl.md5 b/docs/generated/docs/integrator_8h__incl.md5 new file mode 100644 index 000000000..969eea6bd --- /dev/null +++ b/docs/generated/docs/integrator_8h__incl.md5 @@ -0,0 +1 @@ +5f58a3f16efc8c6a85ed3d51a16d4c83 \ No newline at end of file diff --git a/docs/generated/docs/integrator_8h__incl.png b/docs/generated/docs/integrator_8h__incl.png new file mode 100644 index 000000000..2ce33f88c Binary files /dev/null and b/docs/generated/docs/integrator_8h__incl.png differ diff --git a/docs/generated/docs/integrator_8h_source.html b/docs/generated/docs/integrator_8h_source.html new file mode 100644 index 000000000..a67e4655b --- /dev/null +++ b/docs/generated/docs/integrator_8h_source.html @@ -0,0 +1,129 @@ + + + + + + + +SensESP: src/transforms/integrator.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          integrator.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _integrator_H_
          +
          2 #define _integrator_H_
          +
          3 
          +
          4 #include "transform.h"
          +
          5 
          +
          6 // y = k * sum(x_t)
          +
          7 class Integrator : public NumericTransform {
          +
          8  public:
          +
          9  Integrator(float k = 1, float value = 0, String config_path = "");
          +
          10  virtual void enable() override final;
          +
          11  virtual void set_input(float input, uint8_t inputChannel = 0) override final;
          +
          12  virtual void get_configuration(JsonObject& doc) override final;
          +
          13  virtual bool set_configuration(const JsonObject& config) override final;
          +
          14  virtual String get_config_schema() override;
          +
          15 
          +
          16  private:
          +
          17  float k;
          +
          18 };
          +
          19 
          +
          20 #endif
          +
          +
          + +
          Integrator(float k=1, float value=0, String config_path="")
          Definition: integrator.cpp:7
          + +
          virtual void set_input(float input, uint8_t inputChannel=0) override final
          Definition: integrator.cpp:20
          +
          virtual void enable() override final
          Definition: integrator.cpp:13
          +
          virtual bool set_configuration(const JsonObject &config) override final
          Definition: integrator.cpp:40
          +
          virtual String get_config_schema() override
          Definition: integrator.cpp:38
          + +
          virtual void get_configuration(JsonObject &doc) override final
          Definition: integrator.cpp:25
          + + + + diff --git a/docs/generated/docs/jquery.js b/docs/generated/docs/jquery.js new file mode 100644 index 000000000..103c32d79 --- /dev/null +++ b/docs/generated/docs/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
          "],col:[2,"","
          "],tr:[2,"","
          "],td:[3,"","
          "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
          ",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
          ",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
          "),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
          ").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
          "),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
          "),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
          ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/docs/generated/docs/js__jsoneditor_8h.html b/docs/generated/docs/js__jsoneditor_8h.html new file mode 100644 index 000000000..aa2820c42 --- /dev/null +++ b/docs/generated/docs/js__jsoneditor_8h.html @@ -0,0 +1,156 @@ + + + + + + + +SensESP: src/net/web/js_jsoneditor.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          js_jsoneditor.h File Reference
          +
          +
          +
          #include <pgmspace.h>
          +
          +Include dependency graph for js_jsoneditor.h:
          +
          +
          + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Variables

          const char PAGE_js_jsoneditor[] PROGMEM
           
          +

          Variable Documentation

          + +

          ◆ PROGMEM

          + +
          +
          + + + + +
          const char PAGE_js_jsoneditor [] PROGMEM
          +
          +Initial value:
          = R"=====(
          +
          !function(a,b){"use strict";var c=b(a);"object"==typeof module&&null!=module&&module.exports?module.exports=c:"function"==typeof define&&define.amd?define(function(){return c}):a.JSONEditor=c}("undefined"!=typeof window?window:this,function(a,b){var c;!function(){var a=!1,b=/xyz/.test(function(){window.postMessage("xyz")})?/\b_super\b/:/.*/;return c=function(){},c.extend=function d(c){function e(){!a&&this.init&&this.init.apply(this,arguments)}var f=this.prototype;a=!0;var g=new this;a=!1;for(var h in c)g[h]="function"==typeof c[h]&&"function"==typeof f[h]&&b.test(c[h])?function(a,b){return function(){var c=this._super;this._super=f[a];var d=b.apply(this,arguments);return this._super=c,d}}(h,c[h]):c[h];return e.prototype=g,e.prototype.constructor=e,e.extend=d,e},c}(),function(){function a(a,c){c=c||{bubbles:!1,cancelable:!1,detail:b};var d=document.createEvent("CustomEvent");return d.initCustomEvent(a,c.bubbles,c.cancelable,c.detail),d}a.prototype=window.Event.prototype,window.CustomEvent=a}(),function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!window.requestAnimationFrame;++c)window.requestAnimationFrame=window[b[c]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[b[c]+"CancelAnimationFrame"]||window[b[c]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(b,c){var d=(new Date).getTime(),e=Math.max(0,16-(d-a)),f=window.setTimeout(function(){b(d+e)},e);return a=d+e,f}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(a){clearTimeout(a)})}(),function(){Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)})}();var d=function(a){return!("object"!=typeof a||a.nodeType||null!==a&&a===a.window)&&!(a.constructor&&!Object.prototype.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))},e=function(a){var b,c,f;for(c=1;c<arguments.length;c++){b=arguments[c];for(f in b)b.hasOwnProperty(f)&&(b[f]&&d(b[f])?(a.hasOwnProperty(f)||(a[f]={}),e(a[f],b[f])):a[f]=b[f])}return a},f=function(a,b){if(a&&"object"==typeof a){var c;if(Array.isArray(a)||"number"==typeof a.length&&a.length>0&&a.length-1 in a){for(c=0;c<a.length;c++)if(b(c,a[c])===!1)return}else if(Object.keys){var d=Object.keys(a);for(c=0;c<d.length;c++)if(b(d[c],a[d[c]])===!1)return}else for(c in a)if(a.hasOwnProperty(c)&&b(c,a[c])===!1)return}},g=function(a,b){var c=document.createEvent("HTMLEvents");c.initEvent(b,!0,!0),a.dispatchEvent(c)},h=function(a,b){if(!(a instanceof Element))throw new Error("element should be an instance of Element");b=e({},h.defaults.options,b||{}),this.element=a,this.options=b,this.init()};h.prototype={constructor:h,init:function(){var a=this;this.ready=!1,this.copyClipboard=null,this.refs_with_info={},this.refs_prefix="#/counter/",this.refs_counter=1;var b=h.defaults.themes[this.options.theme||h.defaults.theme];if(!b)throw"Unknown theme "+(this.options.theme||h.defaults.theme);this.schema=this.options.schema,this.theme=new b,this.template=this.options.template,this.refs=this.options.refs||{},this.uuid=0,this.__data={};var c=h.defaults.iconlibs[this.options.iconlib||h.defaults.iconlib];c&&(this.iconlib=new c),this.root_container=this.theme.getContainer(),this.element.appendChild(this.root_container),this.translate=this.options.translate||h.defaults.translate;var d=document.location.toString(),e=this._getFileBase();this._loadExternalRefs(this.schema,function(){a._getDefinitions(a.schema,d+"#/definitions/");var b={};a.options.custom_validators&&(b.custom_validators=a.options.custom_validators),a.validator=new h.Validator(a,null,b);var c=a.expandRefs(a.schema),e=a.getEditorClass(c);a.root=a.createEditor(e,{jsoneditor:a,schema:c,required:!0,container:a.root_container}),a.root.preBuild(),a.root.build(),a.root.postBuild(),a.options.hasOwnProperty("startval")&&a.root.setValue(a.options.startval),a.validation_results=a.validator.validate(a.root.getValue()),a.root.showValidationErrors(a.validation_results),a.ready=!0,window.requestAnimationFrame(function(){a.ready&&(a.validation_results=a.validator.validate(a.root.getValue()),a.root.showValidationErrors(a.validation_results),a.trigger("ready"),a.trigger("change"))})},d,e)},getValue:function(){if(!this.ready)throw"JSON Editor not ready yet. Listen for 'ready' event before getting the value";return this.root.getValue()},setValue:function(a){if(!this.ready)throw"JSON Editor not ready yet. Listen for 'ready' event before setting the value";return this.root.setValue(a),this},validate:function(a){if(!this.ready)throw"JSON Editor not ready yet. Listen for 'ready' event before validating";return 1===arguments.length?this.validator.validate(a):this.validation_results},destroy:function(){this.destroyed||this.ready&&(this.schema=null,this.options=null,this.root.destroy(),this.root=null,this.root_container=null,this.validator=null,this.validation_results=null,this.theme=null,this.iconlib=null,this.template=null,this.__data=null,this.ready=!1,this.element.innerHTML="",this.destroyed=!0)},on:function(a,b){return this.callbacks=this.callbacks||{},this.callbacks[a]=this.callbacks[a]||[],this.callbacks[a].push(b),this},off:function(a,b){if(a&&b){this.callbacks=this.callbacks||{},this.callbacks[a]=this.callbacks[a]||[];for(var c=[],d=0;d<this.callbacks[a].length;d++)this.callbacks[a][d]!==b&&c.push(this.callbacks[a][d]);this.callbacks[a]=c}else a?(this.callbacks=this.callbacks||{},this.callbacks[a]=[]):this.callbacks={};return this},trigger:function(a){if(this.callbacks&&this.callbacks[a]&&this.callbacks[a].length)for(var b=0;b<this.callbacks[a].length;b++)this.callbacks[a][b].apply(this,[]);return this},setOption:function(a,b){if("show_errors"!==a)throw"Option "+a+" must be set during instantiation and cannot be changed later";return this.options.show_errors=b,this.onChange(),this},getEditorClass:function(a){var b;if(a=this.expandSchema(a),f(h.defaults.resolvers,function(c,d){var e=d(a);if(e&&h.defaults.editors[e])return b=e,!1}),!b)throw"Unknown editor for schema "+JSON.stringify(a);if(!h.defaults.editors[b])throw"Unknown editor "+b;return h.defaults.editors[b]},createEditor:function(a,b){return b=e({},a.options||{},b),new a(b)},onChange:function(){if(this.ready&&!this.firing_change){this.firing_change=!0;var a=this;return window.requestAnimationFrame(function(){a.firing_change=!1,a.ready&&(a.validation_results=a.validator.validate(a.root.getValue()),"never"!==a.options.show_errors?a.root.showValidationErrors(a.validation_results):a.root.showValidationErrors([]),a.trigger("change"))}),this}},compileTemplate:function(a,b){b=b||h.defaults.template;var c;if("string"==typeof b){if(!h.defaults.templates[b])throw"Unknown template engine "+b;if(c=h.defaults.templates[b](),!c)throw"Template engine "+b+" missing required library."}else c=b;if(!c)throw"No template engine set";if(!c.compile)throw"Invalid template engine set";return c.compile(a)},_data:function(a,b,c){if(3!==arguments.length)return a.hasAttribute("data-jsoneditor-"+b)?this.__data[a.getAttribute("data-jsoneditor-"+b)]:null;var d;a.hasAttribute("data-jsoneditor-"+b)?d=a.getAttribute("data-jsoneditor-"+b):(d=this.uuid++,a.setAttribute("data-jsoneditor-"+b,d)),this.__data[d]=c},registerEditor:function(a){return this.editors=this.editors||{},this.editors[a.path]=a,this},unregisterEditor:function(a){return this.editors=this.editors||{},this.editors[a.path]=null,this},getEditor:function(a){if(this.editors)return this.editors[a]},watch:function(a,b){return this.watchlist=this.watchlist||{},this.watchlist[a]=this.watchlist[a]||[],this.watchlist[a].push(b),this},unwatch:function(a,b){if(!this.watchlist||!this.watchlist[a])return this;if(!b)return this.watchlist[a]=null,this;for(var c=[],d=0;d<this.watchlist[a].length;d++)this.watchlist[a][d]!==b&&c.push(this.watchlist[a][d]);return this.watchlist[a]=c.length?c:null,this},notifyWatchers:function(a){if(!this.watchlist||!this.watchlist[a])return this;for(var b=0;b<this.watchlist[a].length;b++)this.watchlist[a][b]()},isEnabled:function(){return!this.root||this.root.isEnabled()},enable:function(){this.root.enable()},disable:function(){this.root.disable()},_getDefinitions:function(a,b){if(a.definitions)for(var c in a.definitions)a.definitions.hasOwnProperty(c)&&(this.refs[b+c]=a.definitions[c],a.definitions[c].definitions&&this._getDefinitions(a.definitions[c],b+c+"/definitions/"))},_getExternalRefs:function(a,b){var c={},d=function(a){for(var b in a)a.hasOwnProperty(b)&&(c[b]=!0)};if(a.$ref&&"object"!=typeof a.$ref){var e=this.refs_prefix+this.refs_counter++;"#"===a.$ref.substr(0,1)||this.refs[a.$ref]||(c[a.$ref]=!0),this.refs_with_info[e]={fetchUrl:b,$ref:a.$ref},a.$ref=e}for(var f in a)if(a.hasOwnProperty(f)&&a[f]&&"object"==typeof a[f])if(Array.isArray(a[f]))for(var g=0;g<a[f].length;g++)a[f][g]&&"object"==typeof a[f][g]&&d(this._getExternalRefs(a[f][g],b));else d(this._getExternalRefs(a[f],b));return c},_getFileBase:function(){var a=this.options.ajaxBase;return"undefined"==typeof a&&(a=this._getFileBaseFromFileLocation(document.location.toString())),a},_getFileBaseFromFileLocation:function(a){var b=a.split("/");return b.pop(),b.join("/")+"/"},_loadExternalRefs:function(a,b,c,d){var e=this,g=this._getExternalRefs(a,c),h=0,i=0,j=!1;f(g,function(a){if(!e.refs[a]){if(!e.options.ajax)throw"Must set ajax option to true to load external ref "+a;e.refs[a]="loading",i++;var c=a;d!=a.substr(0,d.length)&&"http"!=a.substr(0,4)&&"/"!=a.substr(0,1)&&(c=d+a);var f=new XMLHttpRequest;f.overrideMimeType("application/json"),f.open("GET",c,!0),e.options.ajaxCredentials&&(f.withCredentials=e.options.ajaxCredentials),f.onreadystatechange=function(){if(4==f.readyState){if(200!==f.status)throw window.console.log(f),"Failed to fetch ref via ajax- "+a;var d;try{d=JSON.parse(f.responseText)}catch(g){throw window.console.log(g),"Failed to parse external ref "+c}if("boolean"!=typeof d&&"object"!=typeof d||null===d||Array.isArray(d))throw"External ref does not contain a valid schema - "+c;e.refs[a]=d;var k=e._getFileBaseFromFileLocation(c);e._getDefinitions(d,c+"#/definitions/"),e._loadExternalRefs(d,function(){h++,h>=i&&!j&&(j=!0,b())},c,k)}},f.send()}}),i||b()},expandRefs:function(a){for(a=e({},a);a.$ref;){var b=this.refs_with_info[a.$ref];delete a.$ref;var c="";b.$ref.startsWith("#")&&(c=b.fetchUrl);var d=c+b.$ref;this.refs[d]||(d=c+decodeURIComponent(b.$ref)),a=this.extendSchemas(a,e({},this.refs[d]))}return a},expandSchema:function(a,b){var c,d=this,g=e({},a);if("object"==typeof a.type&&(Array.isArray(a.type)?f(a.type,function(b,c){"object"==typeof c&&(a.type[b]=d.expandSchema(c))}):a.type=d.expandSchema(a.type)),"object"==typeof a.disallow&&(Array.isArray(a.disallow)?f(a.disallow,function(b,c){"object"==typeof c&&(a.disallow[b]=d.expandSchema(c))}):a.disallow=d.expandSchema(a.disallow)),a.anyOf&&f(a.anyOf,function(b,c){a.anyOf[b]=d.expandSchema(c)}),a.dependencies&&f(a.dependencies,function(b,c){"object"!=typeof c||Array.isArray(c)||(a.dependencies[b]=d.expandSchema(c))}),a.not&&(a.not=this.expandSchema(a.not)),a.allOf){for(c=0;c<a.allOf.length;c++)g=this.extendSchemas(g,this.expandSchema(a.allOf[c]));delete g.allOf}if(a["extends"]){if(Array.isArray(a["extends"]))for(c=0;c<a["extends"].length;c++)g=this.extendSchemas(g,this.expandSchema(a["extends"][c]));else g=this.extendSchemas(g,this.expandSchema(a["extends"]));delete g["extends"]}if(a.oneOf){var h=e({},g);for(delete h.oneOf,c=0;c<a.oneOf.length;c++)g.oneOf[c]=this.extendSchemas(this.expandSchema(a.oneOf[c]),h)}return this.expandRefs(g)},extendSchemas:function(a,b){a=e({},a),b=e({},b);var c=this,d={};return f(a,function(a,e){"undefined"!=typeof b[a]?"required"!==a&&"defaultProperties"!==a||"object"!=typeof e||!Array.isArray(e)?"type"!==a||"string"!=typeof e&&!Array.isArray(e)?"object"==typeof e&&Array.isArray(e)?d[a]=e.filter(function(c){return b[a].indexOf(c)!==-1}):"object"==typeof e&&null!==e?d[a]=c.extendSchemas(e,b[a]):d[a]=e:("string"==typeof e&&(e=[e]),"string"==typeof b.type&&(b.type=[b.type]),b.type&&b.type.length?d.type=e.filter(function(a){return b.type.indexOf(a)!==-1}):d.type=e,1===d.type.length&&"string"==typeof d.type[0]?d.type=d.type[0]:0===d.type.length&&delete d.type):d[a]=e.concat(b[a]).reduce(function(a,b){return a.indexOf(b)<0&&a.push(b),a},[]):d[a]=e}),f(b,function(b,c){"undefined"==typeof a[b]&&(d[b]=c)}),d},setCopyClipboardContents:function(a){this.copyClipboard=a},getCopyClipboardContents:function(){return this.copyClipboard}},h.defaults={themes:{},templates:{},iconlibs:{},editors:{},languages:{},resolvers:[],custom_validators:[]},h.Validator=c.extend({init:function(a,b,c){this.jsoneditor=a,this.schema=b||this.jsoneditor.schema,this.options=c||{},this.translate=this.jsoneditor.translate||h.defaults.translate},validate:function(a){return this._validateSchema(this.schema,a)},_validateSchema:function(a,c,d){var g,i,j,k=this,l=[],m=JSON.stringify(c);if(d=d||"root",a=e({},this.jsoneditor.expandRefs(a)),"undefined"==typeof c)return("undefined"!=typeof a.required&&a.required===!0||"undefined"==typeof a.required&&this.jsoneditor.options.required_by_default===!0)&&l.push({path:d,property:"required",message:this.translate("error_notset")}),l;if(a["enum"]){for(g=!1,i=0;i<a["enum"].length;i++)m===JSON.stringify(a["enum"][i])&&(g=!0);g||l.push({path:d,property:"enum",message:this.translate("error_enum")})}if(a["extends"])for(i=0;i<a["extends"].length;i++)l=l.concat(this._validateSchema(a["extends"][i],c,d));if(a.allOf)for(i=0;i<a.allOf.length;i++)l=l.concat(this._validateSchema(a.allOf[i],c,d));if(a.anyOf){for(g=!1,i=0;i<a.anyOf.length;i++)if(!this._validateSchema(a.anyOf[i],c,d).length){g=!0;break}g||l.push({path:d,property:"anyOf",message:this.translate("error_anyOf")})}if(a.oneOf){g=0;var n=[];for(i=0;i<a.oneOf.length;i++){var o=this._validateSchema(a.oneOf[i],c,d);for(o.length||g++,j=0;j<o.length;j++)o[j].path=d+".oneOf["+i+"]"+o[j].path.substr(d.length);n=n.concat(o)}1!==g&&(l.push({path:d,property:"oneOf",message:this.translate("error_oneOf",[g])}),l=l.concat(n))}if(a.not&&(this._validateSchema(a.not,c,d).length||l.push({path:d,property:"not",message:this.translate("error_not")})),a.type)if(Array.isArray(a.type)){for(g=!1,i=0;i<a.type.length;i++)if(this._checkType(a.type[i],c)){g=!0;break}g||l.push({path:d,property:"type",message:this.translate("error_type_union")})}else["date","time","datetime-local"].indexOf(a.format)!=-1&&"integer"==a.type?this._checkType("string",""+c)||l.push({path:d,property:"type",message:this.translate("error_type",[a.format])}):this._checkType(a.type,c)||l.push({path:d,property:"type",message:this.translate("error_type",[a.type])});if(a.disallow)if(Array.isArray(a.disallow)){for(g=!0,i=0;i<a.disallow.length;i++)if(this._checkType(a.disallow[i],c)){g=!1;break}g||l.push({path:d,property:"disallow",message:this.translate("error_disallow_union")})}else this._checkType(a.disallow,c)&&l.push({path:d,property:"disallow",message:this.translate("error_disallow",[a.disallow])});if("number"==typeof c){if(a.multipleOf||a.divisibleBy){var p=a.multipleOf||a.divisibleBy;g=c/p===Math.floor(c/p),window.math?g=window.math.mod(window.math.bignumber(c),window.math.bignumber(p)).equals(0):window.Decimal&&(g=new window.Decimal(c).mod(new window.Decimal(p)).equals(0)),g||l.push({path:d,property:a.multipleOf?"multipleOf":"divisibleBy",message:this.translate("error_multipleOf",[p])})}a.hasOwnProperty("maximum")&&(g=a.exclusiveMaximum?c<a.maximum:c<=a.maximum,window.math?g=window.math[a.exclusiveMaximum?"smaller":"smallerEq"](window.math.bignumber(c),window.math.bignumber(a.maximum)):window.Decimal&&(g=new window.Decimal(c)[a.exclusiveMaximum?"lt":"lte"](new window.Decimal(a.maximum))),g||l.push({path:d,property:"maximum",message:this.translate(a.exclusiveMaximum?"error_maximum_excl":"error_maximum_incl",[a.maximum])})),a.hasOwnProperty("minimum")&&(g=a.exclusiveMinimum?c>a.minimum:c>=a.minimum,window.math?g=window.math[a.exclusiveMinimum?"larger":"largerEq"](window.math.bignumber(c),window.math.bignumber(a.minimum)):window.Decimal&&(g=new window.Decimal(c)[a.exclusiveMinimum?"gt":"gte"](new window.Decimal(a.minimum))),g||l.push({path:d,property:"minimum",message:this.translate(a.exclusiveMinimum?"error_minimum_excl":"error_minimum_incl",[a.minimum])}))}else if("string"==typeof c)a.maxLength&&(c+"").length>a.maxLength&&l.push({path:d,property:"maxLength",message:this.translate("error_maxLength",[a.maxLength])}),a.minLength&&(c+"").length<a.minLength&&l.push({path:d,property:"minLength",message:this.translate(1===a.minLength?"error_notempty":"error_minLength",[a.minLength])}),a.pattern&&(new RegExp(a.pattern).test(c)||l.push({path:d,property:"pattern",message:this.translate("error_pattern",[a.pattern])}));else if("object"==typeof c&&null!==c&&Array.isArray(c)){if(a.items)if(Array.isArray(a.items))for(i=0;i<c.length;i++)if(a.items[i])l=l.concat(this._validateSchema(a.items[i],c[i],d+"."+i));else{if(a.additionalItems===!0)break;if(!a.additionalItems){if(a.additionalItems===!1){l.push({path:d,property:"additionalItems",message:this.translate("error_additionalItems")});break}break}l=l.concat(this._validateSchema(a.additionalItems,c[i],d+"."+i))}else for(i=0;i<c.length;i++)l=l.concat(this._validateSchema(a.items,c[i],d+"."+i));if(a.maxItems&&c.length>a.maxItems&&l.push({path:d,property:"maxItems",message:this.translate("error_maxItems",[a.maxItems])}),a.minItems&&c.length<a.minItems&&l.push({path:d,property:"minItems",message:this.translate("error_minItems",[a.minItems])}),a.uniqueItems){var q={};for(i=0;i<c.length;i++){if(g=JSON.stringify(c[i]),q[g]){l.push({path:d,property:"uniqueItems",message:this.translate("error_uniqueItems")});break}q[g]=!0}}}else if("object"==typeof c&&null!==c){if(a.maxProperties){g=0;for(i in c)c.hasOwnProperty(i)&&g++;g>a.maxProperties&&l.push({path:d,property:"maxProperties",message:this.translate("error_maxProperties",[a.maxProperties])})}if(a.minProperties){g=0;for(i in c)c.hasOwnProperty(i)&&g++;g<a.minProperties&&l.push({path:d,property:"minProperties",message:this.translate("error_minProperties",[a.minProperties])})}if("undefined"!=typeof a.required&&Array.isArray(a.required))for(i=0;i<a.required.length;i++)"undefined"==typeof c[a.required[i]]&&l.push({path:d,property:"required",message:this.translate("error_required",[a.required[i]])});var r={};for(i in a.properties)a.properties.hasOwnProperty(i)&&(r[i]=!0,l=l.concat(this._validateSchema(a.properties[i],c[i],d+"."+i)));if(a.patternProperties)for(i in a.patternProperties)if(a.patternProperties.hasOwnProperty(i)){var s=new RegExp(i);for(j in c)c.hasOwnProperty(j)&&s.test(j)&&(r[j]=!0,l=l.concat(this._validateSchema(a.patternProperties[i],c[j],d+"."+j)))}if("undefined"!=typeof a.additionalProperties||!this.jsoneditor.options.no_additional_properties||a.oneOf||a.anyOf||(a.additionalProperties=!1),"undefined"!=typeof a.additionalProperties)for(i in c)if(c.hasOwnProperty(i)&&!r[i]){if(!a.additionalProperties){l.push({path:d,property:"additionalProperties",message:this.translate("error_additional_properties",[i])});break}if(a.additionalProperties===!0)break;l=l.concat(this._validateSchema(a.additionalProperties,c[i],d+"."+i))}if(a.dependencies)for(i in a.dependencies)if(a.dependencies.hasOwnProperty(i)&&"undefined"!=typeof c[i])if(Array.isArray(a.dependencies[i]))for(j=0;j<a.dependencies[i].length;j++)"undefined"==typeof c[a.dependencies[i][j]]&&l.push({path:d,property:"dependencies",message:this.translate("error_dependency",[a.dependencies[i][j]])});else l=l.concat(this._validateSchema(a.dependencies[i],c,d))}if(["date","time","datetime-local"].indexOf(a.format)!=-1){var t={date:/^(\d{4}\D\d{2}\D\d{2})?$/,time:/^(\d{2}:\d{2}(?::\d{2})?)?$/,"datetime-local":/^(\d{4}\D\d{2}\D\d{2} \d{2}:\d{2}(?::\d{2})?)?$/},u={date:'"YYYY-MM-DD"',time:'"HH:MM"',"datetime-local":'"YYYY-MM-DD HH:MM"'},v=this.jsoneditor.getEditor(d),w=v.flatpickr?v.flatpickr.config.dateFormat:u[v.format];if("integer"==a.type)1*c<1?l.push({path:d,property:"format",message:this.translate("error_invalid_epoch")}):c!=Math.abs(parseInt(c))&&l.push({path:d,property:"format",message:this.translate("error_"+v.format.replace(/-/g,"_"),[w])});else if(v.flatpickr){if(""!==c){var x;if("single"!=v.flatpickr.config.mode){var y="range"==v.flatpickr.config.mode?v.flatpickr.l10n.rangeSeparator:", ",z=v.flatpickr.selectedDates.map(function(a){return v.flatpickr.formatDate(a,v.flatpickr.config.dateFormat)});x=z.join(y)}try{if(x){if(x!=c)throw v.flatpickr.config.mode+" mismatch"}else if(v.flatpickr.formatDate(v.flatpickr.parseDate(c,v.flatpickr.config.dateFormat),v.flatpickr.config.dateFormat)!=c)throw"mismatch"}catch(A){var B=v.flatpickr.config.errorDateFormat!==b?v.flatpickr.config.errorDateFormat:v.flatpickr.config.dateFormat;l.push({path:d,property:"format",message:this.translate("error_"+v.format.replace(/-/g,"_"),[B])})}}}else t[v.format].test(c)||l.push({path:d,property:"format",message:this.translate("error_"+v.format.replace(/-/g,"_"),[u[v.format]])})}return f(h.defaults.custom_validators,function(b,e){l=l.concat(e.call(k,a,c,d))}),this.options.custom_validators&&f(this.options.custom_validators,function(b,e){l=l.concat(e.call(k,a,c,d))}),l},_checkType:function(a,b){return"string"==typeof a?"string"===a?"string"==typeof b:"number"===a?"number"==typeof b:"integer"===a?"number"==typeof b&&b===Math.floor(b):"boolean"===a?"boolean"==typeof b:"array"===a?Array.isArray(b):"object"===a?null!==b&&!Array.isArray(b)&&"object"==typeof b:"null"!==a||null===b:!this._validateSchema(a,b).length}}),h.AbstractEditor=c.extend({onChildEditorChange:function(a){this.onChange(!0)},notify:function(){this.path&&this.jsoneditor.notifyWatchers(this.path)},change:function(){this.parent?this.parent.onChildEditorChange(this):this.jsoneditor&&this.jsoneditor.onChange()},onChange:function(a){this.notify(),this.watch_listener&&this.watch_listener(),a&&this.change()},register:function(){this.jsoneditor.registerEditor(this),this.onChange()},unregister:function(){this.jsoneditor&&this.jsoneditor.unregisterEditor(this)},getNumColumns:function(){return 12},init:function(a){this.jsoneditor=a.jsoneditor,this.theme=this.jsoneditor.theme,this.template_engine=this.jsoneditor.template,this.iconlib=this.jsoneditor.iconlib,this.translate=this.jsoneditor.translate||h.defaults.translate,this.original_schema=a.schema,this.schema=this.jsoneditor.expandSchema(this.original_schema),this.options=e({},this.options||{},this.schema.options||{},a.schema.options||{},a),a.path||this.schema.id||(this.schema.id="root"),this.path=a.path||"root",this.formname=a.formname||this.path.replace(/\.([^.]+)/g,"[$1]"),this.jsoneditor.options.form_name_root&&(this.formname=this.formname.replace(/^root\[/,this.jsoneditor.options.form_name_root+"[")),this.key=this.path.split(".").pop(),this.parent=a.parent,this.link_watchers=[],a.container&&this.setContainer(a.container),this.registerDependencies()},registerDependencies:function(){this.dependenciesFulfilled=!0;var a=this.options.dependencies;if(a){var b=this;Object.keys(a).forEach(function(c){var d=b.path.split(".");d[d.length-1]=c,d=d.join(".");var e=a[c];b.jsoneditor.watch(d,function(){b.checkDependency(d,e)})})}},checkDependency:function(a,c){var d=this.control||this.container;if(this.path!==a&&d){var e=this,f=this.jsoneditor.getEditor(a),g=f?f.getValue():b,h=this.dependenciesFulfilled;this.dependenciesFulfilled=!1,f&&f.dependenciesFulfilled?Array.isArray(c)?c.some(function(a){if(g===a)return e.dependenciesFulfilled=!0,!0}):"object"==typeof c?"object"!=typeof g?this.dependenciesFulfilled=c===g:Object.keys(c).some(function(a){return!!c.hasOwnProperty(a)&&(g.hasOwnProperty(a)&&c[a]===g[a]?void(e.dependenciesFulfilled=!0):(e.dependenciesFulfilled=!1,!0))}):"string"==typeof c||"number"==typeof c?this.dependenciesFulfilled=g===c:"boolean"==typeof c&&(c?this.dependenciesFulfilled=g&&g.length>0:this.dependenciesFulfilled=!g||0===g.length):this.dependenciesFulfilled=!1,this.dependenciesFulfilled!==h&&this.notify(),this.dependenciesFulfilled?d.style.display="block":d.style.display="none"}},setContainer:function(a){this.container=a,this.schema.id&&this.container.setAttribute("data-schemaid",this.schema.id),this.schema.type&&"string"==typeof this.schema.type&&this.container.setAttribute("data-schematype",this.schema.type),this.container.setAttribute("data-schemapath",this.path)},preBuild:function(){},build:function(){},postBuild:function(){this.setupWatchListeners(),this.addLinks(),this.setValue(this.getDefault(),!0),this.updateHeaderText(),this.register(),this.onWatchedFieldChange()},setupWatchListeners:function(){var a=this;if(this.watched={},this.schema.vars&&(this.schema.watch=this.schema.vars),this.watched_values={},this.watch_listener=function(){a.refreshWatchedFieldValues()&&a.onWatchedFieldChange()},this.schema.hasOwnProperty("watch")){var b,c,d,e,f;for(var g in this.schema.watch)if(this.schema.watch.hasOwnProperty(g)){if(b=this.schema.watch[g],Array.isArray(b)){if(b.length<2)continue;c=[b[0]].concat(b[1].split("."))}else c=b.split("."),a.theme.closest(a.container,'[data-schemaid="'+c[0]+'"]')||c.unshift("#");if(d=c.shift(),"#"===d&&(d=a.jsoneditor.schema.id||"root"),e=a.theme.closest(a.container,'[data-schemaid="'+d+'"]'),!e)throw"Could not find ancestor node with id "+d;f=e.getAttribute("data-schemapath")+"."+c.join("."),a.jsoneditor.watch(f,a.watch_listener),a.watched[g]=f}}this.schema.headerTemplate&&(this.header_template=this.jsoneditor.compileTemplate(this.schema.headerTemplate,this.template_engine))},addLinks:function(){if(!this.no_link_holder&&(this.link_holder=this.theme.getLinksHolder(),this.container.appendChild(this.link_holder),this.schema.links))for(var a=0;a<this.schema.links.length;a++)this.addLink(this.getLink(this.schema.links[a]))},onMove:function(){},getButton:function(a,b,c){var d="json-editor-btn-"+b;b=this.iconlib?this.iconlib.getIcon(b):null,!b&&c&&(a=c,c=null);var e=this.theme.getButton(a,b,c);return e.classList.add(d),e},setButtonText:function(a,b,c,d){return c=this.iconlib?this.iconlib.getIcon(c):null,!c&&d&&(b=d,d=null),this.theme.setButtonText(a,b,c,d)},addLink:function(a){this.link_holder&&this.link_holder.appendChild(a)},getLink:function(a){var b,c,d=a.mediaType||"application/javascript",e=d.split("/")[0],f=this.jsoneditor.compileTemplate(a.href,this.template_engine),g=this.jsoneditor.compileTemplate(a.rel?a.rel:a.href,this.template_engine),h=null;if(a.download&&(h=a.download),h&&h!==!0&&(h=this.jsoneditor.compileTemplate(h,this.template_engine)),"image"===e){b=this.theme.getBlockLinkHolder(),c=document.createElement("a"),c.setAttribute("target","_blank");var i=document.createElement("img");this.theme.createImageLink(b,c,i),this.link_watchers.push(function(a){var b=f(a),d=g(a);c.setAttribute("href",b),c.setAttribute("title",d||b),i.setAttribute("src",b)})}else if(["audio","video"].indexOf(e)>=0){b=this.theme.getBlockLinkHolder(),c=this.theme.getBlockLink(),c.setAttribute("target","_blank");var j=document.createElement(e);j.setAttribute("controls","controls"),this.theme.createMediaLink(b,c,j),this.link_watchers.push(function(a){var b=f(a),d=g(a);c.setAttribute("href",b),c.textContent=d||b,j.setAttribute("src",b)})}else c=b=this.theme.getBlockLink(),b.setAttribute("target","_blank"),b.textContent=a.rel,this.link_watchers.push(function(a){var c=f(a),d=g(a);b.setAttribute("href",c),b.textContent=d||c});return h&&c&&(h===!0?c.setAttribute("download",""):this.link_watchers.push(function(a){c.setAttribute("download",h(a))})),a["class"]&&c.classList.add(a["class"]),b},refreshWatchedFieldValues:function(){if(this.watched_values){var a={},b=!1,c=this;if(this.watched){var d,e;for(var f in this.watched)this.watched.hasOwnProperty(f)&&(e=c.jsoneditor.getEditor(this.watched[f]),d=e?e.getValue():null,c.watched_values[f]!==d&&(b=!0),a[f]=d)}return a.self=this.getValue(),this.watched_values.self!==a.self&&(b=!0),this.watched_values=a,b}},getWatchedFieldValues:function(){return this.watched_values},updateHeaderText:function(){if(this.header)if(this.header.children.length){for(var a=0;a<this.header.childNodes.length;a++)if(3===this.header.childNodes[a].nodeType){this.header.childNodes[a].nodeValue=this.getHeaderText();break}}else this.header.textContent=this.getHeaderText()},getHeaderText:function(a){return this.header_text?this.header_text:a?this.schema.title:this.getTitle()},onWatchedFieldChange:function(){var a;if(this.header_template){a=e(this.getWatchedFieldValues(),{key:this.key,i:this.key,i0:1*this.key,i1:1*this.key+1,title:this.getTitle()});var b=this.header_template(a);b!==this.header_text&&(this.header_text=b,this.updateHeaderText(),this.notify())}if(this.link_watchers.length){a=this.getWatchedFieldValues();for(var c=0;c<this.link_watchers.length;c++)this.link_watchers[c](a)}},setValue:function(a){this.value=a},getValue:function(){return this.dependenciesFulfilled?this.value:b},refreshValue:function(){},getChildEditors:function(){return!1},destroy:function(){var a=this;this.unregister(this),f(this.watched,function(b,c){a.jsoneditor.unwatch(c,a.watch_listener)}),this.watched=null,this.watched_values=null,this.watch_listener=null,this.header_text=null,this.header_template=null,this.value=null,this.container&&this.container.parentNode&&this.container.parentNode.removeChild(this.container),this.container=null,this.jsoneditor=null,this.schema=null,this.path=null,this.key=null,this.parent=null},getDefault:function(){if("undefined"!=typeof this.schema["default"])return this.schema["default"];if("undefined"!=typeof this.schema["enum"])return this.schema["enum"][0];var a=this.schema.type||this.schema.oneOf;if(a&&Array.isArray(a)&&(a=a[0]),a&&"object"==typeof a&&(a=a.type),a&&Array.isArray(a)&&(a=a[0]),"string"==typeof a){if("number"===a)return 0;if("boolean"===a)return!1;if("integer"===a)return 0;if("string"===a)return"";if("object"===a)return{};if("array"===a)return[]}return null},getTitle:function(){return this.schema.title||this.key},enable:function(){this.disabled=!1},disable:function(){this.disabled=!0},isEnabled:function(){return!this.disabled},isRequired:function(){return"boolean"==typeof this.schema.required?this.schema.required:this.parent&&this.parent.schema&&Array.isArray(this.parent.schema.required)?this.parent.schema.required.indexOf(this.key)>-1:!!this.jsoneditor.options.required_by_default},getDisplayText:function(a){var b=[],c={};f(a,function(a,b){b.title&&(c[b.title]=c[b.title]||0,c[b.title]++),b.description&&(c[b.description]=c[b.description]||0,c[b.description]++),b.format&&(c[b.format]=c[b.format]||0,c[b.format]++),b.type&&(c[b.type]=c[b.type]||0,c[b.type]++)}),f(a,function(a,d){var e;e="string"==typeof d?d:d.title&&c[d.title]<=1?d.title:d.format&&c[d.format]<=1?d.format:d.type&&c[d.type]<=1?d.type:d.description&&c[d.description]<=1?d.descripton:d.title?d.title:d.format?d.format:d.type?d.type:d.description?d.description:JSON.stringify(d).length<500?JSON.stringify(d):"type",b.push(e)});var d={};return f(b,function(a,e){d[e]=d[e]||0,d[e]++,c[e]>1&&(b[a]=e+" "+d[e])}),b},getValidId:function(a){return a=a===b?"":a.toString(),a.replace(/\s+/g,"-")},setInputAttributes:function(a){if(this.schema.options&&this.schema.options.inputAttributes){var b=this.schema.options.inputAttributes,c=["name","type"].concat(a);for(var d in b)b.hasOwnProperty(d)&&c.indexOf(d.toLowerCase())==-1&&this.input.setAttribute(d,b[d])}},getOption:function(a){try{throw"getOption is deprecated"}catch(b){window.console.error(b)}return this.options[a]},showValidationErrors:function(a){}}),h.defaults.editors["null"]=h.AbstractEditor.extend({getValue:function(){return this.dependenciesFulfilled?null:b},setValue:function(){this.onChange()},getNumColumns:function(){return 2}}),h.defaults.editors.string=h.AbstractEditor.extend({register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},setValue:function(a,b,c){if((!this.template||c)&&(null===a||"undefined"==typeof a?a="":"object"==typeof a?a=JSON.stringify(a):"string"!=typeof a&&(a=""+a),
          +
          a!==this.serialized)){var d=this.sanitize(a);if(this.input.value!==d){this.input.value=d,this.sceditor_instance?this.sceditor_instance.val(d):this.SimpleMDE?this.SimpleMDE.value(d):this.ace_editor&&(this.ace_editor.setValue(d),this.ace_editor.session.getSelection().clearSelection(),this.ace_editor.resize());var e=c||this.getValue()!==a;this.refreshValue(),b?this.is_dirty=!1:"change"===this.jsoneditor.options.show_errors&&(this.is_dirty=!0),this.adjust_height&&this.adjust_height(this.input),this.onChange(e)}}},getNumColumns:function(){var a,b=Math.ceil(Math.max(this.getTitle().length,this.schema.maxLength||0,this.schema.minLength||0)/5);return a="textarea"===this.input_type?6:["text","email"].indexOf(this.input_type)>=0?4:2,Math.min(12,Math.max(b,a))},build:function(){var a=this;if(this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.format=this.schema.format,!this.format&&this.schema.media&&this.schema.media.type&&(this.format=this.schema.media.type.replace(/(^(application|text)\/(x-)?(script\.)?)|(-source$)/g,"")),!this.format&&this.options.default_format&&(this.format=this.options.default_format),this.options.format&&(this.format=this.options.format),this.format)if("textarea"===this.format)this.input_type="textarea",this.input=this.theme.getTextareaInput();else if("range"===this.format){this.input_type="range";var b=this.schema.minimum||0,c=this.schema.maximum||Math.max(100,b+1),d=1;this.schema.multipleOf&&(b%this.schema.multipleOf&&(b=Math.ceil(b/this.schema.multipleOf)*this.schema.multipleOf),c%this.schema.multipleOf&&(c=Math.floor(c/this.schema.multipleOf)*this.schema.multipleOf),d=this.schema.multipleOf),this.input=this.theme.getRangeInput(b,c,d)}else["actionscript","batchfile","bbcode","c","c++","cpp","coffee","csharp","css","dart","django","ejs","erlang","golang","groovy","handlebars","haskell","haxe","html","ini","jade","java","javascript","json","less","lisp","lua","makefile","markdown","matlab","mysql","objectivec","pascal","perl","pgsql","php","python","r","ruby","sass","scala","scss","smarty","sql","sqlserver","stylus","svg","twig","vbscript","xml","yaml"].indexOf(this.format)>=0?(this.input_type=this.format,this.source_code=!0,this.input=this.theme.getTextareaInput()):(this.input_type=this.format,this.input=this.theme.getFormInputField(this.input_type));else this.input_type="text",this.input=this.theme.getFormInputField(this.input_type);if("undefined"!=typeof this.schema.maxLength&&this.input.setAttribute("maxlength",this.schema.maxLength),"undefined"!=typeof this.schema.pattern?this.input.setAttribute("pattern",this.schema.pattern):"undefined"!=typeof this.schema.minLength&&this.input.setAttribute("pattern",".{"+this.schema.minLength+",}"),this.options.compact?this.container.classList.add("compact"):this.options.input_width&&(this.input.style.width=this.options.input_width),(this.schema.readOnly||this.schema.readonly||this.schema.template)&&(this.always_disabled=!0,this.input.setAttribute("readonly","true")),this.setInputAttributes(["maxlength","pattern","readonly","min","max","step"]),this.input.addEventListener("change",function(b){if(b.preventDefault(),b.stopPropagation(),a.schema.template)return void(this.value=a.value);var c=this.value,d=a.sanitize(c);c!==d&&(this.value=d),a.is_dirty=!0,a.refreshValue(),a.onChange(!0)}),this.options.input_height&&(this.input.style.height=this.options.input_height),this.options.expand_height&&(this.adjust_height=function(a){if(a){var b,c=a.offsetHeight;if(a.offsetHeight<a.scrollHeight)for(b=0;a.offsetHeight<a.scrollHeight+3&&!(b>100);)b++,c++,a.style.height=c+"px";else{for(b=0;a.offsetHeight>=a.scrollHeight+3&&!(b>100);)b++,c--,a.style.height=c+"px";a.style.height=c+1+"px"}}},this.input.addEventListener("keyup",function(b){a.adjust_height(this)}),this.input.addEventListener("change",function(b){a.adjust_height(this)}),this.adjust_height()),this.format&&this.input.setAttribute("data-schemaformat",this.format),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),"range"===this.format){var e=document.createElement("output");e.setAttribute("class","range-output"),this.control.appendChild(e),e.value=this.schema["default"],this.input.addEventListener("change",function(){e.value=a.input.value}),this.input.addEventListener("input",function(){e.value=a.input.value})}this.container.appendChild(this.control),window.requestAnimationFrame(function(){a.input.parentNode&&a.afterInputReady(),a.adjust_height&&a.adjust_height(a.input)}),this.schema.template?(this.template=this.jsoneditor.compileTemplate(this.schema.template,this.template_engine),this.refreshValue()):this.refreshValue()},postBuild:function(){this._super(),window.Cleave&&this.schema.options&&"object"==typeof this.schema.options.cleave&&(this.cleave=new window.Cleave(this.input,this.schema.options.cleave))},enable:function(){this.always_disabled||(this.input.disabled=!1,this._super())},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this._super()},afterInputReady:function(){var a,b=this;if(this.source_code)if(this.options.wysiwyg&&["html","bbcode"].indexOf(this.input_type)>=0&&window.jQuery&&window.jQuery.fn&&window.jQuery.fn.sceditor)a=e({},{plugins:"html"===b.input_type?"xhtml":"bbcode",emoticonsEnabled:!1,width:"100%",height:300},h.plugins.sceditor,b.options.sceditor_options||{}),window.jQuery(b.input).sceditor(a),b.sceditor_instance=window.jQuery(b.input).sceditor("instance"),b.sceditor_instance.blur(function(){var a=window.jQuery("<div>"+b.sceditor_instance.val()+"</div>");window.jQuery("#sceditor-start-marker,#sceditor-end-marker,.sceditor-nlf",a).remove(),b.input.value=a.html(),b.value=b.input.value,b.is_dirty=!0,b.onChange(!0)});else if("markdown"===this.input_type&&window.SimpleMDE)a=e({},h.plugins.SimpleMDE,{element:this.input}),this.SimpleMDE=new window.SimpleMDE(a),this.SimpleMDE.codemirror.on("change",function(){b.value=b.SimpleMDE.value(),b.is_dirty=!0,b.onChange(!0)});else if(window.ace){var c=this.input_type;"cpp"!==c&&"c++"!==c&&"c"!==c||(c="c_cpp"),this.ace_container=document.createElement("div"),this.ace_container.style.width="100%",this.ace_container.style.position="relative",this.ace_container.style.height="400px",this.input.parentNode.insertBefore(this.ace_container,this.input),this.input.style.display="none",this.ace_editor=window.ace.edit(this.ace_container);var d=this.schema.options&&this.schema.options.ace;d&&this.ace_editor.setOptions(d),this.ace_editor.setValue(this.getValue()),this.ace_editor.session.getSelection().clearSelection(),this.ace_editor.resize(),h.plugins.ace.theme&&this.ace_editor.setTheme("ace/theme/"+h.plugins.ace.theme),this.ace_editor.getSession().setMode("ace/mode/"+this.schema.format),this.ace_editor.on("change",function(){var a=b.ace_editor.getValue();b.input.value=a,b.refreshValue(),b.is_dirty=!0,b.onChange(!0)})}b.theme.afterInputReady(b.input)},refreshValue:function(){this.value=this.input.value,"string"!=typeof this.value&&(this.value=""),this.serialized=this.value},destroy:function(){this.sceditor_instance?this.sceditor_instance.destroy():this.SimpleMDE?(this.SimpleMDE.toTextArea(),this.SimpleMDE=null):this.ace_editor&&this.ace_editor.destroy(),this.cleave&&this.cleave.destroy(),this.template=null,this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this._super()},sanitize:function(a){return a},onWatchedFieldChange:function(){var a;this.template&&(a=this.getWatchedFieldValues(),this.setValue(this.template(a),!1,!0)),this._super()},showValidationErrors:function(a){var b=this;if("always"===this.jsoneditor.options.show_errors);else if(!this.is_dirty&&this.previous_error_setting===this.jsoneditor.options.show_errors)return;this.previous_error_setting=this.jsoneditor.options.show_errors;var c=[];f(a,function(a,d){d.path===b.path&&c.push(d.message)}),c.length?this.theme.addInputError(this.input,c.join(". ")+"."):this.theme.removeInputError(this.input)}}),h.defaults.editors.hidden=h.AbstractEditor.extend({register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},setValue:function(a,b,c){if((!this.template||c)&&(null===a||"undefined"==typeof a?a="":"object"==typeof a?a=JSON.stringify(a):"string"!=typeof a&&(a=""+a),a!==this.serialized)){var d=this.sanitize(a);if(this.input.value!==d){this.input.value=d;var e=c||this.getValue()!==a;this.refreshValue(),b?this.is_dirty=!1:"change"===this.jsoneditor.options.show_errors&&(this.is_dirty=!0),this.adjust_height&&this.adjust_height(this.input),this.onChange(e)}}},getNumColumns:function(){return 2},enable:function(){this._super()},disable:function(){this._super()},refreshValue:function(){this.value=this.input.value,"string"!=typeof this.value&&(this.value=""),this.serialized=this.value},destroy:function(){this.template=null,this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this._super()},sanitize:function(a){return a},onWatchedFieldChange:function(){var a;this.template&&(a=this.getWatchedFieldValues(),this.setValue(this.template(a),!1,!0)),this._super()},build:function(){this.format=this.schema.format,!this.format&&this.options.default_format&&(this.format=this.options.default_format),this.options.format&&(this.format=this.options.format),this.input_type="hidden",this.input=this.theme.getFormInputField(this.input_type),this.format&&this.input.setAttribute("data-schemaformat",this.format),this.container.appendChild(this.input),this.schema.template?(this.template=this.jsoneditor.compileTemplate(this.schema.template,this.template_engine),this.refreshValue()):this.refreshValue()}}),h.defaults.editors.number=h.defaults.editors.string.extend({build:function(){if(this._super(),"undefined"!=typeof this.schema.minimum){var a=this.schema.minimum;"undefined"!=typeof this.schema.exclusiveMinimum&&(a+=1),this.input.setAttribute("min",a)}if("undefined"!=typeof this.schema.maximum){var b=this.schema.maximum;"undefined"!=typeof this.schema.exclusiveMaximum&&(b-=1),this.input.setAttribute("max",b)}if("undefined"!=typeof this.schema.step){var c=this.schema.step||1;this.input.setAttribute("step",c)}this.setInputAttributes(["maxlength","pattern","readonly","min","max","step"])},sanitize:function(a){return(a+"").replace(/[^0-9\.\-eE]/g,"")},getNumColumns:function(){return 2},getValue:function(){return this.dependenciesFulfilled?""===this.value?b:1*this.value:b}}),h.defaults.editors.integer=h.defaults.editors.number.extend({sanitize:function(a){return a+="",a.replace(/[^0-9\-]/g,"")},getNumColumns:function(){return 2}}),h.defaults.editors.rating=h.defaults.editors.integer.extend({build:function(){var a,b=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description));var c="json-editor-style-rating",d=document.getElementById(c);if(!d){var e=document.createElement("style");e.id=c,e.type="text/css",e.innerHTML=" .rating-container { display: inline-block; clear: both; } .rating { float:left; } /* :not(:checked) is a filter, so that browsers that don’t support :checked don’t follow these rules. Every browser that supports :checked also supports :not(), so it doesn’t make the test unnecessarily selective */ .rating:not(:checked) > input { position:absolute; top:-9999px; clip:rect(0,0,0,0); } .rating:not(:checked) > label { float:right; width:1em; padding:0 .1em; overflow:hidden; white-space:nowrap; cursor:pointer; color:#ddd; } .rating:not(:checked) > label:before { content: '★ '; } .rating > input:checked ~ label { color: #FFB200; } .rating:not([readOnly]):not(:checked) > label:hover, .rating:not([readOnly]):not(:checked) > label:hover ~ label { color: #FFDA00; } .rating:not([readOnly]) > input:checked + label:hover, .rating:not([readOnly]) > input:checked + label:hover ~ label, .rating:not([readOnly]) > input:checked ~ label:hover, .rating:not([readOnly]) > input:checked ~ label:hover ~ label, .rating:not([readOnly]) > label:hover ~ input:checked ~ label { color: #FF8C0D; } .rating:not([readOnly]) > label:active { position:relative; top:2px; left:2px; }",document.getElementsByTagName("head")[0].appendChild(e)}this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input);var g=document.createElement("div");g.classList.add("rating-container");var h=document.createElement("div");h.setAttribute("name",this.formname),h.classList.add("rating"),g.appendChild(h),this.options.compact&&this.container.setAttribute("class",this.container.getAttribute("class")+" compact");var i=this.schema.maximum?this.schema.maximum:5;for(this.schema.exclusiveMaximum&&i--,this.inputs=[],a=i;a>0;a--){var j=this.formname+a,k=this.theme.getFormInputField("radio");k.setAttribute("id",j),k.setAttribute("value",a),k.setAttribute("name",this.formname),h.appendChild(k),this.inputs.push(k);var l=document.createElement("label");l.setAttribute("for",j),l.appendChild(document.createTextNode(a+(1==a?" star":" stars"))),h.appendChild(l)}(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,f(this.inputs,function(a,b){h.setAttribute("readOnly","readOnly"),b.disabled=!0})),g.addEventListener("change",function(a){a.preventDefault(),a.stopPropagation(),b.input.value=a.srcElement.value,b.is_dirty=!0,b.refreshValue(),b.watch_listener(),b.jsoneditor.notifyWatchers(b.path),b.parent?b.parent.onChildEditorChange(b):b.jsoneditor.onChange()}),this.control=this.theme.getFormControl(this.label,g,this.description),this.container.appendChild(this.control),this.refreshValue()},setValue:function(a){var b=this.sanitize(a);if(this.value!==b){var c=this;f(this.inputs,function(a,d){if(d.value===b)return d.checked=!0,c.value=b,c.input.value=c.value,c.watch_listener(),c.jsoneditor.notifyWatchers(c.path),!1})}}}),h.defaults.editors.object=h.AbstractEditor.extend({getDefault:function(){return e({},this.schema["default"]||{})},getChildEditors:function(){return this.editors},register:function(){if(this._super(),this.editors)for(var a in this.editors)this.editors.hasOwnProperty(a)&&this.editors[a].register()},unregister:function(){if(this._super(),this.editors)for(var a in this.editors)this.editors.hasOwnProperty(a)&&this.editors[a].unregister()},getNumColumns:function(){return Math.max(Math.min(12,this.maxwidth),3)},enable:function(){if(!this.always_disabled&&(this.editjson_button&&(this.editjson_button.disabled=!1),this.addproperty_button&&(this.addproperty_button.disabled=!1),this._super(),this.editors))for(var a in this.editors)this.editors.hasOwnProperty(a)&&this.editors[a].enable()},disable:function(a){if(a&&(this.always_disabled=!0),this.editjson_button&&(this.editjson_button.disabled=!0),this.addproperty_button&&(this.addproperty_button.disabled=!0),this.hideEditJSON(),this._super(),this.editors)for(var b in this.editors)this.editors.hasOwnProperty(b)&&this.editors[b].disable(a)},layoutEditors:function(){var a,b,c=this;if(this.row_container){this.property_order=Object.keys(this.editors),this.property_order=this.property_order.sort(function(a,b){var d=c.editors[a].schema.propertyOrder,e=c.editors[b].schema.propertyOrder;return"number"!=typeof d&&(d=1e3),"number"!=typeof e&&(e=1e3),d-e});var d,e="categories"===this.format;if("grid"===this.format){var h=[];for(f(this.property_order,function(a,b){var d=c.editors[b];if(!d.property_removed){for(var e=!1,f=d.options.hidden?0:d.options.grid_columns||d.getNumColumns(),g=d.options.hidden?0:d.container.offsetHeight,i=0;i<h.length;i++)h[i].width+f<=12&&(!g||.5*h[i].minh<g&&2*h[i].maxh>g)&&(e=i);e===!1&&(h.push({width:0,minh:999999,maxh:0,editors:[]}),e=h.length-1),h[e].editors.push({key:b,width:f,height:g}),h[e].width+=f,h[e].minh=Math.min(h[e].minh,g),h[e].maxh=Math.max(h[e].maxh,g)}}),a=0;a<h.length;a++)if(h[a].width<12){var i=!1,j=0;for(b=0;b<h[a].editors.length;b++)i===!1?i=b:h[a].editors[b].width>h[a].editors[i].width&&(i=b),h[a].editors[b].width*=12/h[a].width,h[a].editors[b].width=Math.floor(h[a].editors[b].width),j+=h[a].editors[b].width;j<12&&(h[a].editors[i].width+=12-j),h[a].width=12}if(this.layout===JSON.stringify(h))return!1;for(this.layout=JSON.stringify(h),d=document.createElement("div"),a=0;a<h.length;a++){var k=this.theme.getGridRow();for(d.appendChild(k),b=0;b<h[a].editors.length;b++){var l=h[a].editors[b].key,m=this.editors[l];m.options.hidden?m.container.style.display="none":this.theme.setGridColumnSize(m.container,h[a].editors[b].width),k.appendChild(m.container)}}}else{if(d=document.createElement("div"),e){var n=document.createElement("div"),o=this.theme.getTopTabHolder(this.schema.title),p=this.theme.getTopTabContentHolder(o);for(f(this.property_order,function(a,b){var d=c.editors[b];if(!d.property_removed){var e=c.theme.getTabContent(),f=d.schema&&("object"===d.schema.type||"array"===d.schema.type);e.isObjOrArray=f;var g=c.theme.getGridRow();d.tab||("undefined"==typeof c.basicPane?c.addRow(d,o,e):c.addRow(d,o,c.basicPane)),e.id=c.getValidId(d.tab_text.textContent),f?(e.appendChild(g),p.appendChild(e),c.theme.addTopTab(o,d.tab)):(n.appendChild(g),p.childElementCount>0?p.firstChild.isObjOrArray&&(e.appendChild(n),p.insertBefore(e,p.firstChild),c.theme.insertBasicTopTab(d.tab,o),d.basicPane=e):(e.appendChild(n),p.appendChild(e),c.theme.addTopTab(o,d.tab),d.basicPane=e)),d.options.hidden?d.container.style.display="none":c.theme.setGridColumnSize(d.container,12),g.appendChild(d.container),d.rowPane=e}});this.tabPanesContainer.firstChild;)this.tabPanesContainer.removeChild(this.tabPanesContainer.firstChild);var q=this.tabs_holder.parentNode;q.removeChild(q.firstChild),q.appendChild(o),this.tabPanesContainer=p,this.tabs_holder=o;var r=this.theme.getFirstTab(this.tabs_holder);return void(r&&g(r,"click"))}f(this.property_order,function(a,b){var e=c.editors[b];if(!e.property_removed){var f=c.theme.getGridRow();d.appendChild(f),e.options.hidden?e.container.style.display="none":c.theme.setGridColumnSize(e.container,12),f.appendChild(e.container)}})}for(;this.row_container.firstChild;)this.row_container.removeChild(this.row_container.firstChild);this.row_container.appendChild(d)}},getPropertySchema:function(a){var b=this.schema.properties[a]||{};b=e({},b);var c=!!this.schema.properties[a];if(this.schema.patternProperties)for(var d in this.schema.patternProperties)if(this.schema.patternProperties.hasOwnProperty(d)){var f=new RegExp(d);f.test(a)&&(b.allOf=b.allOf||[],b.allOf.push(this.schema.patternProperties[d]),c=!0)}return!c&&this.schema.additionalProperties&&"object"==typeof this.schema.additionalProperties&&(b=e({},this.schema.additionalProperties)),b},preBuild:function(){this._super(),this.editors={},this.cached_editors={};var a=this;if(this.format=this.options.layout||this.options.object_layout||this.schema.format||this.jsoneditor.options.object_layout||"normal",this.schema.properties=this.schema.properties||{},this.minwidth=0,this.maxwidth=0,this.options.table_row)f(this.schema.properties,function(b,c){var d=a.jsoneditor.getEditorClass(c);a.editors[b]=a.jsoneditor.createEditor(d,{jsoneditor:a.jsoneditor,schema:c,path:a.path+"."+b,parent:a,compact:!0,required:!0}),a.editors[b].preBuild();var e=a.editors[b].options.hidden?0:a.editors[b].options.grid_columns||a.editors[b].getNumColumns();a.minwidth+=e,a.maxwidth+=e}),this.no_link_holder=!0;else{if(this.options.table)throw"Not supported yet";this.schema.defaultProperties||(this.jsoneditor.options.display_required_only||this.options.display_required_only?(this.schema.defaultProperties=[],f(this.schema.properties,function(b,c){a.isRequired({key:b,schema:c})&&a.schema.defaultProperties.push(b)})):a.schema.defaultProperties=Object.keys(a.schema.properties)),a.maxwidth+=1,f(this.schema.defaultProperties,function(b,c){a.addObjectProperty(c,!0),a.editors[c]&&(a.minwidth=Math.max(a.minwidth,a.editors[c].options.grid_columns||a.editors[c].getNumColumns()),a.maxwidth+=a.editors[c].options.grid_columns||a.editors[c].getNumColumns())})}this.property_order=Object.keys(this.editors),this.property_order=this.property_order.sort(function(b,c){var d=a.editors[b].schema.propertyOrder,e=a.editors[c].schema.propertyOrder;return"number"!=typeof d&&(d=1e3),"number"!=typeof e&&(e=1e3),d-e})},addTab:function(a){var b=this,c=b.rows[a].schema&&("object"===b.rows[a].schema.type||"array"===b.rows[a].schema.type);b.tabs_holder&&(b.rows[a].tab_text=document.createElement("span"),c?b.rows[a].tab_text.textContent=b.rows[a].getHeaderText():b.rows[a].tab_text.textContent="undefined"==typeof b.schema.basicCategoryTitle?"Basic":b.schema.basicCategoryTitle,b.rows[a].tab=b.theme.getTopTab(b.rows[a].tab_text,this.getValidId(b.rows[a].tab_text.textContent)),b.rows[a].tab.addEventListener("click",function(c){b.active_tab=b.rows[a].tab,b.refreshTabs(),c.preventDefault(),c.stopPropagation()}))},addRow:function(a,b,c){var d=this,e=this.rows.length,f="object"===a.schema.type||"array"===a.schema.type;d.rows[e]=a,d.rows[e].rowPane=c,f?(d.addTab(e),d.theme.addTopTab(b,d.rows[e].tab)):"undefined"==typeof d.basicTab?(d.addTab(e),d.basicTab=e,d.basicPane=c,d.theme.addTopTab(b,d.rows[e].tab)):(d.rows[e].tab=d.rows[d.basicTab].tab,d.rows[e].tab_text=d.rows[d.basicTab].tab_text,d.rows[e].rowPane=d.rows[d.basicTab].rowPane)},refreshTabs:function(a){var b=this,c="undefined"!=typeof b.basicTab,d=!1;f(this.rows,function(e,f){f.tab&&f.rowPane&&f.rowPane.parentNode&&(c&&f.tab==b.rows[b.basicTab].tab&&d||(a?f.tab_text.textContent=f.getHeaderText():(c&&f.tab==b.rows[b.basicTab].tab&&(d=!0),f.tab===b.active_tab?b.theme.markTabActive(f):b.theme.markTabInactive(f))))})},build:function(){var a=this,b="categories"===this.format;if(this.rows=[],this.active_tab=null,this.options.table_row)this.editor_holder=this.container,f(this.editors,function(b,c){var d=a.theme.getTableCell();a.editor_holder.appendChild(d),c.setContainer(d),c.build(),c.postBuild(),a.editors[b].options.hidden&&(d.style.display="none"),a.editors[b].options.input_width&&(d.style.width=a.editors[b].options.input_width)});else{if(this.options.table)throw"Not supported yet";this.header=document.createElement("span"),this.header.textContent=this.getTitle(),this.title=this.theme.getHeader(this.header),this.container.appendChild(this.title),this.container.style.position="relative",this.editjson_holder=this.theme.getModal(),this.editjson_textarea=this.theme.getTextareaInput(),this.editjson_textarea.style.height="170px",this.editjson_textarea.style.width="300px",this.editjson_textarea.style.display="block",this.editjson_save=this.getButton("Save","save","Save"),this.editjson_save.classList.add("json-editor-btntype-save"),this.editjson_save.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.saveJSON()}),this.editjson_copy=this.getButton("Copy","copy","Copy"),this.editjson_copy.classList.add("json-editor-btntype-copy"),this.editjson_copy.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.copyJSON()}),this.editjson_cancel=this.getButton("Cancel","cancel","Cancel"),this.editjson_cancel.classList.add("json-editor-btntype-cancel"),this.editjson_cancel.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.hideEditJSON()}),this.editjson_holder.appendChild(this.editjson_textarea),this.editjson_holder.appendChild(this.editjson_save),this.editjson_holder.appendChild(this.editjson_copy),this.editjson_holder.appendChild(this.editjson_cancel),this.addproperty_holder=this.theme.getModal(),this.addproperty_list=document.createElement("div"),this.addproperty_list.style.width="295px",this.addproperty_list.style.maxHeight="160px",this.addproperty_list.style.padding="5px 0",this.addproperty_list.style.overflowY="auto",this.addproperty_list.style.overflowX="hidden",this.addproperty_list.style.paddingLeft="5px",this.addproperty_list.setAttribute("class","property-selector"),this.addproperty_add=this.getButton("add","add","add"),this.addproperty_add.classList.add("json-editor-btntype-add"),this.addproperty_input=this.theme.getFormInputField("text"),this.addproperty_input.setAttribute("placeholder","Property name..."),this.addproperty_input.style.width="220px",this.addproperty_input.style.marginBottom="0",this.addproperty_input.style.display="inline-block",this.addproperty_add.addEventListener("click",function(b){if(b.preventDefault(),b.stopPropagation(),a.addproperty_input.value){if(a.editors[a.addproperty_input.value])return void window.alert("there is already a property with that name");a.addObjectProperty(a.addproperty_input.value),a.editors[a.addproperty_input.value]&&a.editors[a.addproperty_input.value].disable(),a.onChange(!0)}}),this.addproperty_holder.appendChild(this.addproperty_list),this.addproperty_holder.appendChild(this.addproperty_input),this.addproperty_holder.appendChild(this.addproperty_add);var c=document.createElement("div");c.style.clear="both",this.addproperty_holder.appendChild(c),document.addEventListener("click",function(a){!this.addproperty_holder.contains(a.target)&&this.adding_property&&(a.preventDefault(),a.stopPropagation(),this.toggleAddProperty())}.bind(this)),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description),this.container.appendChild(this.description)),this.error_holder=document.createElement("div"),this.container.appendChild(this.error_holder),this.editor_holder=this.theme.getIndentedPanel(),this.container.appendChild(this.editor_holder),this.row_container=this.theme.getGridContainer(),b?(this.tabs_holder=this.theme.getTopTabHolder(this.getValidId(this.schema.title)),this.tabPanesContainer=this.theme.getTopTabContentHolder(this.tabs_holder),this.editor_holder.appendChild(this.tabs_holder)):(this.tabs_holder=this.theme.getTabHolder(this.getValidId(this.schema.title)),this.tabPanesContainer=this.theme.getTabContentHolder(this.tabs_holder),this.editor_holder.appendChild(this.row_container)),f(this.editors,function(c,d){var e=a.theme.getTabContent(),f=a.theme.getGridColumn(),g=!(!d.schema||"object"!==d.schema.type&&"array"!==d.schema.type);if(e.isObjOrArray=g,b){if(g){var h=a.theme.getGridContainer();h.appendChild(f),e.appendChild(h),a.tabPanesContainer.appendChild(e),a.row_container=h}else"undefined"==typeof a.row_container_basic&&(a.row_container_basic=a.theme.getGridContainer(),e.appendChild(a.row_container_basic),0==a.tabPanesContainer.childElementCount?a.tabPanesContainer.appendChild(e):a.tabPanesContainer.insertBefore(e,a.tabPanesContainer.childNodes[1])),a.row_container_basic.appendChild(f);a.addRow(d,a.tabs_holder,e),e.id=a.getValidId(d.schema.title)}else a.row_container.appendChild(f);d.setContainer(f),d.build(),d.postBuild()}),this.rows[0]&&g(this.rows[0].tab,"click"),this.title_controls=this.theme.getHeaderButtonHolder(),this.editjson_controls=this.theme.getHeaderButtonHolder(),this.addproperty_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.title.appendChild(this.editjson_controls),this.title.appendChild(this.addproperty_controls),this.collapsed=!1,this.toggle_button=this.getButton("","collapse",this.translate("button_collapse")),this.toggle_button.classList.add("json-editor-btntype-toggle"),this.title_controls.appendChild(this.toggle_button),this.toggle_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.collapsed?(a.editor_holder.style.display="",a.collapsed=!1,a.setButtonText(a.toggle_button,"","collapse",a.translate("button_collapse"))):(a.editor_holder.style.display="none",a.collapsed=!0,a.setButtonText(a.toggle_button,"","expand",a.translate("button_expand")))}),this.options.collapsed&&g(this.toggle_button,"click"),this.schema.options&&"undefined"!=typeof this.schema.options.disable_collapse?this.schema.options.disable_collapse&&(this.toggle_button.style.display="none"):this.jsoneditor.options.disable_collapse&&(this.toggle_button.style.display="none"),this.editjson_button=this.getButton("JSON","edit","Edit JSON"),this.editjson_button.classList.add("json-editor-btntype-editjson"),this.editjson_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.toggleEditJSON()}),this.editjson_controls.appendChild(this.editjson_button),this.editjson_controls.appendChild(this.editjson_holder),this.schema.options&&"undefined"!=typeof this.schema.options.disable_edit_json?this.schema.options.disable_edit_json&&(this.editjson_button.style.display="none"):this.jsoneditor.options.disable_edit_json&&(this.editjson_button.style.display="none"),this.addproperty_button=this.getButton("Properties","edit","Object Properties"),this.addproperty_button.classList.add("json-editor-btntype-properties"),this.addproperty_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.toggleAddProperty()}),this.addproperty_controls.appendChild(this.addproperty_button),this.addproperty_controls.appendChild(this.addproperty_holder),this.refreshAddProperties()}this.options.table_row?(this.editor_holder=this.container,f(this.property_order,function(b,c){a.editor_holder.appendChild(a.editors[c].container)})):(this.layoutEditors(),this.layoutEditors())},showEditJSON:function(){this.editjson_holder&&(this.hideAddProperty(),this.editjson_holder.style.left=this.editjson_button.offsetLeft+"px",this.editjson_holder.style.top=this.editjson_button.offsetTop+this.editjson_button.offsetHeight+"px",this.editjson_textarea.value=JSON.stringify(this.getValue(),null,2),this.disable(),this.editjson_holder.style.display="",this.editjson_button.disabled=!1,this.editing_json=!0)},hideEditJSON:function(){this.editjson_holder&&this.editing_json&&(this.editjson_holder.style.display="none",this.enable(),this.editing_json=!1)},copyJSON:function(){if(this.editjson_holder){var a=document.createElement("textarea");a.value=this.editjson_textarea.value,a.setAttribute("readonly",""),a.style.position="absolute",a.style.left="-9999px",document.body.appendChild(a),a.select(),document.execCommand("copy"),document.body.removeChild(a)}},saveJSON:function(){if(this.editjson_holder)try{var a=JSON.parse(this.editjson_textarea.value);this.setValue(a),this.hideEditJSON(),this.onChange(!0)}catch(b){throw window.alert("invalid JSON"),b}},toggleEditJSON:function(){this.editing_json?this.hideEditJSON():this.showEditJSON()},insertPropertyControlUsingPropertyOrder:function(a,b,c){var d;this.schema.properties[a]&&(d=this.schema.properties[a].propertyOrder),"number"!=typeof d&&(d=1e3),b.propertyOrder=d;for(var e=0;e<c.childNodes.length;e++){var f=c.childNodes[e];if(b.propertyOrder<f.propertyOrder){this.addproperty_list.insertBefore(b,f),b=null;break}}b&&this.addproperty_list.appendChild(b)},addPropertyCheckbox:function(a){var b,c,d,e,f=this;return b=f.theme.getCheckbox(),b.style.width="auto",d=this.schema.properties[a]&&this.schema.properties[a].title?this.schema.properties[a].title:a,c=f.theme.getCheckboxLabel(d),e=f.theme.getFormControl(c,b),e.style.paddingBottom=e.style.marginBottom=e.style.paddingTop=e.style.marginTop=0,e.style.height="auto",this.insertPropertyControlUsingPropertyOrder(a,e,this.addproperty_list),
          +
          b.checked=a in this.editors,b.addEventListener("change",function(){b.checked?f.addObjectProperty(a):f.removeObjectProperty(a),f.onChange(!0)}),f.addproperty_checkboxes[a]=b,b},showAddProperty:function(){this.addproperty_holder&&(this.hideEditJSON(),this.addproperty_holder.style.left=this.addproperty_button.offsetLeft+"px",this.addproperty_holder.style.top=this.addproperty_button.offsetTop+this.addproperty_button.offsetHeight+"px",this.disable(),this.adding_property=!0,this.addproperty_button.disabled=!1,this.addproperty_holder.style.display="",this.refreshAddProperties())},hideAddProperty:function(){this.addproperty_holder&&this.adding_property&&(this.addproperty_holder.style.display="none",this.enable(),this.adding_property=!1)},toggleAddProperty:function(){this.adding_property?this.hideAddProperty():this.showAddProperty()},removeObjectProperty:function(a){this.editors[a]&&(this.editors[a].unregister(),delete this.editors[a],this.refreshValue(),this.layoutEditors())},addObjectProperty:function(a,b){var c=this;if(!this.editors[a]){if(this.cached_editors[a]){if(this.editors[a]=this.cached_editors[a],b)return;this.editors[a].register()}else{if(!(this.canHaveAdditionalProperties()||this.schema.properties&&this.schema.properties[a]))return;var d=c.getPropertySchema(a);"number"!=typeof d.propertyOrder&&(d.propertyOrder=Object.keys(c.editors).length+1e3);var e=c.jsoneditor.getEditorClass(d);if(c.editors[a]=c.jsoneditor.createEditor(e,{jsoneditor:c.jsoneditor,schema:d,path:c.path+"."+a,parent:c}),c.editors[a].preBuild(),!b){var f=c.theme.getChildEditorHolder();c.editor_holder.appendChild(f),c.editors[a].setContainer(f),c.editors[a].build(),c.editors[a].postBuild()}c.cached_editors[a]=c.editors[a]}b||(c.refreshValue(),c.layoutEditors())}},onChildEditorChange:function(a){this.refreshValue(),this._super(a)},canHaveAdditionalProperties:function(){return"boolean"==typeof this.schema.additionalProperties?this.schema.additionalProperties:!this.jsoneditor.options.no_additional_properties},destroy:function(){f(this.cached_editors,function(a,b){b.destroy()}),this.editor_holder&&(this.editor_holder.innerHTML=""),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.error_holder&&this.error_holder.parentNode&&this.error_holder.parentNode.removeChild(this.error_holder),this.editors=null,this.cached_editors=null,this.editor_holder&&this.editor_holder.parentNode&&this.editor_holder.parentNode.removeChild(this.editor_holder),this.editor_holder=null,this._super()},getValue:function(){if(!this.dependenciesFulfilled)return b;var a=this._super();if(this.jsoneditor.options.remove_empty_properties||this.options.remove_empty_properties)for(var c in a)a.hasOwnProperty(c)&&("undefined"==typeof a[c]||""===a[c]||a[c]===Object(a[c])&&0==Object.keys(a[c]).length&&a[c].constructor==Object)&&delete a[c];return a},refreshValue:function(){this.value={};for(var a in this.editors)this.editors.hasOwnProperty(a)&&(this.value[a]=this.editors[a].getValue());this.adding_property&&this.refreshAddProperties()},refreshAddProperties:function(){if(this.options.disable_properties||this.options.disable_properties!==!1&&this.jsoneditor.options.disable_properties)return void(this.addproperty_controls.style.display="none");var a,b=!1,c=!1,d=0,e=!1;for(a in this.editors)this.editors.hasOwnProperty(a)&&d++;b=this.canHaveAdditionalProperties()&&!("undefined"!=typeof this.schema.maxProperties&&d>=this.schema.maxProperties),this.addproperty_checkboxes&&(this.addproperty_list.innerHTML=""),this.addproperty_checkboxes={};for(a in this.cached_editors)this.cached_editors.hasOwnProperty(a)&&(this.addPropertyCheckbox(a),this.isRequired(this.cached_editors[a])&&a in this.editors&&(this.addproperty_checkboxes[a].disabled=!0),"undefined"!=typeof this.schema.minProperties&&d<=this.schema.minProperties?(this.addproperty_checkboxes[a].disabled=this.addproperty_checkboxes[a].checked,this.addproperty_checkboxes[a].checked||(e=!0)):a in this.editors?(e=!0,c=!0):b||this.schema.properties.hasOwnProperty(a)?(this.addproperty_checkboxes[a].disabled=!1,e=!0):this.addproperty_checkboxes[a].disabled=!0);this.canHaveAdditionalProperties()&&(e=!0);for(a in this.schema.properties)this.schema.properties.hasOwnProperty(a)&&(this.cached_editors[a]||(e=!0,this.addPropertyCheckbox(a)));e?this.canHaveAdditionalProperties()?b?this.addproperty_add.disabled=!1:this.addproperty_add.disabled=!0:(this.addproperty_add.style.display="none",this.addproperty_input.style.display="none"):(this.hideAddProperty(),this.addproperty_controls.style.display="none")},isRequired:function(a){return"boolean"==typeof a.schema.required?a.schema.required:Array.isArray(this.schema.required)?this.schema.required.indexOf(a.key)>-1:!!this.jsoneditor.options.required_by_default},setValue:function(a,b){var c=this;a=a||{},("object"!=typeof a||Array.isArray(a))&&(a={}),f(this.cached_editors,function(d,e){"undefined"!=typeof a[d]?(c.addObjectProperty(d),e.setValue(a[d],b)):b||c.isRequired(e)?e.setValue(e.getDefault(),b):c.removeObjectProperty(d)}),f(a,function(a,d){c.cached_editors[a]||(c.addObjectProperty(a),c.editors[a]&&c.editors[a].setValue(d,b))}),this.refreshValue(),this.layoutEditors(),this.onChange()},showValidationErrors:function(a){var b=this,c=[],d=[];if(f(a,function(a,e){e.path===b.path?c.push(e):d.push(e)}),this.error_holder)if(c.length){this.error_holder.innerHTML="",this.error_holder.style.display="",f(c,function(a,c){b.error_holder.appendChild(b.theme.getErrorMessage(c.message))})}else this.error_holder.style.display="none";this.options.table_row&&(c.length?this.theme.addTableRowError(this.container):this.theme.removeTableRowError(this.container)),f(this.editors,function(a,b){b.showValidationErrors(d)})}}),h.defaults.editors.array=h.AbstractEditor.extend({askConfirmation:function(){return this.jsoneditor.options.prompt_before_delete!==!0||confirm("Are you sure you want to remove this node?")!==!1},getDefault:function(){return this.schema["default"]||[]},register:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].register()},unregister:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].unregister()},getNumColumns:function(){var a=this.getItemInfo(0);return this.tabs_holder&&"tabs-top"!==this.schema.format?Math.max(Math.min(12,a.width+2),4):a.width},enable:function(){if(!this.always_disabled){if(this.add_row_button&&(this.add_row_button.disabled=!1),this.remove_all_rows_button&&(this.remove_all_rows_button.disabled=!1),this.delete_last_row_button&&(this.delete_last_row_button.disabled=!1),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].enable(),this.rows[a].moveup_button&&(this.rows[a].moveup_button.disabled=!1),this.rows[a].movedown_button&&(this.rows[a].movedown_button.disabled=!1),this.rows[a].delete_button&&(this.rows[a].delete_button.disabled=!1);this._super()}},disable:function(a){if(a&&(this.always_disabled=!0),this.add_row_button&&(this.add_row_button.disabled=!0),this.remove_all_rows_button&&(this.remove_all_rows_button.disabled=!0),this.delete_last_row_button&&(this.delete_last_row_button.disabled=!0),this.rows)for(var b=0;b<this.rows.length;b++)this.rows[b].disable(a),this.rows[b].moveup_button&&(this.rows[b].moveup_button.disabled=!0),this.rows[b].movedown_button&&(this.rows[b].movedown_button.disabled=!0),this.rows[b].delete_button&&(this.rows[b].delete_button.disabled=!0);this._super()},preBuild:function(){this._super(),this.rows=[],this.row_cache=[],this.hide_delete_buttons=this.options.disable_array_delete||this.jsoneditor.options.disable_array_delete,this.hide_delete_all_rows_buttons=this.hide_delete_buttons||this.options.disable_array_delete_all_rows||this.jsoneditor.options.disable_array_delete_all_rows,this.hide_delete_last_row_buttons=this.hide_delete_buttons||this.options.disable_array_delete_last_row||this.jsoneditor.options.disable_array_delete_last_row,this.hide_move_buttons=this.options.disable_array_reorder||this.jsoneditor.options.disable_array_reorder,this.hide_add_button=this.options.disable_array_add||this.jsoneditor.options.disable_array_add,this.show_copy_button=this.options.enable_array_copy||this.jsoneditor.options.enable_array_copy,this.array_controls_top=this.options.array_controls_top||this.jsoneditor.options.array_controls_top},build:function(){this.options.compact?(this.panel=this.theme.getIndentedPanel(),this.container.appendChild(this.panel),this.title_controls=this.theme.getHeaderButtonHolder(),this.panel.appendChild(this.title_controls),this.controls=this.theme.getButtonHolder(),this.panel.appendChild(this.controls),this.row_holder=document.createElement("div"),this.panel.appendChild(this.row_holder)):(this.header=document.createElement("span"),this.header.textContent=this.getTitle(),this.title=this.theme.getHeader(this.header),this.container.appendChild(this.title),this.title_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description),this.container.appendChild(this.description)),this.error_holder=document.createElement("div"),this.container.appendChild(this.error_holder),"tabs-top"===this.schema.format?(this.controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.controls),this.tabs_holder=this.theme.getTopTabHolder(this.getValidId(this.getItemTitle())),this.container.appendChild(this.tabs_holder),this.row_holder=this.theme.getTopTabContentHolder(this.tabs_holder),this.active_tab=null):"tabs"===this.schema.format?(this.controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.controls),this.tabs_holder=this.theme.getTabHolder(this.getValidId(this.getItemTitle())),this.container.appendChild(this.tabs_holder),this.row_holder=this.theme.getTabContentHolder(this.tabs_holder),this.active_tab=null):(this.panel=this.theme.getIndentedPanel(),this.container.appendChild(this.panel),this.row_holder=document.createElement("div"),this.panel.appendChild(this.row_holder),this.controls=this.theme.getButtonHolder(),this.array_controls_top?this.title.appendChild(this.controls):this.panel.appendChild(this.controls))),this.addControls()},onChildEditorChange:function(a){this.refreshValue(),this.refreshTabs(!0),this._super(a)},getItemTitle:function(){if(!this.item_title)if(this.schema.items&&!Array.isArray(this.schema.items)){var a=this.jsoneditor.expandRefs(this.schema.items);this.item_title=a.title||"item"}else this.item_title="item";return this.item_title},getItemSchema:function(a){return Array.isArray(this.schema.items)?a>=this.schema.items.length?this.schema.additionalItems===!0?{}:this.schema.additionalItems?e({},this.schema.additionalItems):void 0:e({},this.schema.items[a]):this.schema.items?e({},this.schema.items):{}},getItemInfo:function(a){var b=this.getItemSchema(a);this.item_info=this.item_info||{};var c=JSON.stringify(b);return"undefined"!=typeof this.item_info[c]?this.item_info[c]:(b=this.jsoneditor.expandRefs(b),this.item_info[c]={title:b.title||"item","default":b["default"],width:12,child_editors:b.properties||b.items},this.item_info[c])},getElementEditor:function(a){var b=this.getItemInfo(a),c=this.getItemSchema(a);c=this.jsoneditor.expandRefs(c),c.title=b.title+" "+(a+1);var d,e=this.jsoneditor.getEditorClass(c);this.tabs_holder?(d="tabs-top"===this.schema.format?this.theme.getTopTabContent():this.theme.getTabContent(),d.id=this.path+"."+a):d=b.child_editors?this.theme.getChildEditorHolder():this.theme.getIndentedPanel(),this.row_holder.appendChild(d);var f=this.jsoneditor.createEditor(e,{jsoneditor:this.jsoneditor,schema:c,container:d,path:this.path+"."+a,parent:this,required:!0});return f.preBuild(),f.build(),f.postBuild(),f.title_controls||(f.array_controls=this.theme.getButtonHolder(),d.appendChild(f.array_controls)),f},destroy:function(){this.empty(!0),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.row_holder&&this.row_holder.parentNode&&this.row_holder.parentNode.removeChild(this.row_holder),this.controls&&this.controls.parentNode&&this.controls.parentNode.removeChild(this.controls),this.panel&&this.panel.parentNode&&this.panel.parentNode.removeChild(this.panel),this.rows=this.row_cache=this.title=this.description=this.row_holder=this.panel=this.controls=null,this._super()},empty:function(a){if(this.rows){var b=this;f(this.rows,function(c,d){a&&(d.tab&&d.tab.parentNode&&d.tab.parentNode.removeChild(d.tab),b.destroyRow(d,!0),b.row_cache[c]=null),b.rows[c]=null}),b.rows=[],a&&(b.row_cache=[])}},destroyRow:function(a,b){var c=a.container;b?(a.destroy(),c.parentNode&&c.parentNode.removeChild(c),a.tab&&a.tab.parentNode&&a.tab.parentNode.removeChild(a.tab)):(a.tab&&(a.tab.style.display="none"),c.style.display="none",a.unregister())},getMax:function(){return Array.isArray(this.schema.items)&&this.schema.additionalItems===!1?Math.min(this.schema.items.length,this.schema.maxItems||1/0):this.schema.maxItems||1/0},refreshTabs:function(a){var b=this;f(this.rows,function(c,d){d.tab&&(a?d.tab_text.textContent=d.getHeaderText():d.tab===b.active_tab?b.theme.markTabActive(d):b.theme.markTabInactive(d))})},setValue:function(a,b){a=a||[],Array.isArray(a)||(a=[a]);var c=JSON.stringify(a);if(c!==this.serialized){if(this.schema.minItems)for(;a.length<this.schema.minItems;)a.push(this.getItemInfo(a.length)["default"]);this.getMax()&&a.length>this.getMax()&&(a=a.slice(0,this.getMax()));var d=this;f(a,function(a,c){d.rows[a]?d.rows[a].setValue(c,b):d.row_cache[a]?(d.rows[a]=d.row_cache[a],d.rows[a].setValue(c,b),d.rows[a].container.style.display="",d.rows[a].tab&&(d.rows[a].tab.style.display=""),d.rows[a].register()):d.addRow(c,b)});for(var e=a.length;e<d.rows.length;e++)d.destroyRow(d.rows[e]),d.rows[e]=null;d.rows=d.rows.slice(0,a.length);var g=null;f(d.rows,function(a,b){if(b.tab===d.active_tab)return g=b.tab,!1}),!g&&d.rows.length&&(g=d.rows[0].tab),d.active_tab=g,d.refreshValue(b),d.refreshTabs(!0),d.refreshTabs(),d.onChange()}},refreshValue:function(a){var b=this,c=this.value?this.value.length:0;if(this.value=[],f(this.rows,function(a,c){b.value[a]=c.getValue()}),c!==this.value.length||a){var d=this.schema.minItems&&this.schema.minItems>=this.rows.length;f(this.rows,function(a,c){c.movedown_button&&(a===b.rows.length-1?c.movedown_button.style.display="none":c.movedown_button.style.display=""),c.delete_button&&(d?c.delete_button.style.display="none":c.delete_button.style.display=""),b.value[a]=c.getValue()});var e=!1;this.value.length?1===this.value.length?(this.remove_all_rows_button.style.display="none",d||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",e=!0)):(d||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",e=!0),d||this.hide_delete_all_rows_buttons?this.remove_all_rows_button.style.display="none":(this.remove_all_rows_button.style.display="",e=!0)):(this.delete_last_row_button.style.display="none",this.remove_all_rows_button.style.display="none"),this.getMax()&&this.getMax()<=this.rows.length||this.hide_add_button?this.add_row_button.style.display="none":(this.add_row_button.style.display="",e=!0),!this.collapsed&&e?this.controls.style.display="inline-block":this.controls.style.display="none"}},addRow:function(a,b){var c=this,d=this.rows.length;c.rows[d]=this.getElementEditor(d),c.row_cache[d]=c.rows[d],c.tabs_holder&&(c.rows[d].tab_text=document.createElement("span"),c.rows[d].tab_text.textContent=c.rows[d].getHeaderText(),"tabs-top"===c.schema.format?(c.rows[d].tab=c.theme.getTopTab(c.rows[d].tab_text,this.getValidId(c.rows[d].path)),c.theme.addTopTab(c.tabs_holder,c.rows[d].tab)):(c.rows[d].tab=c.theme.getTab(c.rows[d].tab_text,this.getValidId(c.rows[d].path)),c.theme.addTab(c.tabs_holder,c.rows[d].tab)),c.rows[d].tab.addEventListener("click",function(a){c.active_tab=c.rows[d].tab,c.refreshTabs(),a.preventDefault(),a.stopPropagation()}));var e=c.rows[d].title_controls||c.rows[d].array_controls;c.hide_delete_buttons||(c.rows[d].delete_button=this.getButton(c.getItemTitle(),"delete",this.translate("button_delete_row_title",[c.getItemTitle()])),c.rows[d].delete_button.classList.add("delete","json-editor-btntype-delete"),c.rows[d].delete_button.setAttribute("data-i",d),c.rows[d].delete_button.addEventListener("click",function(a){if(a.preventDefault(),a.stopPropagation(),!c.askConfirmation())return!1;var b=1*this.getAttribute("data-i"),d=c.getValue(),e=[],g=null;f(d,function(a,c){a!==b&&e.push(c)}),c.empty(!0),c.setValue(e),c.rows[b]?g=c.rows[b].tab:c.rows[b-1]&&(g=c.rows[b-1].tab),g&&(c.active_tab=g,c.refreshTabs()),c.onChange(!0),c.jsoneditor.trigger("deleteRow")}),e&&e.appendChild(c.rows[d].delete_button)),c.show_copy_button&&(c.rows[d].copy_button=this.getButton(c.getItemTitle(),"copy","Copy "+c.getItemTitle()),c.rows[d].copy_button.classList.add("copy","json-editor-btntype-copy"),c.rows[d].copy_button.setAttribute("data-i",d),c.rows[d].copy_button.addEventListener("click",function(a){var b=c.getValue();a.preventDefault(),a.stopPropagation();var d=1*this.getAttribute("data-i");f(b,function(a,c){a===d&&b.push(c)}),c.setValue(b),c.refreshValue(!0),c.onChange(!0)}),e.appendChild(c.rows[d].copy_button)),d&&!c.hide_move_buttons&&(c.rows[d].moveup_button=this.getButton("","moveup",this.translate("button_move_up_title")),c.rows[d].moveup_button.classList.add("moveup","json-editor-btntype-move"),c.rows[d].moveup_button.setAttribute("data-i",d),c.rows[d].moveup_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var b=1*this.getAttribute("data-i");if(!(b<=0)){var d=c.getValue(),e=d[b-1];d[b-1]=d[b],d[b]=e,c.setValue(d),c.active_tab=c.rows[b-1].tab,c.refreshTabs(),c.onChange(!0),c.jsoneditor.trigger("moveRow")}}),e&&e.appendChild(c.rows[d].moveup_button)),c.hide_move_buttons||(c.rows[d].movedown_button=this.getButton("","movedown",this.translate("button_move_down_title")),c.rows[d].movedown_button.classList.add("movedown","json-editor-btntype-move"),c.rows[d].movedown_button.setAttribute("data-i",d),c.rows[d].movedown_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var b=1*this.getAttribute("data-i"),d=c.getValue();if(!(b>=d.length-1)){var e=d[b+1];d[b+1]=d[b],d[b]=e,c.setValue(d),c.active_tab=c.rows[b+1].tab,c.refreshTabs(),c.onChange(!0),c.jsoneditor.trigger("moveRow")}}),e&&e.appendChild(c.rows[d].movedown_button)),a&&c.rows[d].setValue(a,b),c.refreshTabs()},addControls:function(){var a=this;this.collapsed=!1,this.toggle_button=this.getButton("","collapse",this.translate("button_collapse")),this.toggle_button.classList.add("json-editor-btntype-toggle"),this.title_controls.appendChild(this.toggle_button);var b=a.row_holder.style.display,c=a.controls.style.display;this.toggle_button.addEventListener("click",function(d){d.preventDefault(),d.stopPropagation(),a.collapsed?(a.collapsed=!1,a.panel&&(a.panel.style.display=""),a.row_holder.style.display=b,a.tabs_holder&&(a.tabs_holder.style.display=""),a.controls.style.display=c,a.setButtonText(this,"","collapse",a.translate("button_collapse"))):(a.collapsed=!0,a.row_holder.style.display="none",a.tabs_holder&&(a.tabs_holder.style.display="none"),a.controls.style.display="none",a.panel&&(a.panel.style.display="none"),a.setButtonText(this,"","expand",a.translate("button_expand")))}),this.options.collapsed&&g(this.toggle_button,"click"),this.schema.options&&"undefined"!=typeof this.schema.options.disable_collapse?this.schema.options.disable_collapse&&(this.toggle_button.style.display="none"):this.jsoneditor.options.disable_collapse&&(this.toggle_button.style.display="none"),this.add_row_button=this.getButton(this.getItemTitle(),"add",this.translate("button_add_row_title",[this.getItemTitle()])),this.add_row_button.classList.add("json-editor-btntype-add"),this.add_row_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation();var c=a.rows.length;a.row_cache[c]?(a.rows[c]=a.row_cache[c],a.rows[c].setValue(a.rows[c].getDefault(),!0),a.rows[c].container.style.display="",a.rows[c].tab&&(a.rows[c].tab.style.display=""),a.rows[c].register()):a.addRow(),a.active_tab=a.rows[c].tab,a.refreshTabs(),a.refreshValue(),a.onChange(!0),a.jsoneditor.trigger("addRow")}),a.controls.appendChild(this.add_row_button),this.delete_last_row_button=this.getButton(this.translate("button_delete_last",[this.getItemTitle()]),"delete",this.translate("button_delete_last_title",[this.getItemTitle()])),this.delete_last_row_button.classList.add("json-editor-btntype-deletelast"),this.delete_last_row_button.addEventListener("click",function(b){if(b.preventDefault(),b.stopPropagation(),!a.askConfirmation())return!1;var c=a.getValue(),d=null;c.pop(),a.empty(!0),a.setValue(c),a.rows[a.rows.length-1]&&(d=a.rows[a.rows.length-1].tab),d&&(a.active_tab=d,a.refreshTabs()),a.onChange(!0),a.jsoneditor.trigger("deleteRow")}),a.controls.appendChild(this.delete_last_row_button),this.remove_all_rows_button=this.getButton(this.translate("button_delete_all"),"delete",this.translate("button_delete_all_title")),this.remove_all_rows_button.classList.add("json-editor-btntype-deleteall"),this.remove_all_rows_button.addEventListener("click",function(b){return b.preventDefault(),b.stopPropagation(),!!a.askConfirmation()&&(a.empty(!0),a.setValue([]),a.onChange(!0),void a.jsoneditor.trigger("deleteAllRows"))}),a.controls.appendChild(this.remove_all_rows_button),a.tabs&&(this.add_row_button.style.width="100%",this.add_row_button.style.textAlign="left",this.add_row_button.style.marginBottom="3px",this.delete_last_row_button.style.width="100%",this.delete_last_row_button.style.textAlign="left",this.delete_last_row_button.style.marginBottom="3px",this.remove_all_rows_button.style.width="100%",this.remove_all_rows_button.style.textAlign="left",this.remove_all_rows_button.style.marginBottom="3px")},showValidationErrors:function(a){var b=this,c=[],d=[];if(f(a,function(a,e){e.path===b.path?c.push(e):d.push(e)}),this.error_holder)if(c.length){this.error_holder.innerHTML="",this.error_holder.style.display="",f(c,function(a,c){b.error_holder.appendChild(b.theme.getErrorMessage(c.message))})}else this.error_holder.style.display="none";f(this.rows,function(a,b){b.showValidationErrors(d)})}}),h.defaults.editors.table=h.defaults.editors.array.extend({register:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].register()},unregister:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].unregister()},getNumColumns:function(){return Math.max(Math.min(12,this.width),3)},preBuild:function(){var a=this.jsoneditor.expandRefs(this.schema.items||{});this.item_title=a.title||"row",this.item_default=a["default"]||null,this.item_has_child_editors=a.properties||a.items,this.width=12,this._super()},build:function(){var a=this;this.table=this.theme.getTable(),this.container.appendChild(this.table),this.thead=this.theme.getTableHead(),this.table.appendChild(this.thead),this.header_row=this.theme.getTableRow(),this.thead.appendChild(this.header_row),this.row_holder=this.theme.getTableBody(),this.table.appendChild(this.row_holder);var b=this.getElementEditor(0,!0);if(this.item_default=b.getDefault(),this.width=b.getNumColumns()+2,this.options.compact?(this.panel=document.createElement("div"),this.container.appendChild(this.panel)):(this.title=this.theme.getHeader(this.getTitle()),this.container.appendChild(this.title),this.title_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description),this.container.appendChild(this.description)),this.panel=this.theme.getIndentedPanel(),this.container.appendChild(this.panel),this.error_holder=document.createElement("div"),this.panel.appendChild(this.error_holder)),this.panel.appendChild(this.table),this.controls=this.theme.getButtonHolder(),this.panel.appendChild(this.controls),this.item_has_child_editors)for(var c=b.getChildEditors(),d=b.property_order||Object.keys(c),e=0;e<d.length;e++){var f=a.theme.getTableHeaderCell(c[d[e]].getTitle());c[d[e]].options.hidden&&(f.style.display="none"),a.header_row.appendChild(f)}else a.header_row.appendChild(a.theme.getTableHeaderCell(this.item_title));b.destroy(),this.row_holder.innerHTML="",this.controls_header_cell=a.theme.getTableHeaderCell(" "),a.header_row.appendChild(this.controls_header_cell),this.addControls()},onChildEditorChange:function(a){this.refreshValue(),this._super()},getItemDefault:function(){return e({},{"default":this.item_default})["default"]},getItemTitle:function(){return this.item_title},getElementEditor:function(a,b){var c=e({},this.schema.items),d=this.jsoneditor.getEditorClass(c,this.jsoneditor),f=this.row_holder.appendChild(this.theme.getTableRow()),g=f;this.item_has_child_editors||(g=this.theme.getTableCell(),f.appendChild(g));var h=this.jsoneditor.createEditor(d,{jsoneditor:this.jsoneditor,schema:c,container:g,path:this.path+"."+a,parent:this,compact:!0,table_row:!0});return h.preBuild(),b||(h.build(),h.postBuild(),h.controls_cell=f.appendChild(this.theme.getTableCell()),h.row=f,h.table_controls=this.theme.getButtonHolder(),h.controls_cell.appendChild(h.table_controls),h.table_controls.style.margin=0,h.table_controls.style.padding=0),h},destroy:function(){this.innerHTML="",this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.row_holder&&this.row_holder.parentNode&&this.row_holder.parentNode.removeChild(this.row_holder),this.table&&this.table.parentNode&&this.table.parentNode.removeChild(this.table),this.panel&&this.panel.parentNode&&this.panel.parentNode.removeChild(this.panel),this.rows=this.title=this.description=this.row_holder=this.table=this.panel=null,this._super()},setValue:function(a,b){if(a=a||[],this.schema.minItems)for(;a.length<this.schema.minItems;)a.push(this.getItemDefault());this.schema.maxItems&&a.length>this.schema.maxItems&&(a=a.slice(0,this.schema.maxItems));var c=JSON.stringify(a);if(c!==this.serialized){var d=!1,e=this;f(a,function(a,b){e.rows[a]?e.rows[a].setValue(b):(e.addRow(b),d=!0)});for(var g=a.length;g<e.rows.length;g++){var h=e.rows[g].container;e.item_has_child_editors||e.rows[g].row.parentNode.removeChild(e.rows[g].row),e.rows[g].destroy(),h.parentNode&&h.parentNode.removeChild(h),e.rows[g]=null,d=!0}e.rows=e.rows.slice(0,a.length),e.refreshValue(),(d||b)&&e.refreshRowButtons(),e.onChange()}},refreshRowButtons:function(){var a=this,b=this.schema.minItems&&this.schema.minItems>=this.rows.length,c=!1;f(this.rows,function(d,e){e.movedown_button&&(d===a.rows.length-1?e.movedown_button.style.display="none":(c=!0,e.movedown_button.style.display="")),e.delete_button&&(b?e.delete_button.style.display="none":(c=!0,e.delete_button.style.display="")),e.moveup_button&&(c=!0)}),f(this.rows,function(a,b){c?b.controls_cell.style.display="":b.controls_cell.style.display="none"}),c?this.controls_header_cell.style.display="":this.controls_header_cell.style.display="none";var d=!1;this.value.length?1===this.value.length?(this.table.style.display="",this.remove_all_rows_button.style.display="none",b||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",d=!0)):(this.table.style.display="",b||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",d=!0),b||this.hide_delete_all_rows_buttons?this.remove_all_rows_button.style.display="none":(this.remove_all_rows_button.style.display="",d=!0)):(this.delete_last_row_button.style.display="none",this.remove_all_rows_button.style.display="none",this.table.style.display="none"),this.schema.maxItems&&this.schema.maxItems<=this.rows.length||this.hide_add_button?this.add_row_button.style.display="none":(this.add_row_button.style.display="",d=!0),d?this.controls.style.display="":this.controls.style.display="none"},refreshValue:function(){var a=this;this.value=[],f(this.rows,function(b,c){a.value[b]=c.getValue()}),this.serialized=JSON.stringify(this.value)},addRow:function(a){var b=this,c=this.rows.length;b.rows[c]=this.getElementEditor(c);var d=b.rows[c].table_controls;this.hide_delete_buttons||(b.rows[c].delete_button=this.getButton("","delete",this.translate("button_delete_row_title_short")),b.rows[c].delete_button.classList.add("delete","json-editor-btntype-delete"),b.rows[c].delete_button.setAttribute("data-i",c),b.rows[c].delete_button.addEventListener("click",function(a){if(a.preventDefault(),a.stopPropagation(),!b.askConfirmation())return!1;var c=1*this.getAttribute("data-i"),d=b.getValue(),e=[];f(d,function(a,b){a!==c&&e.push(b)}),b.setValue(e),b.onChange(!0)}),d.appendChild(b.rows[c].delete_button)),c&&!this.hide_move_buttons&&(b.rows[c].moveup_button=this.getButton("","moveup",this.translate("button_move_up_title")),b.rows[c].moveup_button.classList.add("moveup","json-editor-btntype-move"),b.rows[c].moveup_button.setAttribute("data-i",c),b.rows[c].moveup_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var c=1*this.getAttribute("data-i");if(!(c<=0)){var d=b.getValue(),e=d[c-1];d[c-1]=d[c],d[c]=e,b.setValue(d),b.onChange(!0)}}),d.appendChild(b.rows[c].moveup_button)),this.hide_move_buttons||(b.rows[c].movedown_button=this.getButton("","movedown",this.translate("button_move_down_title")),b.rows[c].movedown_button.classList.add("movedown","json-editor-btntype-move"),b.rows[c].movedown_button.setAttribute("data-i",c),b.rows[c].movedown_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var c=1*this.getAttribute("data-i"),d=b.getValue();if(!(c>=d.length-1)){var e=d[c+1];d[c+1]=d[c],d[c]=e,b.setValue(d),b.onChange(!0)}}),d.appendChild(b.rows[c].movedown_button)),a&&b.rows[c].setValue(a)},addControls:function(){var a=this;this.collapsed=!1,this.toggle_button=this.getButton("","collapse",this.translate("button_collapse")),this.toggle_button.classList.add("json-editor-btntype-toggle"),this.title_controls&&(this.title_controls.appendChild(this.toggle_button),this.toggle_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.collapsed?(a.collapsed=!1,a.panel.style.display="",a.setButtonText(this,"","collapse",a.translate("button_collapse"))):(a.collapsed=!0,a.panel.style.display="none",a.setButtonText(this,"","expand",a.translate("button_expand")))}),this.options.collapsed&&g(this.toggle_button,"click"),this.schema.options&&"undefined"!=typeof this.schema.options.disable_collapse?this.schema.options.disable_collapse&&(this.toggle_button.style.display="none"):this.jsoneditor.options.disable_collapse&&(this.toggle_button.style.display="none")),this.add_row_button=this.getButton(this.getItemTitle(),"add",this.translate("button_add_row_title",[this.getItemTitle()])),this.add_row_button.classList.add("json-editor-btntype-add"),this.add_row_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.addRow(),a.refreshValue(),a.refreshRowButtons(),a.onChange(!0)}),a.controls.appendChild(this.add_row_button),this.delete_last_row_button=this.getButton(this.translate("button_delete_last",[this.getItemTitle()]),"delete",this.translate("button_delete_last_title",[this.getItemTitle()])),this.delete_last_row_button.classList.add("json-editor-btntype-deletelast"),this.delete_last_row_button.addEventListener("click",function(b){if(b.preventDefault(),b.stopPropagation(),!a.askConfirmation())return!1;var c=a.getValue();c.pop(),a.setValue(c),a.onChange(!0)}),a.controls.appendChild(this.delete_last_row_button),this.remove_all_rows_button=this.getButton(this.translate("button_delete_all"),"delete",this.translate("button_delete_all_title")),
          +
          this.remove_all_rows_button.classList.add("json-editor-btntype-deleteall"),this.remove_all_rows_button.addEventListener("click",function(b){return b.preventDefault(),b.stopPropagation(),!!a.askConfirmation()&&(a.setValue([]),void a.onChange(!0))}),a.controls.appendChild(this.remove_all_rows_button)}}),h.defaults.editors.multiple=h.AbstractEditor.extend({register:function(){if(this.editors){for(var a=0;a<this.editors.length;a++)this.editors[a]&&this.editors[a].unregister();this.editors[this.type]&&this.editors[this.type].register()}this._super()},unregister:function(){if(this._super(),this.editors)for(var a=0;a<this.editors.length;a++)this.editors[a]&&this.editors[a].unregister()},getNumColumns:function(){return this.editors[this.type]?Math.max(this.editors[this.type].getNumColumns(),4):4},enable:function(){if(!this.always_disabled){if(this.editors)for(var a=0;a<this.editors.length;a++)this.editors[a]&&this.editors[a].enable();this.switcher.disabled=!1,this._super()}},disable:function(a){if(a&&(this.always_disabled=!0),this.editors)for(var b=0;b<this.editors.length;b++)this.editors[b]&&this.editors[b].disable(a);this.switcher.disabled=!0,this._super()},switchEditor:function(a){var b=this;this.editors[a]||this.buildChildEditor(a);var c=b.getValue();b.type=a,b.register(),f(b.editors,function(a,d){d&&(b.type===a?(b.keep_values&&d.setValue(c,!0),d.container.style.display=""):d.container.style.display="none")}),b.refreshValue(),b.refreshHeaderText()},buildChildEditor:function(a){var b=this,c=this.types[a],d=b.theme.getChildEditorHolder();b.editor_holder.appendChild(d);var f;"string"==typeof c?(f=e({},b.schema),f.type=c):(f=e({},b.schema,c),f=b.jsoneditor.expandRefs(f),c&&c.required&&Array.isArray(c.required)&&b.schema.required&&Array.isArray(b.schema.required)&&(f.required=b.schema.required.concat(c.required)));var g=b.jsoneditor.getEditorClass(f);b.editors[a]=b.jsoneditor.createEditor(g,{jsoneditor:b.jsoneditor,schema:f,container:d,path:b.path,parent:b,required:!0}),b.editors[a].preBuild(),b.editors[a].build(),b.editors[a].postBuild(),b.editors[a].header&&(b.editors[a].header.style.display="none"),b.editors[a].option=b.switcher_options[a],d.addEventListener("change_header_text",function(){b.refreshHeaderText()}),a!==b.type&&(d.style.display="none")},preBuild:function(){if(this.types=[],this.type=0,this.editors=[],this.validators=[],this.keep_values=!0,"undefined"!=typeof this.jsoneditor.options.keep_oneof_values&&(this.keep_values=this.jsoneditor.options.keep_oneof_values),"undefined"!=typeof this.options.keep_oneof_values&&(this.keep_values=this.options.keep_oneof_values),this.schema.oneOf)this.oneOf=!0,this.types=this.schema.oneOf,delete this.schema.oneOf;else if(this.schema.anyOf)this.anyOf=!0,this.types=this.schema.anyOf,delete this.schema.anyOf;else{if(this.schema.type&&"any"!==this.schema.type)Array.isArray(this.schema.type)?this.types=this.schema.type:this.types=[this.schema.type];else if(this.types=["string","number","integer","boolean","object","array","null"],this.schema.disallow){var a=this.schema.disallow;"object"==typeof a&&Array.isArray(a)||(a=[a]);var b=[];f(this.types,function(c,d){a.indexOf(d)===-1&&b.push(d)}),this.types=b}delete this.schema.type}this.display_text=this.getDisplayText(this.types)},build:function(){var a=this,b=this.container;this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.container.appendChild(this.header),this.switcher=this.theme.getSwitcher(this.display_text),b.appendChild(this.switcher),this.switcher.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.switchEditor(a.display_text.indexOf(this.value)),a.onChange(!0)}),this.editor_holder=document.createElement("div"),b.appendChild(this.editor_holder);var c={};a.jsoneditor.options.custom_validators&&(c.custom_validators=a.jsoneditor.options.custom_validators),this.switcher_options=this.theme.getSwitcherOptions(this.switcher),f(this.types,function(b,d){a.editors[b]=!1;var f;"string"==typeof d?(f=e({},a.schema),f.type=d):(f=e({},a.schema,d),d.required&&Array.isArray(d.required)&&a.schema.required&&Array.isArray(a.schema.required)&&(f.required=a.schema.required.concat(d.required))),a.validators[b]=new h.Validator(a.jsoneditor,f,c)}),this.switchEditor(0)},onChildEditorChange:function(a){this.editors[this.type]&&(this.refreshValue(),this.refreshHeaderText()),this._super()},refreshHeaderText:function(){var a=this.getDisplayText(this.types);f(this.switcher_options,function(b,c){c.textContent=a[b]})},refreshValue:function(){this.value=this.editors[this.type].getValue()},setValue:function(a,b){var c=this,d=this.type;f(this.validators,function(b,d){if(!d.validate(a).length)return c.type=b,c.switcher.value=c.display_text[b],!1});var e=this.type!=d;e&&this.switchEditor(this.type),this.editors[this.type].setValue(a,b),this.refreshValue(),c.onChange(e)},destroy:function(){f(this.editors,function(a,b){b&&b.destroy()}),this.editor_holder&&this.editor_holder.parentNode&&this.editor_holder.parentNode.removeChild(this.editor_holder),this.switcher&&this.switcher.parentNode&&this.switcher.parentNode.removeChild(this.switcher),this._super()},showValidationErrors:function(a){var b=this;if(this.oneOf||this.anyOf){var c=this.oneOf?"oneOf":"anyOf";f(this.editors,function(d,g){if(g){var h=b.path+"."+c+"["+d+"]",i=[];f(a,function(a,c){if(c.path.substr(0,h.length)===h){var d=e({},c);d.path=b.path+d.path.substr(h.length),i.push(d)}}),g.showValidationErrors(i)}})}else f(this.editors,function(b,c){c&&c.showValidationErrors(a)})}}),h.defaults.editors["enum"]=h.AbstractEditor.extend({getNumColumns:function(){return 4},build:function(){this.container;this.title=this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.container.appendChild(this.title),this.options.enum_titles=this.options.enum_titles||[],this["enum"]=this.schema["enum"],this.selected=0,this.select_options=[],this.html_values=[];for(var a=this,b=0;b<this["enum"].length;b++)this.select_options[b]=this.options.enum_titles[b]||"Value "+(b+1),this.html_values[b]=this.getHTML(this["enum"][b]);this.switcher=this.theme.getSwitcher(this.select_options),this.container.appendChild(this.switcher),this.display_area=this.theme.getIndentedPanel(),this.container.appendChild(this.display_area),this.options.hide_display&&(this.display_area.style.display="none"),this.switcher.addEventListener("change",function(){a.selected=a.select_options.indexOf(this.value),a.value=a["enum"][a.selected],a.refreshValue(),a.onChange(!0)}),this.value=this["enum"][0],this.refreshValue(),1===this["enum"].length&&(this.switcher.style.display="none")},refreshValue:function(){var a=this;a.selected=-1;var b=JSON.stringify(this.value);return f(this["enum"],function(c,d){if(b===JSON.stringify(d))return a.selected=c,!1}),a.selected<0?void a.setValue(a["enum"][0]):(this.switcher.value=this.select_options[this.selected],void(this.display_area.innerHTML=this.html_values[this.selected]))},enable:function(){this.always_disabled||(this.switcher.disabled=!1,this._super())},disable:function(a){a&&(this.always_disabled=!0),this.switcher.disabled=!0,this._super()},getHTML:function(a){var b=this;if(null===a)return"<em>null</em>";if("object"==typeof a){var c="";return f(a,function(d,e){var f=b.getHTML(e);Array.isArray(a)||(f="<div><em>"+d+"</em>: "+f+"</div>"),c+="<li>"+f+"</li>"}),c=Array.isArray(a)?"<ol>"+c+"</ol>":"<ul style='margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;'>"+c+"</ul>"}return"boolean"==typeof a?a?"true":"false":"string"==typeof a?a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"):a},setValue:function(a){this.value!==a&&(this.value=a,this.refreshValue(),this.onChange())},destroy:function(){this.display_area&&this.display_area.parentNode&&this.display_area.parentNode.removeChild(this.display_area),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.switcher&&this.switcher.parentNode&&this.switcher.parentNode.removeChild(this.switcher),this._super()}}),h.defaults.editors.select=h.AbstractEditor.extend({setValue:function(a,b){a=this.typecast(a||"");var c=a;this.enum_values.indexOf(c)<0&&(c=this.enum_values[0]),this.value!==c&&(b?this.is_dirty=!1:"change"===this.jsoneditor.options.show_errors&&(this.is_dirty=!0),this.input.value=this.enum_options[this.enum_values.indexOf(c)],this.select2&&(this.select2v4?this.select2.val(this.input.value).trigger("change"):this.select2.select2("val",this.input.value)),this.value=c,this.onChange(),this.change())},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){if(!this.enum_options)return 3;for(var a=this.getTitle().length,b=0;b<this.enum_options.length;b++)a=Math.max(a,this.enum_options[b].length+4);return Math.min(12,Math.max(a/7,2))},typecast:function(a){return"boolean"===this.schema.type?!!a:"number"===this.schema.type?1*a:"integer"===this.schema.type?Math.floor(1*a):""+a},getValue:function(){return this.dependenciesFulfilled?this.typecast(this.value):b},preBuild:function(){var a=this;this.input_type="select",this.enum_options=[],this.enum_values=[],this.enum_display=[];var c;if(this.schema["enum"]){var d=this.schema.options&&this.schema.options.enum_titles||[];f(this.schema["enum"],function(b,c){a.enum_options[b]=""+c,a.enum_display[b]=""+(d[b]||c),a.enum_values[b]=a.typecast(c)}),this.isRequired()||(a.enum_display.unshift(" "),a.enum_options.unshift("undefined"),a.enum_values.unshift(b))}else if("boolean"===this.schema.type)a.enum_display=this.schema.options&&this.schema.options.enum_titles||["true","false"],a.enum_options=["1",""],a.enum_values=[!0,!1],this.isRequired()||(a.enum_display.unshift(" "),a.enum_options.unshift("undefined"),a.enum_values.unshift(b));else{if(!this.schema.enumSource)throw"'select' editor requires the enum property to be set.";if(this.enumSource=[],this.enum_display=[],this.enum_options=[],this.enum_values=[],Array.isArray(this.schema.enumSource))for(c=0;c<this.schema.enumSource.length;c++)"string"==typeof this.schema.enumSource[c]?this.enumSource[c]={source:this.schema.enumSource[c]}:Array.isArray(this.schema.enumSource[c])?this.enumSource[c]=this.schema.enumSource[c]:this.enumSource[c]=e({},this.schema.enumSource[c]);else this.schema.enumValue?this.enumSource=[{source:this.schema.enumSource,value:this.schema.enumValue}]:this.enumSource=[{source:this.schema.enumSource}];for(c=0;c<this.enumSource.length;c++)this.enumSource[c].value&&(this.enumSource[c].value=this.jsoneditor.compileTemplate(this.enumSource[c].value,this.template_engine)),this.enumSource[c].title&&(this.enumSource[c].title=this.jsoneditor.compileTemplate(this.enumSource[c].title,this.template_engine)),this.enumSource[c].filter&&(this.enumSource[c].filter=this.jsoneditor.compileTemplate(this.enumSource[c].filter,this.template_engine))}},build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.input=this.theme.getSelectInput(this.enum_options),this.theme.setSelectOptions(this.input,this.enum_options,this.enum_display),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.setInputAttributes([]),this.input.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.onInputChange()}),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),this.container.appendChild(this.control),this.value=this.enum_values[0]},onInputChange:function(){var a,b=this.typecast(this.input.value);a=this.enum_values.indexOf(b)===-1?this.enum_values[0]:this.enum_values[this.enum_values.indexOf(b)],a!==this.value&&(this.is_dirty=!0,this.value=a,this.onChange(!0))},setupSelect2:function(){if(window.jQuery&&window.jQuery.fn&&window.jQuery.fn.select2&&(this.enum_options.length>2||this.enum_options.length&&this.enumSource)){var a=e({},h.plugins.select2);this.schema.options&&this.schema.options.select2_options&&(a=e(a,this.schema.options.select2_options)),this.select2=window.jQuery(this.input).select2(a),this.select2v4=this.select2.select2.hasOwnProperty("amd");var b=this;this.select2.on("select2-blur",function(){b.select2v4?b.input.value=b.select2.val():b.input.value=b.select2.select2("val"),b.onInputChange()}),this.select2.on("change",function(){b.select2v4?b.input.value=b.select2.val():b.input.value=b.select2.select2("val"),b.onInputChange()})}else this.select2=null},postBuild:function(){this._super(),this.theme.afterInputReady(this.input),this.setupSelect2()},onWatchedFieldChange:function(){var a,b;if(this.enumSource){a=this.getWatchedFieldValues();for(var c=[],d=[],e=0;e<this.enumSource.length;e++)if(Array.isArray(this.enumSource[e]))c=c.concat(this.enumSource[e]),d=d.concat(this.enumSource[e]);else{var f=[];if(f=Array.isArray(this.enumSource[e].source)?this.enumSource[e].source:a[this.enumSource[e].source]){if(this.enumSource[e].slice&&(f=Array.prototype.slice.apply(f,this.enumSource[e].slice)),this.enumSource[e].filter){var g=[];for(b=0;b<f.length;b++)this.enumSource[e].filter({i:b,item:f[b],watched:a})&&g.push(f[b]);f=g}var h=[],i=[];for(b=0;b<f.length;b++){var j=f[b];this.enumSource[e].value?i[b]=this.typecast(this.enumSource[e].value({i:b,item:j})):i[b]=f[b],this.enumSource[e].title?h[b]=this.enumSource[e].title({i:b,item:j}):h[b]=i[b]}c=c.concat(i),d=d.concat(h)}}var k=this.value;this.theme.setSelectOptions(this.input,c,d),this.enum_options=c,this.enum_display=d,this.enum_values=c,this.select2&&this.select2.select2("destroy"),c.indexOf(k)!==-1?(this.input.value=k,this.value=k):(this.input.value=c[0],this.value=this.typecast(c[0]||""),this.parent?this.parent.onChildEditorChange(this):this.jsoneditor.onChange(),this.jsoneditor.notifyWatchers(this.path)),this.setupSelect2()}this._super()},enable:function(){this.always_disabled||(this.input.disabled=!1,this.select2&&(this.select2v4?this.select2.prop("disabled",!1):this.select2.select2("enable",!0))),this._super()},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this.select2&&(this.select2v4?this.select2.prop("disabled",!0):this.select2.select2("enable",!1)),this._super()},destroy:function(){this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.select2&&(this.select2.select2("destroy"),this.select2=null),this._super()},showValidationErrors:function(a){var b=this;if("always"===this.jsoneditor.options.show_errors);else if(!this.is_dirty&&this.previous_error_setting===this.jsoneditor.options.show_errors)return;this.previous_error_setting=this.jsoneditor.options.show_errors;var c=[];f(a,function(a,d){d.path===b.path&&c.push(d.message)}),c.length?this.theme.addInputError(this.input,c.join(". ")+"."):this.theme.removeInputError(this.input)}}),h.defaults.editors.selectize=h.AbstractEditor.extend({setValue:function(a,b){a=this.typecast(a||"");var c=a;this.enum_values.indexOf(c)<0&&(c=this.enum_values[0]),this.value!==c&&(this.input.value=this.enum_options[this.enum_values.indexOf(c)],this.selectize&&this.selectize[0].selectize.addItem(c),this.value=c,this.onChange())},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){if(!this.enum_options)return 3;for(var a=this.getTitle().length,b=0;b<this.enum_options.length;b++)a=Math.max(a,this.enum_options[b].length+4);return Math.min(12,Math.max(a/7,2))},typecast:function(a){return"boolean"===this.schema.type?!!a:"number"===this.schema.type?1*a:"integer"===this.schema.type?Math.floor(1*a):""+a},getValue:function(){return this.dependenciesFulfilled?this.value:b},preBuild:function(){var a=this;this.input_type="select",this.enum_options=[],this.enum_values=[],this.enum_display=[];var b;if(this.schema["enum"]){var c=this.schema.options&&this.schema.options.enum_titles||[];f(this.schema["enum"],function(b,d){a.enum_options[b]=""+d,a.enum_display[b]=""+(c[b]||d),a.enum_values[b]=a.typecast(d)})}else if("boolean"===this.schema.type)a.enum_display=this.schema.options&&this.schema.options.enum_titles||["true","false"],a.enum_options=["1","0"],a.enum_values=[!0,!1];else{if(!this.schema.enumSource)throw"'select' editor requires the enum property to be set.";if(this.enumSource=[],this.enum_display=[],this.enum_options=[],this.enum_values=[],Array.isArray(this.schema.enumSource))for(b=0;b<this.schema.enumSource.length;b++)"string"==typeof this.schema.enumSource[b]?this.enumSource[b]={source:this.schema.enumSource[b]}:Array.isArray(this.schema.enumSource[b])?this.enumSource[b]=this.schema.enumSource[b]:this.enumSource[b]=e({},this.schema.enumSource[b]);else this.schema.enumValue?this.enumSource=[{source:this.schema.enumSource,value:this.schema.enumValue}]:this.enumSource=[{source:this.schema.enumSource}];for(b=0;b<this.enumSource.length;b++)this.enumSource[b].value&&(this.enumSource[b].value=this.jsoneditor.compileTemplate(this.enumSource[b].value,this.template_engine)),this.enumSource[b].title&&(this.enumSource[b].title=this.jsoneditor.compileTemplate(this.enumSource[b].title,this.template_engine)),this.enumSource[b].filter&&(this.enumSource[b].filter=this.jsoneditor.compileTemplate(this.enumSource[b].filter,this.template_engine))}},build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.input=this.theme.getSelectInput(this.enum_options),this.theme.setSelectOptions(this.input,this.enum_options,this.enum_display),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.input.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.onInputChange()}),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),this.container.appendChild(this.control),this.value=this.enum_values[0]},onInputChange:function(){var a=this.input.value,b=a;this.enum_options.indexOf(a)===-1&&(b=this.enum_options[0]),this.value=a,this.onChange(!0)},setupSelectize:function(){var a=this;if(window.jQuery&&window.jQuery.fn&&window.jQuery.fn.selectize&&(this.enum_options.length>=2||this.enum_options.length&&this.enumSource)){var c=e({},h.plugins.selectize);this.schema.options&&this.schema.options.selectize_options&&(c=e(c,this.schema.options.selectize_options)),this.selectize=window.jQuery(this.input).selectize(e(c,{create:c.create===b||c.create,onChange:function(){a.onInputChange()}}))}else this.selectize=null},postBuild:function(){this._super(),this.theme.afterInputReady(this.input),this.setupSelectize()},onWatchedFieldChange:function(){var a,c;if(this.enumSource){a=this.getWatchedFieldValues();for(var d=[],e=[],f=0;f<this.enumSource.length;f++)if(Array.isArray(this.enumSource[f]))d=d.concat(this.enumSource[f]),e=e.concat(this.enumSource[f]);else if(a[this.enumSource[f].source]){var g=a[this.enumSource[f].source];if(this.enumSource[f].slice&&(g=Array.prototype.slice.apply(g,this.enumSource[f].slice)),this.enumSource[f].filter){var h=[];for(c=0;c<g.length;c++)this.enumSource[f].filter({i:c,item:g[c]})&&h.push(g[c]);g=h}var i=[],j=[];for(c=0;c<g.length;c++){var k=g[c];this.enumSource[f].value?j[c]=this.enumSource[f].value({i:c,item:k}):j[c]=g[c],this.enumSource[f].title?i[c]=this.enumSource[f].title({i:c,item:k}):i[c]=j[c]}d=d.concat(j),e=e.concat(i)}var l=this.value;l!==b&&""!==l&&d.indexOf(l)===-1&&(d=d.concat(l),e=e.concat(l)),this.theme.setSelectOptions(this.input,d,e),this.enum_options=d,this.enum_display=e,this.enum_values=d,d.indexOf(l)!==-1?(this.input.value=l,this.value=l):(this.input.value=d[0],this.value=d[0]||"",this.parent?this.parent.onChildEditorChange(this):this.jsoneditor.onChange(),this.jsoneditor.notifyWatchers(this.path)),this.selectize?this.updateSelectizeOptions(d):this.setupSelectize(),this._super()}},updateSelectizeOptions:function(a){var b=this.selectize[0].selectize,c=this;b.off(),b.clearOptions();for(var d in a)b.addOption({value:a[d],text:a[d]});b.addItem(this.value),b.on("change",function(){c.onInputChange()})},enable:function(){this.always_disabled||(this.input.disabled=!1,this.selectize&&this.selectize[0].selectize.unlock(),this._super())},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this.selectize&&this.selectize[0].selectize.lock(),this._super()},destroy:function(){this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.selectize&&(this.selectize[0].selectize.destroy(),this.selectize=null),this._super()}}),h.defaults.editors.multiselect=h.AbstractEditor.extend({preBuild:function(){this._super();var a;this.select_options={},this.select_values={};var b=this.jsoneditor.expandRefs(this.schema.items||{}),c=b["enum"]||[],d=b.options?b.options.enum_titles||[]:[];for(this.option_keys=[],this.option_titles=[],a=0;a<c.length;a++)this.sanitize(c[a])===c[a]&&(this.option_keys.push(c[a]+""),this.option_titles.push((d[a]||c[a])+""),this.select_values[c[a]+""]=c[a])},build:function(){var a,b=this;if(this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),!this.schema.format&&this.option_keys.length<8||"checkbox"===this.schema.format){for(this.input_type="checkboxes",this.inputs={},this.controls={},a=0;a<this.option_keys.length;a++){this.inputs[this.option_keys[a]]=this.theme.getCheckbox(),this.select_options[this.option_keys[a]]=this.inputs[this.option_keys[a]];var c=this.theme.getCheckboxLabel(this.option_titles[a]);this.controls[this.option_keys[a]]=this.theme.getFormControl(c,this.inputs[this.option_keys[a]])}this.control=this.theme.getMultiCheckboxHolder(this.controls,this.label,this.description)}else{for(this.input_type="select",this.input=this.theme.getSelectInput(this.option_keys),this.theme.setSelectOptions(this.input,this.option_keys,this.option_titles),this.input.multiple=!0,this.input.size=Math.min(10,this.option_keys.length),a=0;a<this.option_keys.length;a++)this.select_options[this.option_keys[a]]=this.input.children[a];(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.control=this.theme.getFormControl(this.label,this.input,this.description)}this.container.appendChild(this.control),this.control.addEventListener("change",function(c){c.preventDefault(),c.stopPropagation();var d=[];for(a=0;a<b.option_keys.length;a++)(b.select_options[b.option_keys[a]].selected||b.select_options[b.option_keys[a]].checked)&&d.push(b.select_values[b.option_keys[a]]);b.updateValue(d),b.onChange(!0)})},setValue:function(a,b){var c;for(a=a||[],"object"!=typeof a?a=[a]:Array.isArray(a)||(a=[]),c=0;c<a.length;c++)"string"!=typeof a[c]&&(a[c]+="");for(c in this.select_options)this.select_options.hasOwnProperty(c)&&(this.select_options[c]["select"===this.input_type?"selected":"checked"]=a.indexOf(c)!==-1);this.updateValue(a),this.onChange()},setupSelect2:function(){if(window.jQuery&&window.jQuery.fn&&window.jQuery.fn.select2){var a=window.jQuery.extend({},h.plugins.select2);this.schema.options&&this.schema.options.select2_options&&(a=e(a,this.schema.options.select2_options)),this.select2=window.jQuery(this.input).select2(a),this.select2v4=this.select2.select2.hasOwnProperty("amd");var b=this;this.select2.on("select2-blur",function(){b.select2v4?b.value=b.select2.val():b.value=b.select2.select2("val"),b.onChange(!0)}),this.select2.on("change",function(){b.select2v4?b.value=b.select2.val():b.value=b.select2.select2("val"),b.onChange(!0)})}else this.select2=null},onInputChange:function(){this.value=this.input.value,this.onChange(!0)},postBuild:function(){this._super(),this.setupSelect2()},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){var a=this.getTitle().length;for(var b in this.select_values)this.select_values.hasOwnProperty(b)&&(a=Math.max(a,(this.select_values[b]+"").length+4));return Math.min(12,Math.max(a/7,2))},updateValue:function(a){for(var b=!1,c=[],d=0;d<a.length;d++)if(this.select_options[a[d]+""]){var e=this.sanitize(this.select_values[a[d]]);c.push(e),e!==a[d]&&(b=!0)}else b=!0;return this.value=c,this.select2&&(this.select2v4?this.select2.val(this.value).trigger("change"):this.select2.select2("val",this.value)),b},sanitize:function(a){return"number"===this.schema.items.type?1*a:"integer"===this.schema.items.type?Math.floor(1*a):""+a},enable:function(){if(!this.always_disabled){if(this.input)this.input.disabled=!1;else if(this.inputs)for(var a in this.inputs)this.inputs.hasOwnProperty(a)&&(this.inputs[a].disabled=!1);this.select2&&(this.select2v4?this.select2.prop("disabled",!1):this.select2.select2("enable",!0)),this._super()}},disable:function(a){if(a&&(this.always_disabled=!0),this.input)this.input.disabled=!0;else if(this.inputs)for(var b in this.inputs)this.inputs.hasOwnProperty(b)&&(this.inputs[b].disabled=!0);this.select2&&(this.select2v4?this.select2.prop("disabled",!0):this.select2.select2("enable",!1)),this._super()},destroy:function(){this.select2&&(this.select2.select2("destroy"),this.select2=null),this._super()}}),h.defaults.editors.base64=h.AbstractEditor.extend({getNumColumns:function(){return 4},setFileReaderListener:function(a){var b=this;a.addEventListener("load",function(a){if(b.count==b.current_item_index)b.value[b.count][b.key]=a.target.result;else{var c={};for(var d in b.parent.schema.properties)c[d]="";c[b.key]=a.target.result,b.value.splice(b.count,0,c)}b.count+=1,b.count==b.total+b.current_item_index&&b.arrayEditor.setValue(b.value)})},build:function(){var a=this;if(this.title=this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input),!this.schema.readOnly&&!this.schema.readonly){if(!window.FileReader)throw"FileReader required for base64 editor";this.uploader=this.theme.getFormInputField("file"),a.schema.options&&a.schema.options.multiple&&1==a.schema.options.multiple&&a.parent&&"object"==a.parent.schema.type&&a.parent.parent&&"array"==a.parent.parent.schema.type&&this.uploader.setAttribute("multiple",""),this.uploader.addEventListener("change",function(b){if(b.preventDefault(),b.stopPropagation(),this.files&&this.files.length)if(this.files.length>1&&a.schema.options&&a.schema.options.multiple&&1==a.schema.options.multiple&&a.parent&&"object"==a.parent.schema.type&&a.parent.parent&&"array"==a.parent.parent.schema.type){a.arrayEditor=a.jsoneditor.getEditor(a.parent.parent.path),a.value=a.arrayEditor.getValue(),a.total=this.files.length,a.current_item_index=parseInt(a.parent.key),a.count=a.current_item_index;for(var c=0;c<a.total;c++){var d=new FileReader;a.setFileReaderListener(d),d.readAsDataURL(this.files[c])}}else{var e=new FileReader;e.onload=function(b){a.value=b.target.result,a.refreshPreview(),a.onChange(!0),e=null},e.readAsDataURL(this.files[0])}})}this.preview=this.theme.getFormInputDescription(this.schema.description),this.container.appendChild(this.preview),this.control=this.theme.getFormControl(this.label,this.uploader||this.input,this.preview,this.infoButton),this.container.appendChild(this.control)},refreshPreview:function(){if(this.last_preview!==this.value&&(this.last_preview=this.value,this.preview.innerHTML="",this.value)){var a=this.value.match(/^data:([^;,]+)[;,]/);if(a&&(a=a[1]),a){if(this.preview.innerHTML="<strong>Type:</strong> "+a+", <strong>Size:</strong> "+Math.floor((this.value.length-this.value.split(",")[0].length-1)/1.33333)+" bytes","image"===a.substr(0,5)){this.preview.innerHTML+="<br>";var b=document.createElement("img");b.style.maxWidth="100%",b.style.maxHeight="100px",b.src=this.value,this.preview.appendChild(b)}}else this.preview.innerHTML="<em>Invalid data URI</em>"}},enable:function(){this.always_disabled||(this.uploader&&(this.uploader.disabled=!1),this._super())},disable:function(a){a&&(this.always_disabled=!0),this.uploader&&(this.uploader.disabled=!0),this._super()},setValue:function(a){this.value!==a&&(this.value=a,this.input.value=this.value,this.refreshPreview(),this.onChange())},destroy:function(){this.preview&&this.preview.parentNode&&this.preview.parentNode.removeChild(this.preview),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.uploader&&this.uploader.parentNode&&this.uploader.parentNode.removeChild(this.uploader),this._super()}}),h.defaults.editors.upload=h.AbstractEditor.extend({getNumColumns:function(){return 4},build:function(){var a=this;if(this.title=this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input),!this.schema.readOnly&&!this.schema.readonly){if(!this.jsoneditor.options.upload)throw"Upload handler required for upload editor";this.uploader=this.theme.getFormInputField("file"),this.uploader.addEventListener("change",function(b){if(b.preventDefault(),b.stopPropagation(),this.files&&this.files.length){var c=new FileReader;c.onload=function(b){a.preview_value=b.target.result,a.refreshPreview(),a.onChange(!0),c=null},c.readAsDataURL(this.files[0])}})}var b=this.schema.description;b||(b=""),this.preview=this.theme.getFormInputDescription(b),this.container.appendChild(this.preview),this.control=this.theme.getFormControl(this.label,this.uploader||this.input,this.preview),this.container.appendChild(this.control),window.requestAnimationFrame(function(){if(a.value){var b=document.createElement("img");b.style.maxWidth="100%",b.style.maxHeight="100px",b.onload=function(c){a.preview.appendChild(b)},b.onerror=function(a){console.error("upload error",a)},b.src=a.container.querySelector("a").href}})},refreshPreview:function(){if(this.last_preview!==this.preview_value&&(this.last_preview=this.preview_value,this.preview.innerHTML="",this.preview_value)){var a=this,b=this.preview_value.match(/^data:([^;,]+)[;,]/);b&&(b=b[1]),b||(b="unknown");var c=this.uploader.files[0];if(this.preview.innerHTML="<strong>Type:</strong> "+b+", <strong>Size:</strong> "+c.size+" bytes","image"===b.substr(0,5)){this.preview.innerHTML+="<br>";var d=document.createElement("img");d.style.maxWidth="100%",d.style.maxHeight="100px",d.src=this.preview_value,this.preview.appendChild(d)}this.preview.innerHTML+="<br>";var e=this.getButton("Upload","upload","Upload");this.preview.appendChild(e),e.addEventListener("click",function(b){b.preventDefault(),e.setAttribute("disabled","disabled"),a.theme.removeInputError(a.uploader),a.theme.getProgressBar&&(a.progressBar=a.theme.getProgressBar(),a.preview.appendChild(a.progressBar)),a.jsoneditor.options.upload(a.path,c,{success:function(b){a.setValue(b),a.parent?a.parent.onChildEditorChange(a):a.jsoneditor.onChange(),
          +
          a.progressBar&&a.preview.removeChild(a.progressBar),e.removeAttribute("disabled")},failure:function(b){a.theme.addInputError(a.uploader,b),a.progressBar&&a.preview.removeChild(a.progressBar),e.removeAttribute("disabled")},updateProgress:function(b){a.progressBar&&(b?a.theme.updateProgressBar(a.progressBar,b):a.theme.updateProgressBarUnknown(a.progressBar))}})}),(this.jsoneditor.options.auto_upload||this.schema.options.auto_upload)&&(e.dispatchEvent(new MouseEvent("click")),this.preview.removeChild(e))}},enable:function(){this.always_disabled||(this.uploader&&(this.uploader.disabled=!1),this._super())},disable:function(a){a&&(this.always_disabled=!0),this.uploader&&(this.uploader.disabled=!0),this._super()},setValue:function(a){this.value!==a&&(this.value=a,this.input.value=this.value,this.onChange())},destroy:function(){this.preview&&this.preview.parentNode&&this.preview.parentNode.removeChild(this.preview),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.uploader&&this.uploader.parentNode&&this.uploader.parentNode.removeChild(this.uploader),this._super()}}),h.defaults.editors.checkbox=h.AbstractEditor.extend({setValue:function(a,b){this.value=!!a,this.input.checked=this.value,this.onChange()},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){return Math.min(12,Math.max(this.getTitle().length/7,2))},build:function(){var a=this;this.options.compact||(this.label=this.header=this.theme.getCheckboxLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.input=this.theme.getCheckbox(),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.input.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.value=this.checked,a.onChange(!0)}),this.container.appendChild(this.control)},enable:function(){this.always_disabled||(this.input.disabled=!1,this._super())},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this._super()},destroy:function(){this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this._super()},showValidationErrors:function(a){var b=this;if("always"===this.jsoneditor.options.show_errors);else if(!this.is_dirty&&this.previous_error_setting===this.jsoneditor.options.show_errors)return;this.previous_error_setting=this.jsoneditor.options.show_errors;var c=[];f(a,function(a,d){d.path===b.path&&c.push(d.message)}),this.input.controlgroup=this.control,c.length?this.theme.addInputError(this.input,c.join(". ")+"."):this.theme.removeInputError(this.input)}}),h.defaults.editors.arraySelectize=h.AbstractEditor.extend({build:function(){this.title=this.theme.getFormInputLabel(this.getTitle()),this.title_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.error_holder=document.createElement("div"),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description)),this.input=document.createElement("select"),this.input.setAttribute("multiple","multiple");var a=this.theme.getFormControl(this.title,this.input,this.description);this.container.appendChild(a),this.container.appendChild(this.error_holder),window.jQuery(this.input).selectize({delimiter:!1,createOnBlur:!0,create:!0})},postBuild:function(){var a=this;this.input.selectize.on("change",function(b){a.refreshValue(),a.onChange(!0)})},destroy:function(){this.empty(!0),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this._super()},empty:function(a){},setValue:function(a,b){var c=this;a=a||[],Array.isArray(a)||(a=[a]),this.input.selectize.clearOptions(),this.input.selectize.clear(!0),a.forEach(function(a){c.input.selectize.addOption({text:a,value:a})}),this.input.selectize.setValue(a),this.refreshValue(b)},refreshValue:function(a){this.value=this.input.selectize.getValue()},showValidationErrors:function(a){var b=this,c=[],d=[];if(f(a,function(a,e){e.path===b.path?c.push(e):d.push(e)}),this.error_holder)if(c.length){this.error_holder.innerHTML="",this.error_holder.style.display="",f(c,function(a,c){b.error_holder.appendChild(b.theme.getErrorMessage(c.message))})}else this.error_holder.style.display="none"}}),h.defaults.editors.starrating=h.defaults.editors.string.extend({build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.ratingContainer=document.createElement("div"),this.ratingContainer.classList.add("starrating"),this.enum_values=this.schema["enum"],this.radioGroup=[];for(var b=function(b){b.preventDefault(),b.stopPropagation(),a.setValue(this.value),a.onChange(!0)},c=this.enum_values.length-1;c>-1;c--){var d=this.key+"-"+c,e=this.theme.getFormInputField("radio");e.name=this.formname+"[starrating]",e.value=this.enum_values[c],e.id=d,e.addEventListener("change",b,!1),this.radioGroup.push(e);var f=document.createElement("label");f.htmlFor=d,f.title=this.enum_values[c],this.options.displayValue&&f.classList.add("starrating-display-enabled"),this.ratingContainer.appendChild(e),this.ratingContainer.appendChild(f)}if(this.options.displayValue&&(this.displayRating=document.createElement("div"),this.displayRating.classList.add("starrating-display"),this.displayRating.innerText=this.enum_values[0],this.ratingContainer.appendChild(this.displayRating)),this.schema.readOnly||this.schema.readonly){this.always_disabled=!0;for(var g=0;c<this.radioGroup.length;g++)this.radioGroup[g].disabled=!0;this.ratingContainer.classList.add("readonly")}var h=this.theme.getContainer();h.appendChild(this.ratingContainer),this.input=h,this.control=this.theme.getFormControl(this.label,h,this.description,this.infoButton),this.container.appendChild(this.control)},enable:function(){if(!this.always_disabled){for(var a=0;a<this.radioGroup.length;a++)this.radioGroup[a].disabled=!1;this.ratingContainer.classList.remove("readonly"),this._super()}},disable:function(a){a&&(this.always_disabled=!0);for(var b=0;b<this.radioGroup.length;b++)this.radioGroup[b].disabled=!0;this.ratingContainer.classList.add("readonly"),this._super()},destroy:function(){this.ratingContainer.parentNode&&this.ratingContainer.parentNode.parentNode&&this.ratingContainer.parentNode.parentNode.removeChild(this.ratingContainer.parentNode),this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this._super()},getNumColumns:function(){return 2},setValue:function(a){for(var b=0;b<this.radioGroup.length;b++)if(this.radioGroup[b].value==a){this.radioGroup[b].checked=!0,this.value=a,this.options.displayValue&&(this.displayRating.innerHTML=this.value),this.onChange();break}}}),h.defaults.editors.datetime=h.defaults.editors.string.extend({build:function(){if(this._super(),this.input&&window.flatpickr&&"object"==typeof this.options.flatpickr){this.options.flatpickr.enableTime="date"!=this.schema.format,this.options.flatpickr.noCalendar="time"==this.schema.format,"integer"==this.schema.type&&(this.options.flatpickr.mode="single"),this.input.setAttribute("data-input","");var a=this.input;if(this.options.flatpickr.wrap===!0){var c=[];if(this.options.flatpickr.showToggleButton!==!1){var d=this.getButton("","time"==this.schema.format?"time":"calendar",this.translate("flatpickr_toggle_button"));d.setAttribute("data-toggle",""),c.push(d)}if(this.options.flatpickr.showClearButton!==!1){var e=this.getButton("","clear",this.translate("flatpickr_clear_button"));e.setAttribute("data-clear",""),c.push(e)}var f=this.input.parentNode,g=this.input.nextSibling,h=this.theme.getInputGroup(this.input,c);h!==b?(this.options.flatpickr.inline=!1,f.insertBefore(h,g),a=h):this.options.flatpickr.wrap=!1}this.flatpickr=window.flatpickr(a,this.options.flatpickr),this.options.flatpickr.inline===!0&&this.options.flatpickr.inlineHideInput===!0&&this.input.setAttribute("type","hidden")}},getValue:function(){if(!this.dependenciesFulfilled)return b;if("string"==this.schema.type)return this.value;if(""===this.value||this.value===b)return b;var a="time"==this.schema.format?"1970-01-01 "+this.value:this.value;return parseInt(new Date(a).getTime()/1e3)},setValue:function(a,b,c){if("string"==this.schema.type)this._super(a,b,c),this.flatpickr&&this.flatpickr.setDate(a);else if(a>0){var d=new Date(1e3*a),e=d.getFullYear(),f=this.zeroPad(d.getMonth()+1),g=this.zeroPad(d.getDate()),h=this.zeroPad(d.getHours()),i=this.zeroPad(d.getMinutes()),j=this.zeroPad(d.getSeconds()),k=[e,f,g].join("-"),l=[h,i,j].join(":"),m=k+" "+l;"date"==this.schema.format?m=k:"time"==this.schema.format&&(m=l),this.input.value=m,this.flatpickr&&this.flatpickr.setDate(m)}},destroy:function(){this.flatpickr&&this.flatpickr.destroy(),this.flatpickr=null,this._super()},zeroPad:function(a){return("0"+a).slice(-2)}}),h.defaults.editors.signature=h.defaults.editors.string.extend({build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description));var b=this.formname.replace(/\W/g,"");if("function"==typeof SignaturePad){var c="json-editor-style-signature";document.getElementById(c);this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input);var d=document.createElement("div");d.classList.add("signature-container");var e=document.createElement("canvas");e.setAttribute("name",b),e.classList.add("signature"),d.appendChild(e),a.signaturePad=new window.SignaturePad(e,{onEnd:function(){a.signaturePad.isEmpty()?a.input.value="":a.input.value=a.signaturePad.toDataURL(),a.is_dirty=!0,a.refreshValue(),a.watch_listener(),a.jsoneditor.notifyWatchers(a.path),a.parent?a.parent.onChildEditorChange(a):a.jsoneditor.onChange()}});var g=document.createElement("div"),h=document.createElement("button");h.classList.add("tiny","button"),h.innerHTML="Clear signature",g.appendChild(h),d.appendChild(g),this.options.compact&&this.container.setAttribute("class",this.container.getAttribute("class")+" compact"),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,f(this.inputs,function(a,b){e.setAttribute("readOnly","readOnly"),b.disabled=!0})),h.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.signaturePad.clear(),a.signaturePad.strokeEnd()}),this.control=this.theme.getFormControl(this.label,d,this.description),this.container.appendChild(this.control),this.refreshValue(),e.width=d.offsetWidth,a.options&&a.options.canvas_height?e.height=a.options.canvas_height:e.height="300"}else{var i=document.createElement("p");i.innerHTML="Signature pad is not available, please include SignaturePad from https://github.com/szimek/signature_pad",this.container.appendChild(i)}},setValue:function(a){var b=this;if("function"==typeof SignaturePad){var c=(this.formname.replace(/\W/g,""),this.sanitize(a));if(this.value===c)return;return b.value=c,b.input.value=b.value,b.signaturePad.clear(),a&&""!=a&&b.signaturePad.fromDataURL(a),b.watch_listener(),b.jsoneditor.notifyWatchers(b.path),!1}},destroy:function(){var a=this;this.formname.replace(/\W/g,"");a.signaturePad.off(),delete a.signaturePad}});var i=function(){var a=document.documentElement;return a.matches?"matches":a.webkitMatchesSelector?"webkitMatchesSelector":a.mozMatchesSelector?"mozMatchesSelector":a.msMatchesSelector?"msMatchesSelector":a.oMatchesSelector?"oMatchesSelector":void 0}();return h.AbstractTheme=c.extend({getContainer:function(){return document.createElement("div")},getFloatRightLinkHolder:function(){var a=document.createElement("div");return a.style=a.style||{},a.style.cssFloat="right",a.style.marginLeft="10px",a},getModal:function(){var a=document.createElement("div");return a.style.backgroundColor="white",a.style.border="1px solid black",a.style.boxShadow="3px 3px black",a.style.position="absolute",a.style.zIndex="10",a.style.display="none",a},getGridContainer:function(){var a=document.createElement("div");return a},getGridRow:function(){var a=document.createElement("div");return a.classList.add("row"),a},getGridColumn:function(){var a=document.createElement("div");return a},setGridColumnSize:function(a,b){},getLink:function(a){var b=document.createElement("a");return b.setAttribute("href","#"),b.appendChild(document.createTextNode(a)),b},disableHeader:function(a){a.style.color="#ccc"},disableLabel:function(a){a.style.color="#ccc"},enableHeader:function(a){a.style.color=""},enableLabel:function(a){a.style.color=""},getInfoButton:function(a){var b=document.createElement("span");b.innerText="ⓘ",b.style.fontSize="16px",b.style.fontWeight="bold",b.style.padding=".25rem",b.style.position="relative",b.style.display="inline-block";var c=document.createElement("span");return c.style.fontSize="12px",b.style.fontWeight="normal",c.style["font-family"]="sans-serif",c.style.visibility="hidden",c.style["background-color"]="rgba(50, 50, 50, .75)",c.style.margin="0 .25rem",c.style.color="#FAFAFA",c.style.padding=".5rem 1rem",c.style["border-radius"]=".25rem",c.style.width="20rem",c.style.position="absolute",c.innerText=a,b.onmouseover=function(){c.style.visibility="visible"},b.onmouseleave=function(){c.style.visibility="hidden"},b.appendChild(c),b},getFormInputLabel:function(a){var b=document.createElement("label");return b.appendChild(document.createTextNode(a)),b},getCheckboxLabel:function(a){var b=this.getFormInputLabel(a);return b.style.fontWeight="normal",b},getHeader:function(a){var b=document.createElement("h3");return"string"==typeof a?b.textContent=a:b.appendChild(a),b},getCheckbox:function(){var a=this.getFormInputField("checkbox");return a.style.display="inline-block",a.style.width="auto",a},getMultiCheckboxHolder:function(a,b,c){var d=document.createElement("div");b&&(b.style.display="block",d.appendChild(b));for(var e in a)a.hasOwnProperty(e)&&(a[e].style.display="inline-block",a[e].style.marginRight="20px",d.appendChild(a[e]));return c&&d.appendChild(c),d},getSelectInput:function(a){var b=document.createElement("select");return a&&this.setSelectOptions(b,a),b},getSwitcher:function(a){var b=this.getSelectInput(a);return b.style.backgroundColor="transparent",b.style.display="inline-block",b.style.fontStyle="italic",b.style.fontWeight="normal",b.style.height="auto",b.style.marginBottom=0,b.style.marginLeft="5px",b.style.padding="0 0 0 3px",b.style.width="auto",b},getSwitcherOptions:function(a){return a.getElementsByTagName("option")},setSwitcherOptions:function(a,b,c){this.setSelectOptions(a,b,c)},setSelectOptions:function(a,b,c){c=c||[],a.innerHTML="";for(var d=0;d<b.length;d++){var e=document.createElement("option");e.setAttribute("value",b[d]),e.textContent=c[d]||b[d],a.appendChild(e)}},getTextareaInput:function(){var a=document.createElement("textarea");return a.style=a.style||{},a.style.width="100%",a.style.height="300px",a.style.boxSizing="border-box",a},getRangeInput:function(a,b,c){var d=this.getFormInputField("range");return d.setAttribute("min",a),d.setAttribute("max",b),d.setAttribute("step",c),d},getFormInputField:function(a){var b=document.createElement("input");return b.setAttribute("type",a),b},afterInputReady:function(a){},getFormControl:function(a,b,c,d){var e=document.createElement("div");return e.classList.add("form-control"),a&&e.appendChild(a),"checkbox"===b.type&&a?(a.insertBefore(b,a.firstChild),d&&a.appendChild(d)):(d&&a.appendChild(d),e.appendChild(b)),c&&e.appendChild(c),e},getIndentedPanel:function(){var a=document.createElement("div");return a.style=a.style||{},a.style.paddingLeft="10px",a.style.marginLeft="10px",a.style.borderLeft="1px solid #ccc",a},getTopIndentedPanel:function(){var a=document.createElement("div");return a.style=a.style||{},a.style.paddingLeft="10px",a.style.marginLeft="10px",a},getChildEditorHolder:function(){return document.createElement("div")},getDescription:function(a){var b=document.createElement("p");return b.innerHTML=a,b},getCheckboxDescription:function(a){return this.getDescription(a)},getFormInputDescription:function(a){return this.getDescription(a)},getHeaderButtonHolder:function(){return this.getButtonHolder()},getButtonHolder:function(){return document.createElement("div")},getButton:function(a,b,c){var d=document.createElement("button");return d.type="button",this.setButtonText(d,a,b,c),d},setButtonText:function(a,b,c,d){for(;a.firstChild;)a.removeChild(a.firstChild);c&&(a.appendChild(c),b=" "+b);var e=document.createElement("span");e.appendChild(document.createTextNode(b)),a.appendChild(e),d&&a.setAttribute("title",d)},getTable:function(){return document.createElement("table")},getTableRow:function(){return document.createElement("tr")},getTableHead:function(){return document.createElement("thead")},getTableBody:function(){return document.createElement("tbody")},getTableHeaderCell:function(a){var b=document.createElement("th");return b.textContent=a,b},getTableCell:function(){var a=document.createElement("td");return a},getErrorMessage:function(a){var b=document.createElement("p");return b.style=b.style||{},b.style.color="red",b.appendChild(document.createTextNode(a)),b},addInputError:function(a,b){},removeInputError:function(a){},addTableRowError:function(a){},removeTableRowError:function(a){},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<div style='float: left; width: 130px;' class='tabs' id='"+b+"'></div><div class='content' style='margin-left: 120px;' id='"+b+"'></div><div style='clear:both;'></div>",c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<div class='tabs' style='margin-left: 10px;' id='"+b+"'></div><div style='clear:both;'></div><div class='content' id='"+b+"'></div>",c},applyStyles:function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a.style[c]=b[c])},closest:function(a,b){for(;a&&a!==document;){if(!a[i])return!1;if(a[i](b))return a;a=a.parentNode}return!1},insertBasicTopTab:function(a,b){b.firstChild.insertBefore(a,b.firstChild.firstChild)},getTab:function(a,b){var c=document.createElement("div");return c.appendChild(a),c.id=b,c.style=c.style||{},this.applyStyles(c,{border:"1px solid #ccc",borderWidth:"1px 0 1px 1px",textAlign:"center",lineHeight:"30px",borderRadius:"5px",borderBottomRightRadius:0,borderTopRightRadius:0,fontWeight:"bold",cursor:"pointer"}),c},getTopTab:function(a,b){var c=document.createElement("div");return c.id=b,c.appendChild(a),c.style=c.style||{},this.applyStyles(c,{"float":"left",border:"1px solid #ccc",borderWidth:"1px 1px 0px 1px",textAlign:"center",lineHeight:"30px",borderRadius:"5px",paddingLeft:"5px",paddingRight:"5px",borderBottomRightRadius:0,borderBottomLeftRadius:0,fontWeight:"bold",cursor:"pointer"}),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){return this.getIndentedPanel()},getTopTabContent:function(){return this.getTopIndentedPanel()},markTabActive:function(a){this.applyStyles(a.tab,{opacity:1,background:"white"}),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){this.applyStyles(a.tab,{opacity:.5,background:""}),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)},getBlockLink:function(){var a=document.createElement("a");return a.style.display="block",a},getBlockLinkHolder:function(){var a=document.createElement("div");return a},getLinksHolder:function(){var a=document.createElement("div");return a},createMediaLink:function(a,b,c){a.appendChild(b),c.style.width="100%",a.appendChild(c)},createImageLink:function(a,b,c){a.appendChild(b),b.appendChild(c)},getFirstTab:function(a){return a.firstChild.firstChild},getInputGroup:function(a,c){return b}}),h.defaults.themes.bootstrap2=h.AbstractTheme.extend({getRangeInput:function(a,b,c){return this._super(a,b,c)},getGridContainer:function(){var a=document.createElement("div");return a.classList.add("container-fluid"),a},getGridRow:function(){var a=document.createElement("div");return a.classList.add("row-fluid"),a},getFormInputLabel:function(a){var b=this._super(a);return b.style.display="inline-block",b.style.fontWeight="bold",b},setGridColumnSize:function(a,b){a.classList.add("span"+b)},getSelectInput:function(a){var b=this._super(a);return b.style.width="auto",b.style.maxWidth="98%",b},getFormInputField:function(a){var b=this._super(a);return b.style.width="98%",b},afterInputReady:function(a){if(!a.controlgroup&&(a.controlgroup=this.closest(a,".control-group"),a.controls=this.closest(a,".controls"),this.closest(a,".compact")&&(a.controlgroup.className=a.controlgroup.className.replace(/control-group/g,"").replace(/[ ]{2,}/g," "),a.controls.className=a.controlgroup.className.replace(/controls/g,"").replace(/[ ]{2,}/g," "),a.style.marginBottom=0),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("well","well-small"),a.style.paddingBottom=0,a},getInfoButton:function(a){var b=document.createElement("span");b.classList.add("icon-info-sign","pull-right"),b.style.padding=".25rem",b.style.position="relative",b.style.display="inline-block";var c=document.createElement("span");return c.style["font-family"]="sans-serif",c.style.visibility="hidden",c.style["background-color"]="rgba(50, 50, 50, .75)",c.style.margin="0 .25rem",c.style.color="#FAFAFA",c.style.padding=".5rem 1rem",c.style["border-radius"]=".25rem",c.style.width="25rem",c.style.transform="translateX(-27rem) translateY(-.5rem)",c.style.position="absolute",c.innerText=a,b.onmouseover=function(){c.style.visibility="visible"},b.onmouseleave=function(){c.style.visibility="hidden"},b.appendChild(c),b},getFormInputDescription:function(a){var b=document.createElement("p");return b.classList.add("help-inline"),b.textContent=a,b},getFormControl:function(a,b,c,d){var e=document.createElement("div");e.classList.add("control-group");var f=document.createElement("div");return f.classList.add("controls"),a&&"checkbox"===b.getAttribute("type")?(e.appendChild(f),a.classList.add("checkbox"),a.appendChild(b),f.appendChild(a),d&&f.appendChild(d),f.style.height="30px"):(a&&(a.classList.add("control-label"),e.appendChild(a)),d&&f.appendChild(d),f.appendChild(b),e.appendChild(f)),c&&f.appendChild(c),e},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("btn-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("btn","btn-default"),d},getTable:function(){var a=document.createElement("table");return a.classList.add("table","table-bordered"),a.style.width="auto",a.style.maxWidth="none",a},addInputError:function(a,b){return a.controlgroup?void(a.controlgroup&&a.controls&&(a.controlgroup.classList.add("error"),a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("p"),a.errmsg.classList.add("help-block","errormsg"),a.controls.appendChild(a.errmsg)),a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.controlgroup||delete this.queuedInputErrorText,a.errmsg&&(a.errmsg.style.display="none",a.controlgroup.classList.remove("error"))},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("tabbable","tabs-left"),c.innerHTML="<ul class='nav nav-tabs' id='"+b+"'></ul><div class='tab-content well well-small' id='"+b+"'></div>",c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("tabbable","tabs-over"),c.innerHTML="<ul class='nav nav-tabs' id='"+b+"'></ul><div class='tab-content well well-small' id='"+b+"'></div>",c},getTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.add("active"):a.container.classList.add("active")},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.remove("active"):a.container.classList.remove("active")},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)},getProgressBar:function(){var a=document.createElement("div");a.classList.add("progress");var b=document.createElement("div");return b.classList.add("bar"),b.style.width="0%",a.appendChild(b),a},updateProgressBar:function(a,b){a&&(a.firstChild.style.width=b+"%")},updateProgressBarUnknown:function(a){a&&(a.classList.add("progress","progress-striped","active"),a.firstChild.style.width="100%")},getInputGroup:function(a,b){if(a){var c=document.createElement("div");c.classList.add("input-append"),c.appendChild(a);for(var d=0;d<b.length;d++)b[d].classList.add("btn"),c.appendChild(b[d]);return c}}}),h.defaults.themes.bootstrap3=h.AbstractTheme.extend({getSelectInput:function(a){var b=this._super(a);return b.classList.add("form-control"),b},setGridColumnSize:function(a,b){a.classList.add("col-md-"+b)},afterInputReady:function(a){if(!a.controlgroup&&(a.controlgroup=this.closest(a,".form-group"),this.closest(a,".compact")&&(a.controlgroup.style.marginBottom=0),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},getTextareaInput:function(){var a=document.createElement("textarea");return a.classList.add("form-control"),a},getRangeInput:function(a,b,c){return this._super(a,b,c)},getFormInputField:function(a){var b=this._super(a);return"checkbox"!==a&&b.classList.add("form-control"),b},getFormControl:function(a,b,c,d){var e=document.createElement("div");return a&&"checkbox"===b.type?(e.classList.add("checkbox"),a.appendChild(b),a.style.fontSize="14px",e.style.marginTop="0",d&&e.appendChild(d),e.appendChild(a),b.style.position="relative",b.style.cssFloat="left"):(e.classList.add("form-group"),a&&(a.classList.add("control-label"),e.appendChild(a)),d&&e.appendChild(d),e.appendChild(b)),c&&e.appendChild(c),e},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("well","well-sm"),a.style.paddingBottom=0,a},getInfoButton:function(a){var b=document.createElement("span");b.classList.add("glyphicon","glyphicon-info-sign","pull-right"),b.style.padding=".25rem",b.style.position="relative",b.style.display="inline-block";var c=document.createElement("span");return c.style["font-family"]="sans-serif",c.style.visibility="hidden",c.style["background-color"]="rgba(50, 50, 50, .75)",c.style.margin="0 .25rem",c.style.color="#FAFAFA",c.style.padding=".5rem 1rem",c.style["border-radius"]=".25rem",c.style.width="25rem",c.style.transform="translateX(-27rem) translateY(-.5rem)",c.style.position="absolute",c.innerText=a,b.onmouseover=function(){c.style.visibility="visible"},b.onmouseleave=function(){c.style.visibility="hidden"},b.appendChild(c),b},getFormInputDescription:function(a){var b=document.createElement("p");return b.classList.add("help-block"),b.innerHTML=a,b},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("btn-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("btn","btn-default"),d},getTable:function(){var a=document.createElement("table");return a.classList.add("table","table-bordered"),a.style.width="auto",a.style.maxWidth="none",a},addInputError:function(a,b){return a.controlgroup?(a.controlgroup.classList.add("has-error"),a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("p"),a.errmsg.classList.add("help-block","errormsg"),a.controlgroup.appendChild(a.errmsg)),void(a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.controlgroup||delete this.queuedInputErrorText,a.errmsg&&(a.errmsg.style.display="none",a.controlgroup.classList.remove("has-error"))},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<ul class='col-md-2 nav nav-pills nav-stacked' id='"+b+"' role='tablist'></ul><div class='col-md-10 tab-content well well-small' id='"+b+"'></div>",c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<ul class='nav nav-tabs' id='"+b+"' role='tablist'></ul><div class='tab-content well well-small' id='"+b+"'></div>",c},getTab:function(a,b){var c=document.createElement("li");c.setAttribute("role","presentation");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),d.setAttribute("aria-controls",b),d.setAttribute("role","tab"),d.setAttribute("data-toggle","tab"),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.setAttribute("role","presentation");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),d.setAttribute("aria-controls",b),d.setAttribute("role","tab"),d.setAttribute("data-toggle","tab"),c.appendChild(d),c},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.add("active"):a.container.classList.add("active")},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.remove("active"):a.container.classList.remove("active")},getProgressBar:function(){var a=0,b=100,c=0,d=document.createElement("div");d.classList.add("progress");var e=document.createElement("div");return e.classList.add("progress-bar"),e.setAttribute("role","progressbar"),e.setAttribute("aria-valuenow",c),
          +
          e.setAttribute("aria-valuemin",a),e.setAttribute("aria-valuenax",b),e.innerHTML=c+"%",d.appendChild(e),d},updateProgressBar:function(a,b){if(a){var c=a.firstChild,d=b+"%";c.setAttribute("aria-valuenow",b),c.style.width=d,c.innerHTML=d}},updateProgressBarUnknown:function(a){if(a){var b=a.firstChild;a.classList.add("progress","progress-striped","active"),b.removeAttribute("aria-valuenow"),b.style.width="100%",b.innerHTML=""}},getInputGroup:function(a,b){if(a){var c=document.createElement("div");c.classList.add("input-group"),c.appendChild(a);var d=document.createElement("div");d.classList.add("input-group-btn"),c.appendChild(d);for(var e=0;e<b.length;e++)d.appendChild(b[e]);return c}}}),h.defaults.themes.bootstrap4=h.AbstractTheme.extend({getSelectInput:function(a){var b=this._super(a);return b.classList.add("form-control"),b},setGridColumnSize:function(a,b){a.classList.add("col-md-"+b)},afterInputReady:function(a){a.controlgroup||(a.controlgroup=this.closest(a,".form-group"),this.closest(a,".compact")&&(a.controlgroup.style.marginBottom=0))},getTextareaInput:function(){var a=document.createElement("textarea");return a.classList.add("form-control"),a},getRangeInput:function(a,b,c){return this._super(a,b,c)},getFormInputField:function(a){var b=this._super(a);return"checkbox"!==a&&b.classList.add("form-control"),b},getFormControl:function(a,b,c){var d=document.createElement("div");return a&&"checkbox"===b.type?(d.classList.add("checkbox"),a.appendChild(b),a.style.fontSize="14px",d.style.marginTop="0",d.appendChild(a),b.style.position="relative",b.style.cssFloat="left"):(d.classList.add("form-group"),a&&(a.classList.add("form-control-label"),d.appendChild(a)),d.appendChild(b)),c&&d.appendChild(c),d},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("card","card-body","bg-light"),a},getFormInputDescription:function(a){var b=document.createElement("p");return b.classList.add("form-text"),b.innerHTML=a,b},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("btn-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("btn","btn-secondary"),d},getTable:function(){var a=document.createElement("table");return a.classList.add("table-bordered","table-sm"),a.style.width="auto",a.style.maxWidth="none",a},addInputError:function(a,b){a.controlgroup&&(a.controlgroup.classList.add("has-danger"),a.classList.add("is-invalid"),a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("p"),a.errmsg.classList.add("form-text","invalid-feedback"),a.controlgroup.appendChild(a.errmsg)),a.errmsg.textContent=b)},removeInputError:function(a){a.errmsg&&(a.errmsg.style.display="none",a.classList.remove("is-invalid"),a.controlgroup.classList.remove("has-danger"))},getTabHolder:function(a){var b=document.createElement("div"),c="undefined"==typeof a?"":a;return b.innerHTML="<div class='col-md-2' id='"+c+"'><ul class='nav flex-column nav-pills'></ul></div><div class='tab-content col-md-10' id='"+c+"'></div>",b.classList.add("row"),b},addTab:function(a,b){a.children[0].children[0].appendChild(b)},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<ul class='nav nav-tabs' id='"+b+"'></ul><div class='card-body tab-content' id='"+b+"'></div>",c},getTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.classList.add("nav-link"),d.setAttribute("style","padding:10px;"),d.setAttribute("href","#"+b),d.setAttribute("data-toggle","tab"),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.classList.add("nav-link"),d.setAttribute("href","#"+b),d.setAttribute("data-toggle","tab"),d.appendChild(a),c.appendChild(d),c},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},markTabActive:function(a){a.tab.firstChild.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.add("active"):a.container.classList.add("active")},markTabInactive:function(a){a.tab.firstChild.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.remove("active"):a.container.classList.remove("active")},getProgressBar:function(){var a=0,b=100,c=0,d=document.createElement("div");d.classList.add("progress");var e=document.createElement("div");return e.classList.add("progress-bar"),e.setAttribute("role","progressbar"),e.setAttribute("aria-valuenow",c),e.setAttribute("aria-valuemin",a),e.setAttribute("aria-valuenax",b),e.innerHTML=c+"%",d.appendChild(e),d},updateProgressBar:function(a,b){if(a){var c=a.firstChild,d=b+"%";c.setAttribute("aria-valuenow",b),c.style.width=d,c.innerHTML=d}},updateProgressBarUnknown:function(a){if(a){var b=a.firstChild;a.classList.add("progress","progress-striped","active"),b.removeAttribute("aria-valuenow"),b.style.width="100%",b.innerHTML=""}},getInputGroup:function(a,b){if(a){var c=document.createElement("div");c.classList.add("input-group"),c.appendChild(a);var d=document.createElement("div");d.classList.add("input-group-prepend"),c.appendChild(d);for(var e=0;e<b.length;e++)d.appendChild(b[e]);return c}}}),h.defaults.themes.foundation=h.AbstractTheme.extend({getChildEditorHolder:function(){var a=document.createElement("div");return a.style.marginBottom="15px",a},getSelectInput:function(a){var b=this._super(a);return b.style.minWidth="none",b.style.padding="5px",b.style.marginTop="3px",b},getSwitcher:function(a){var b=this._super(a);return b.style.paddingRight="8px",b},afterInputReady:function(a){if(!a.group&&(this.closest(a,".compact")&&(a.style.marginBottom=0),a.group=this.closest(a,".form-control"),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},getFormInputLabel:function(a){var b=this._super(a);return b.style.display="inline-block",b},getFormInputField:function(a){var b=this._super(a);return b.style.width="100%",b.style.marginBottom="checkbox"===a?"0":"12px",b},getFormInputDescription:function(a){var b=document.createElement("p");return b.textContent=a,b.style.marginTop="-10px",b.style.fontStyle="italic",b},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("panel"),a.style.paddingBottom=0,a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.display="inline-block",a.style.marginLeft="10px",a.style.verticalAlign="middle",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("button-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("small","button"),d},addInputError:function(a,b){return a.group?(a.group.classList.add("error"),a.errmsg?a.errmsg.style.display="":(a.insertAdjacentHTML("afterend",'<small class="error"></small>'),a.errmsg=a.parentNode.getElementsByClassName("error")[0]),void(a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.group||delete this.queuedInputErrorText,a.errmsg&&(a.group.classList.remove("error"),a.errmsg.style.display="none")},getProgressBar:function(){var a=document.createElement("div");a.classList.add("progress");var b=document.createElement("span");return b.classList.add("meter"),b.style.width="0%",a.appendChild(b),a},updateProgressBar:function(a,b){a&&(a.firstChild.style.width=b+"%")},updateProgressBarUnknown:function(a){a&&(a.firstChild.style.width="100%")},getInputGroup:function(a,c){if(!a)return b;var d=document.createElement("div");d.classList.add("input-group"),a.classList.add("input-group-field"),d.appendChild(a);for(var e=0;e<c.length;e++){var f=document.createElement("div");f.classList.add("input-group-button"),f.style.verticalAlign="top",c[e].classList.remove("small"),f.appendChild(c[e]),d.appendChild(f)}return d}}),h.defaults.themes.foundation3=h.defaults.themes.foundation.extend({getHeaderButtonHolder:function(){var a=this._super();return a.style.fontSize=".6em",a},getFormInputLabel:function(a){var b=this._super(a);return b.style.fontWeight="bold",b},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("row"),c.innerHTML='<dl class="tabs vertical two columns" id="'+b+'"></dl><div class="tabs-content ten columns" id="'+b+'"></div>',c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("row"),c.innerHTML='<dl class="tabs horizontal" style="padding-left: 10px; margin-left: 10px;" id="'+b+'"></dl><div class="tabs-content twelve columns" style="padding: 10px; margin-left: 10px;" id="'+b+'"></div>',c},setGridColumnSize:function(a,b){var c=["zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve"];a.classList.add("columns",c[b])},getTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("content","active"),a.style.paddingLeft="5px",a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("content","active"),a.style.paddingLeft="5px",a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)}}),h.defaults.themes.foundation4=h.defaults.themes.foundation.extend({getHeaderButtonHolder:function(){var a=this._super();return a.style.fontSize=".6em",a},setGridColumnSize:function(a,b){a.classList.add("columns","large-"+b)},getFormInputDescription:function(a){var b=this._super(a);return b.style.fontSize=".8rem",b},getFormInputLabel:function(a){var b=this._super(a);return b.style.fontWeight="bold",b}}),h.defaults.themes.foundation5=h.defaults.themes.foundation.extend({getFormInputDescription:function(a){var b=this._super(a);return b.style.fontSize=".8rem",b},setGridColumnSize:function(a,b){a.classList.add("columns","medium-"+b)},getButton:function(a,b,c){var d=this._super(a,b,c);return d.className=d.className.replace(/\s*small/g,"")+" tiny",d},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML='<dl class="tabs vertical" id="'+b+'"></dl><div class="tabs-content vertical" id="'+b+'"></div>',c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("row"),c.innerHTML='<dl class="tabs horizontal" style="padding-left: 10px;" id="'+b+'"></dl><div class="tabs-content horizontal" style="padding: 10px;" id="'+b+'"></div>',c},getTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-content","active"),a.style.paddingLeft="5px",a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-content","active"),a.style.paddingLeft="5px",a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)}}),h.defaults.themes.foundation6=h.defaults.themes.foundation5.extend({getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("callout","secondary"),a.style="padding-left: 10px; margin-left: 10px;",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("button-group","tiny"),a.style.marginBottom=0,a},getFormInputLabel:function(a){var b=this._super(a);return b.style.display="block",b},getFormControl:function(a,b,c,d){var e=document.createElement("div");return e.classList.add("form-control"),a&&e.appendChild(a),"checkbox"===b.type?a.insertBefore(b,a.firstChild):a?(d&&a.appendChild(d),a.appendChild(b)):(d&&e.appendChild(d),e.appendChild(b)),c&&a.appendChild(c),e},addInputError:function(a,b){if(a.group){if(a.group.classList.add("error"),a.errmsg)a.errmsg.style.display="",a.className="";else{var c=document.createElement("span");c.classList.add("form-error","is-visible"),a.group.getElementsByTagName("label")[0].appendChild(c),a.classList.add("is-invalid-input"),a.errmsg=c}a.errmsg.textContent=b}},removeInputError:function(a){a.errmsg&&(a.classList.remove("is-invalid-input"),a.errmsg.parentNode&&a.errmsg.parentNode.removeChild(a.errmsg))},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("grid-x"),c.innerHTML='<div class="medium-2 cell" style="float: left;"><ul class="vertical tabs" data-tabs id="'+b+'"></ul></div><div class="medium-10 cell" style="float: left;"><div class="tabs-content" data-tabs-content="'+b+'"></div></div>',c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("grid-y"),c.innerHTML='<div className="cell"><ul class="tabs" data-tabs id="'+b+'"></ul><div class="tabs-content" data-tabs-content="'+b+'"></div></div>',c},insertBasicTopTab:function(a,b){b.firstChild.firstChild.insertBefore(a,b.firstChild.firstChild.firstChild)},getTab:function(a,b){var c=document.createElement("li");c.classList.add("tabs-title");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.classList.add("tabs-title");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1].firstChild},getTopTabContentHolder:function(a){return a.firstChild.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tabs-panel"),a.style.paddingLeft="5px",a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tabs-panel"),a.style.paddingLeft="5px",a},markTabActive:function(a){a.tab.classList.add("is-active"),a.tab.firstChild.setAttribute("aria-selected","true"),"undefined"!=typeof a.rowPane?(a.rowPane.classList.add("is-active"),a.rowPane.setAttribute("aria-selected","true")):(a.container.classList.add("is-active"),a.container.setAttribute("aria-selected","true"))},markTabInactive:function(a){a.tab.classList.remove("is-active"),a.tab.firstChild.removeAttribute("aria-selected"),"undefined"!=typeof a.rowPane?(a.rowPane.classList.remove("is-active"),a.rowPane.removeAttribute("aria-selected")):(a.container.classList.remove("is-active"),a.container.removeAttribute("aria-selected"))},addTab:function(a,b){a.children[0].firstChild.appendChild(b)},addTopTab:function(a,b){a.firstChild.children[0].appendChild(b)},getFirstTab:function(a){return a.firstChild.firstChild.firstChild}}),h.defaults.themes.html=h.AbstractTheme.extend({getFormInputLabel:function(a){var b=this._super(a);return b.style.display="block",b.style.marginBottom="3px",b.style.fontWeight="bold",b},getFormInputDescription:function(a){var b=this._super(a);return b.style.fontSize=".8em",b.style.margin=0,b.style.display="inline-block",b.style.fontStyle="italic",b},getIndentedPanel:function(){var a=this._super();return a.style.border="1px solid #ddd",a.style.padding="5px",a.style.margin="10px",a.style.borderRadius="3px",a},getTopIndentedPanel:function(){return this.getIndentedPanel()},getChildEditorHolder:function(){var a=this._super();return a.style.marginBottom="8px",a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.display="inline-block",a.style.marginLeft="10px",a.style.fontSize=".8em",a.style.verticalAlign="middle",a},getTable:function(){var a=this._super();return a.style.borderBottom="1px solid #ccc",a.style.marginBottom="5px",a},addInputError:function(a,b){if(a.style.borderColor="red",a.errmsg)a.errmsg.style.display="block";else{var c=this.closest(a,".form-control");a.errmsg=document.createElement("div"),a.errmsg.setAttribute("class","errmsg"),a.errmsg.style=a.errmsg.style||{},a.errmsg.style.color="red",c.appendChild(a.errmsg)}a.errmsg.innerHTML="",a.errmsg.appendChild(document.createTextNode(b))},removeInputError:function(a){a.style.borderColor="",a.errmsg&&(a.errmsg.style.display="none")},getProgressBar:function(){var a=100,b=0,c=document.createElement("progress");return c.setAttribute("max",a),c.setAttribute("value",b),c},updateProgressBar:function(a,b){a&&a.setAttribute("value",b)},updateProgressBarUnknown:function(a){a&&a.removeAttribute("value")}}),h.defaults.themes.jqueryui=h.AbstractTheme.extend({getTable:function(){var a=this._super();return a.setAttribute("cellpadding",5),a.setAttribute("cellspacing",0),a},getTableHeaderCell:function(a){var b=this._super(a);return b.classList.add("ui-state-active"),b.style.fontWeight="bold",b},getTableCell:function(){var a=this._super();return a.classList.add("ui-widget-content"),a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a.style.fontSize=".6em",a.style.display="inline-block",a},getFormInputDescription:function(a){var b=this.getDescription(a);return b.style.marginLeft="10px",b.style.display="inline-block",b},getFormControl:function(a,b,c,d){var e=this._super(a,b,c,d);return"checkbox"===b.type?(e.style.lineHeight="25px",e.style.padding="3px 0"):e.style.padding="4px 0 8px 0",e},getDescription:function(a){var b=document.createElement("span");return b.style.fontSize=".8em",b.style.fontStyle="italic",b.textContent=a,b},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("ui-buttonset"),a.style.fontSize=".7em",a},getFormInputLabel:function(a){var b=document.createElement("label");return b.style.fontWeight="bold",b.style.display="block",b.textContent=a,b},getButton:function(a,b,c){var d=document.createElement("button");d.classList.add("ui-button","ui-widget","ui-state-default","ui-corner-all"),b&&!a?(d.classList.add("ui-button-icon-only"),b.classList.add("ui-button-icon-primary","ui-icon-primary"),d.appendChild(b)):b?(d.classList.add("ui-button-text-icon-primary"),b.classList.add("ui-button-icon-primary","ui-icon-primary"),d.appendChild(b)):d.classList.add("ui-button-text-only");var e=document.createElement("span");return e.classList.add("ui-button-text"),e.textContent=a||c||".",d.appendChild(e),d.setAttribute("title",c),d},setButtonText:function(a,b,c,d){a.innerHTML="",a.classList.add("ui-button","ui-widget","ui-state-default","ui-corner-all"),c&&!b?(a.classList.add("ui-button-icon-only"),c.classList.add("ui-button-icon-primary","ui-icon-primary"),a.appendChild(c)):c?(a.classList.add("ui-button-text-icon-primary"),c.classList.add("ui-button-icon-primary","ui-icon-primary"),a.appendChild(c)):a.classList.add("ui-button-text-only");var e=document.createElement("span");e.classList.add("ui-button-text"),e.textContent=b||d||".",a.appendChild(e),a.setAttribute("title",d)},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("ui-widget-content","ui-corner-all"),a.style.padding="1em 1.4em",a.style.marginBottom="20px",a},afterInputReady:function(a){if(!a.controls&&(a.controls=this.closest(a,".form-control"),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},addInputError:function(a,b){return a.controls?(a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("div"),a.errmsg.classList.add("ui-state-error"),a.controls.appendChild(a.errmsg)),void(a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.controls||delete this.queuedInputErrorText,a.errmsg&&(a.errmsg.style.display="none")},markTabActive:function(a){a.tab.classList.remove("ui-widget-header"),a.tab.classList.add("ui-state-active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){a.tab.classList.add("ui-widget-header"),a.tab.classList.remove("ui-state-active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"}}),h.defaults.themes.barebones=h.AbstractTheme.extend({getFormInputLabel:function(a){var b=this._super(a);return b},getFormInputDescription:function(a){var b=this._super(a);return b},getIndentedPanel:function(){var a=this._super();return a},getChildEditorHolder:function(){var a=this._super();return a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a},getTable:function(){var a=this._super();return a},addInputError:function(a,b){if(a.errmsg)a.errmsg.style.display="block";else{var c=this.closest(a,".form-control");a.errmsg=document.createElement("div"),a.errmsg.setAttribute("class","errmsg"),c.appendChild(a.errmsg)}a.errmsg.innerHTML="",a.errmsg.appendChild(document.createTextNode(b))},removeInputError:function(a){a.style.borderColor="",a.errmsg&&(a.errmsg.style.display="none")},getProgressBar:function(){var a=100,b=0,c=document.createElement("progress");return c.setAttribute("max",a),c.setAttribute("value",b),c},updateProgressBar:function(a,b){a&&a.setAttribute("value",b)},updateProgressBarUnknown:function(a){a&&a.removeAttribute("value")}}),h.defaults.themes.materialize=h.AbstractTheme.extend({setGridColumnSize:function(a,b){a.classList.add("col"),a.classList.add("s"+b)},getHeaderButtonHolder:function(){return this.getButtonHolder()},getButtonHolder:function(){return document.createElement("span")},getButton:function(a,b,c){a&&(b.classList.add("left"),b.style.marginRight="5px");var d=this._super(a,b,c);return d.classList.add("waves-effect","waves-light","btn"),d.style.fontSize="0.75rem",d.style.height="24px",d.style.lineHeight="24px",d.style.marginLeft="5px",d.style.padding="0 0.5rem",d},getFormControl:function(a,b,c,d){var e,f=b.type;if(f&&"checkbox"===f){if(e=document.createElement("p"),a){var g=document.createElement("span");g.innerHTML=a.innerHTML,a.innerHTML="",a.setAttribute("for",b.id),e.appendChild(a),a.appendChild(b),a.appendChild(g)}else e.appendChild(b);return e}return e=this._super(a,b,c,d),f&&f.startsWith("select")||e.classList.add("input-field"),f&&"color"===f&&(b.style.height="3rem",b.style.width="100%",b.style.margin="5px 0 20px 0",b.style.padding="3px",a&&(a.style.transform="translateY(-14px) scale(0.8)",a.style["-webkit-transform"]="translateY(-14px) scale(0.8)",a.style["-webkit-transform-origin"]="0 0",a.style["transform-origin"]="0 0")),e},getDescription:function(a){var b=document.createElement("div");return b.classList.add("grey-text"),b.style.marginTop="-15px",b.innerHTML=a,b},getHeader:function(a){var b=document.createElement("h5");return"string"==typeof a?b.textContent=a:b.appendChild(a),b},getChildEditorHolder:function(){var a=document.createElement("div");return a.marginBottom="10px",a},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("card-panel"),a},getTable:function(){var a=document.createElement("table");return a.classList.add("striped","bordered"),a.style.marginBottom="10px",a},getTableRow:function(){return document.createElement("tr")},getTableHead:function(){return document.createElement("thead")},getTableBody:function(){return document.createElement("tbody")},getTableHeaderCell:function(a){var b=document.createElement("th");return b.textContent=a,b},getTableCell:function(){var a=document.createElement("td");return a},getTabHolder:function(){var a=['<div class="col s2">',' <ul class="tabs" style="height: auto; margin-top: 0.82rem; -ms-flex-direction: column; -webkit-flex-direction: column; flex-direction: column; display: -webkit-flex; display: flex;">'," </ul>","</div>",'<div class="col s10">',"<div>"].join("\n"),b=document.createElement("div");return b.classList.add("row","card-panel"),b.innerHTML=a,b},addTab:function(a,b){a.children[0].children[0].appendChild(b)},getTab:function(a){var b=document.createElement("li");return b.classList.add("tab"),b.style=b.style||{},this.applyStyles(b,{width:"100%",textAlign:"left",lineHeight:"24px",height:"24px",fontSize:"14px",cursor:"pointer"}),b.appendChild(a),b},markTabActive:function(a){a.style=a.style||{},this.applyStyles(a,{width:"100%",textAlign:"left",lineHeight:"24px",height:"24px",fontSize:"14px",cursor:"pointer",color:"rgba(238,110,115,1)",transition:"border-color .5s ease",borderRight:"3px solid #424242"})},markTabInactive:function(a){a.style=a.style||{},this.applyStyles(a,{width:"100%",textAlign:"left",lineHeight:"24px",height:"24px",fontSize:"14px",cursor:"pointer",color:"rgba(238,110,115,0.7)"})},getTabContentHolder:function(a){return a.children[1]},getTabContent:function(){return document.createElement("div")},addInputError:function(a,b){var c,d=a.parentNode;d&&(this.removeInputError(a),c=document.createElement("div"),c.classList.add("error-text","red-text"),c.textContent=b,d.appendChild(c))},removeInputError:function(a){var b,c=a.parentElement;if(c){b=c.getElementsByClassName("error-text");for(var d=0;d<b.length;d++)c.removeChild(b[d])}},addTableRowError:function(a){},removeTableRowError:function(a){},getSelectInput:function(a){var b=this._super(a);return b.classList.add("browser-default"),b},getTextareaInput:function(){var a=document.createElement("textarea");return a.style.marginBottom="5px",a.style.fontSize="1rem",a.style.fontFamily="monospace",a},getCheckbox:function(){var a=this.getFormInputField("checkbox");return a.id=this.createUuid(),a},getModal:function(){var a=document.createElement("div");return a.classList.add("card-panel","z-depth-3"),a.style.padding="5px",a.style.position="absolute",a.style.zIndex="10",a.style.display="none",a},createUuid:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"==a?b:3&b|8;return c.toString(16)})}}),h.AbstractIconLib=c.extend({mapping:{collapse:"",expand:"","delete":"",edit:"",add:"",cancel:"",save:"",moveup:"",movedown:""},icon_prefix:"",getIconClass:function(a){return this.mapping[a]?this.icon_prefix+this.mapping[a]:null},getIcon:function(a){var b=this.getIconClass(a);if(!b)return null;var c=document.createElement("i");return c.classList.add.apply(c.classList,b.split(" ")),c}}),h.defaults.iconlibs.bootstrap2=h.AbstractIconLib.extend({mapping:{collapse:"chevron-down",expand:"chevron-up","delete":"trash",edit:"pencil",add:"plus",cancel:"ban-circle",save:"ok",moveup:"arrow-up",movedown:"arrow-down",clear:"remove-circle",time:"time",calendar:"calendar"},icon_prefix:"icon-"}),h.defaults.iconlibs.bootstrap3=h.AbstractIconLib.extend({mapping:{collapse:"chevron-down",expand:"chevron-right","delete":"remove",edit:"pencil",add:"plus",cancel:"floppy-remove",save:"floppy-saved",moveup:"arrow-up",movedown:"arrow-down",clear:"remove-circle",time:"time",calendar:"calendar"},icon_prefix:"glyphicon glyphicon-"}),h.defaults.iconlibs.fontawesome3=h.AbstractIconLib.extend({mapping:{collapse:"chevron-down",expand:"chevron-right","delete":"remove",edit:"pencil",add:"plus",cancel:"ban-circle",save:"save",moveup:"arrow-up",movedown:"arrow-down",clear:"remove-circle",time:"time",calendar:"calendar"},icon_prefix:"icon-"}),h.defaults.iconlibs.fontawesome4=h.AbstractIconLib.extend({mapping:{collapse:"caret-square-o-down",expand:"caret-square-o-right","delete":"times",edit:"pencil",add:"plus",cancel:"ban",save:"save",moveup:"arrow-up",movedown:"arrow-down",copy:"files-o",clear:"times-circle-o",time:"clock-o",calendar:"calendar"},icon_prefix:"fa fa-"}),h.defaults.iconlibs.fontawesome5=h.AbstractIconLib.extend({mapping:{collapse:"caret-down",expand:"caret-right","delete":"times",edit:"pen",add:"plus",cancel:"ban",save:"save",moveup:"arrow-up",movedown:"arrow-down",copy:"copy",clear:"times-circle",time:"clock",calendar:"calendar"},icon_prefix:"fas fa-"}),h.defaults.iconlibs.foundation2=h.AbstractIconLib.extend({mapping:{collapse:"minus",expand:"plus","delete":"remove",edit:"edit",add:"add-doc",cancel:"error",save:"checkmark",moveup:"up-arrow",movedown:"down-arrow",clear:"remove",time:"clock",calendar:"calendar"},icon_prefix:"foundicon-"}),h.defaults.iconlibs.foundation3=h.AbstractIconLib.extend({mapping:{collapse:"minus",expand:"plus","delete":"x",edit:"pencil",add:"page-add",cancel:"x-circle",save:"save",moveup:"arrow-up",movedown:"arrow-down",clear:"x-circle",time:"clock",calendar:"calendar"},icon_prefix:"fi-"}),h.defaults.iconlibs.jqueryui=h.AbstractIconLib.extend({mapping:{collapse:"triangle-1-s",expand:"triangle-1-e","delete":"trash",edit:"pencil",add:"plusthick",cancel:"closethick",save:"disk",moveup:"arrowthick-1-n",movedown:"arrowthick-1-s",clear:"circle-close",time:"time",calendar:"calendar"},icon_prefix:"ui-icon ui-icon-"}),h.defaults.iconlibs.materialicons=h.AbstractIconLib.extend({mapping:{collapse:"arrow_drop_up",expand:"arrow_drop_down","delete":"delete",edit:"edit",add:"add",cancel:"cancel",save:"save",moveup:"arrow_upward",movedown:"arrow_downward",copy:"content_copy",clear:"highlight_off",time:"access_time",calendar:"calendar_today",upload:"cloud_upload"},icon_class:"material-icons",icon_prefix:"",getIconClass:function(a){return this.icon_class},getIcon:function(a){var b=this.mapping[a];if(!b)return null;var c=document.createElement("i");c.classList.add(this.icon_class);var d=document.createTextNode(b);return c.appendChild(d),c}}),h.defaults.templates["default"]=function(){return{compile:function(a){var b=a.match(/{{\s*([a-zA-Z0-9\-_ \.]+)\s*}}/g),c=b&&b.length;if(!c)return function(){return a};for(var d=[],e=function(a){var c,e=b[a].replace(/[{}]+/g,"").trim().split("."),f=e.length;if(f>1){var g;c=function(b){for(g=b,a=0;a<f&&(g=g[e[a]],g);a++);return g}}else e=e[0],c=function(a){return a[e]};d.push({s:b[a],r:c})},f=0;f<c;f++)e(f);return function(b){var e,g=a+"";for(f=0;f<c;f++)e=d[f],g=g.replace(e.s,e.r(b));return g}}}},h.defaults.templates.ejs=function(){return!!window.EJS&&{compile:function(a){var b=new window.EJS({text:a});return function(a){return b.render(a)}}}},h.defaults.templates.handlebars=function(){return window.Handlebars},h.defaults.templates.hogan=function(){return!!window.Hogan&&{compile:function(a){var b=window.Hogan.compile(a);return function(a){return b.render(a)}}}},h.defaults.templates.lodash=function(){return!!window._&&{compile:function(a){return function(b){return window._.template(a)(b)}}}},h.defaults.templates.markup=function(){return!(!window.Mark||!window.Mark.up)&&{compile:function(a){return function(b){return window.Mark.up(a,b)}}}},h.defaults.templates.mustache=function(){return!!window.Mustache&&{compile:function(a){return function(b){return window.Mustache.render(a,b)}}}},h.defaults.templates.swig=function(){return window.swig},h.defaults.templates.underscore=function(){
          +
          return!!window._&&{compile:function(a){return function(b){return window._.template(a,b)}}}},h.defaults.theme="html",h.defaults.template="default",h.defaults.options={},h.defaults.options.prompt_before_delete=!0,h.defaults.options.upload=function(a,b,c){console.log("Upload handler required for upload editor")},h.defaults.translate=function(a,b){var c=h.defaults.languages[h.defaults.language];if(!c)throw"Unknown language "+h.defaults.language;var d=c[a]||h.defaults.languages[h.defaults.default_language][a];if("undefined"==typeof d)throw"Unknown translate string "+a;if(b)for(var e=0;e<b.length;e++)d=d.replace(new RegExp("\\{\\{"+e+"}}","g"),b[e]);return d},h.defaults.default_language="en",h.defaults.language=h.defaults.default_language,h.defaults.languages.en={error_notset:"Property must be set",error_notempty:"Value required",error_enum:"Value must be one of the enumerated values",error_anyOf:"Value must validate against at least one of the provided schemas",error_oneOf:"Value must validate against exactly one of the provided schemas. It currently validates against {{0}} of the schemas.",error_not:"Value must not validate against the provided schema",error_type_union:"Value must be one of the provided types",error_type:"Value must be of type {{0}}",error_disallow_union:"Value must not be one of the provided disallowed types",error_disallow:"Value must not be of type {{0}}",error_multipleOf:"Value must be a multiple of {{0}}",error_maximum_excl:"Value must be less than {{0}}",error_maximum_incl:"Value must be at most {{0}}",error_minimum_excl:"Value must be greater than {{0}}",error_minimum_incl:"Value must be at least {{0}}",error_maxLength:"Value must be at most {{0}} characters long",error_minLength:"Value must be at least {{0}} characters long",error_pattern:"Value must match the pattern {{0}}",error_additionalItems:"No additional items allowed in this array",error_maxItems:"Value must have at most {{0}} items",error_minItems:"Value must have at least {{0}} items",error_uniqueItems:"Array must have unique items",error_maxProperties:"Object must have at most {{0}} properties",error_minProperties:"Object must have at least {{0}} properties",error_required:"Object is missing the required property '{{0}}'",error_additional_properties:"No additional properties allowed, but property {{0}} is set",error_dependency:"Must have property {{0}}",error_date:"Date must be in the format {{0}}",error_time:"Time must be in the format {{0}}",error_datetime_local:"Datetime must be in the format {{0}}",error_invalid_epoch:"Date must be greater than 1 January 1970",button_delete_all:"All",button_delete_all_title:"Delete All",button_delete_last:"Last {{0}}",button_delete_last_title:"Delete Last {{0}}",button_add_row_title:"Add {{0}}",button_move_down_title:"Move down",button_move_up_title:"Move up",button_delete_row_title:"Delete {{0}}",button_delete_row_title_short:"Delete",button_collapse:"Collapse",button_expand:"Expand",flatpickr_toggle_button:"Toggle",flatpickr_clear_button:"Clear"},h.plugins={ace:{theme:""},SimpleMDE:{},sceditor:{},select2:{},selectize:{}},f(h.defaults.editors,function(a,b){h.defaults.editors[a].options=b.options||{}}),h.defaults.resolvers.unshift(function(a){if("string"!=typeof a.type)return"multiple"}),h.defaults.resolvers.unshift(function(a){if(!a.type&&a.properties)return"object"}),h.defaults.resolvers.unshift(function(a){if("string"==typeof a.type)return a.type}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&"signature"===a.format)return"signature"}),h.defaults.resolvers.unshift(function(a){if("integer"===a.type&&"rating"===a.format)return"rating"}),h.defaults.resolvers.unshift(function(a){if("boolean"===a.type)return"checkbox"===a.format||a.options&&a.options.checkbox?"checkbox":h.plugins.selectize.enable?"selectize":"select"}),h.defaults.resolvers.unshift(function(a){if("any"===a.type)return"multiple"}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&a.media&&"base64"===a.media.binaryEncoding)return"base64"}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&"url"===a.format&&a.options&&a.options.upload===!0&&window.FileReader)return"upload"}),h.defaults.resolvers.unshift(function(a){if("array"===a.type&&"table"===a.format)return"table"}),h.defaults.resolvers.unshift(function(a){if(a.enumSource)return h.plugins.selectize.enable?"selectize":"select"}),h.defaults.resolvers.unshift(function(a){if(a["enum"]){if("array"===a.type||"object"===a.type)return"enum";if("number"===a.type||"integer"===a.type||"string"===a.type)return h.plugins.selectize.enable?"selectize":"select"}}),h.defaults.resolvers.unshift(function(a){if("array"===a.type&&a.items&&!Array.isArray(a.items)&&a.uniqueItems&&["string","number","integer"].indexOf(a.items.type)>=0){if(a.items["enum"])return"multiselect";if(h.plugins.selectize.enable&&"string"===a.items.type)return"arraySelectize"}}),h.defaults.resolvers.unshift(function(a){if(a.oneOf||a.anyOf)return"multiple"}),h.defaults.resolvers.unshift(function(a){if(["string","integer"].indexOf(a.type)!==-1&&["date","time","datetime-local"].indexOf(a.format)!==-1)return"datetime"}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&"starrating"===a.format)return"starrating"}),function(){if(window.jQuery||window.Zepto){var a=window.jQuery||window.Zepto;a.jsoneditor=h.defaults,a.fn.jsoneditor=function(a){var b=this,c=this.data("jsoneditor");if("value"===a){if(!c)throw"Must initialize jsoneditor before getting/setting the value";if(!(arguments.length>1))return c.getValue();c.setValue(arguments[1])}else{if("validate"===a){if(!c)throw"Must initialize jsoneditor before validating";return arguments.length>1?c.validate(arguments[1]):c.validate()}"destroy"===a?c&&(c.destroy(),this.data("jsoneditor",null)):(c&&c.destroy(),c=new h(this.get(0),a),this.data("jsoneditor",c),c.on("change",function(){b.trigger("change")}),c.on("ready",function(){b.trigger("ready")}))}return this}}}(),h});
          +
          //# sourceMappingURL=jsoneditor.min.js.map
          +
          )====="
          +
          +

          Definition at line 2 of file js_jsoneditor.h.

          + +
          +
          +
          +
          + + + + diff --git a/docs/js__jsoneditor_8h.js b/docs/generated/docs/js__jsoneditor_8h.js similarity index 100% rename from docs/js__jsoneditor_8h.js rename to docs/generated/docs/js__jsoneditor_8h.js diff --git a/docs/js__jsoneditor_8h__dep__incl.map b/docs/generated/docs/js__jsoneditor_8h__dep__incl.map similarity index 100% rename from docs/js__jsoneditor_8h__dep__incl.map rename to docs/generated/docs/js__jsoneditor_8h__dep__incl.map diff --git a/docs/generated/docs/js__jsoneditor_8h__dep__incl.md5 b/docs/generated/docs/js__jsoneditor_8h__dep__incl.md5 new file mode 100644 index 000000000..a6249342b --- /dev/null +++ b/docs/generated/docs/js__jsoneditor_8h__dep__incl.md5 @@ -0,0 +1 @@ +06e847e312cfe7470da41597c11e03f5 \ No newline at end of file diff --git a/docs/generated/docs/js__jsoneditor_8h__dep__incl.png b/docs/generated/docs/js__jsoneditor_8h__dep__incl.png new file mode 100644 index 000000000..29bdb2e0e Binary files /dev/null and b/docs/generated/docs/js__jsoneditor_8h__dep__incl.png differ diff --git a/docs/js__jsoneditor_8h__incl.map b/docs/generated/docs/js__jsoneditor_8h__incl.map similarity index 100% rename from docs/js__jsoneditor_8h__incl.map rename to docs/generated/docs/js__jsoneditor_8h__incl.map diff --git a/docs/generated/docs/js__jsoneditor_8h__incl.md5 b/docs/generated/docs/js__jsoneditor_8h__incl.md5 new file mode 100644 index 000000000..5e9e1fbff --- /dev/null +++ b/docs/generated/docs/js__jsoneditor_8h__incl.md5 @@ -0,0 +1 @@ +684250a2454eebeef253789652c1aeb2 \ No newline at end of file diff --git a/docs/generated/docs/js__jsoneditor_8h__incl.png b/docs/generated/docs/js__jsoneditor_8h__incl.png new file mode 100644 index 000000000..392e930f8 Binary files /dev/null and b/docs/generated/docs/js__jsoneditor_8h__incl.png differ diff --git a/docs/generated/docs/js__jsoneditor_8h_source.html b/docs/generated/docs/js__jsoneditor_8h_source.html new file mode 100644 index 000000000..152519578 --- /dev/null +++ b/docs/generated/docs/js__jsoneditor_8h_source.html @@ -0,0 +1,112 @@ + + + + + + + +SensESP: src/net/web/js_jsoneditor.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          js_jsoneditor.h
          +
          +
          +Go to the documentation of this file.
          1 #include <pgmspace.h>
          +
          2 const char PAGE_js_jsoneditor[] PROGMEM = R"=====(
          +
          14 !function(a,b){"use strict";var c=b(a);"object"==typeof module&&null!=module&&module.exports?module.exports=c:"function"==typeof define&&define.amd?define(function(){return c}):a.JSONEditor=c}("undefined"!=typeof window?window:this,function(a,b){var c;!function(){var a=!1,b=/xyz/.test(function(){window.postMessage("xyz")})?/\b_super\b/:/.*/;return c=function(){},c.extend=function d(c){function e(){!a&&this.init&&this.init.apply(this,arguments)}var f=this.prototype;a=!0;var g=new this;a=!1;for(var h in c)g[h]="function"==typeof c[h]&&"function"==typeof f[h]&&b.test(c[h])?function(a,b){return function(){var c=this._super;this._super=f[a];var d=b.apply(this,arguments);return this._super=c,d}}(h,c[h]):c[h];return e.prototype=g,e.prototype.constructor=e,e.extend=d,e},c}(),function(){function a(a,c){c=c||{bubbles:!1,cancelable:!1,detail:b};var d=document.createEvent("CustomEvent");return d.initCustomEvent(a,c.bubbles,c.cancelable,c.detail),d}a.prototype=window.Event.prototype,window.CustomEvent=a}(),function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!window.requestAnimationFrame;++c)window.requestAnimationFrame=window[b[c]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[b[c]+"CancelAnimationFrame"]||window[b[c]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(b,c){var d=(new Date).getTime(),e=Math.max(0,16-(d-a)),f=window.setTimeout(function(){b(d+e)},e);return a=d+e,f}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(a){clearTimeout(a)})}(),function(){Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)})}();var d=function(a){return!("object"!=typeof a||a.nodeType||null!==a&&a===a.window)&&!(a.constructor&&!Object.prototype.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))},e=function(a){var b,c,f;for(c=1;c<arguments.length;c++){b=arguments[c];for(f in b)b.hasOwnProperty(f)&&(b[f]&&d(b[f])?(a.hasOwnProperty(f)||(a[f]={}),e(a[f],b[f])):a[f]=b[f])}return a},f=function(a,b){if(a&&"object"==typeof a){var c;if(Array.isArray(a)||"number"==typeof a.length&&a.length>0&&a.length-1 in a){for(c=0;c<a.length;c++)if(b(c,a[c])===!1)return}else if(Object.keys){var d=Object.keys(a);for(c=0;c<d.length;c++)if(b(d[c],a[d[c]])===!1)return}else for(c in a)if(a.hasOwnProperty(c)&&b(c,a[c])===!1)return}},g=function(a,b){var c=document.createEvent("HTMLEvents");c.initEvent(b,!0,!0),a.dispatchEvent(c)},h=function(a,b){if(!(a instanceof Element))throw new Error("element should be an instance of Element");b=e({},h.defaults.options,b||{}),this.element=a,this.options=b,this.init()};h.prototype={constructor:h,init:function(){var a=this;this.ready=!1,this.copyClipboard=null,this.refs_with_info={},this.refs_prefix="#/counter/",this.refs_counter=1;var b=h.defaults.themes[this.options.theme||h.defaults.theme];if(!b)throw"Unknown theme "+(this.options.theme||h.defaults.theme);this.schema=this.options.schema,this.theme=new b,this.template=this.options.template,this.refs=this.options.refs||{},this.uuid=0,this.__data={};var c=h.defaults.iconlibs[this.options.iconlib||h.defaults.iconlib];c&&(this.iconlib=new c),this.root_container=this.theme.getContainer(),this.element.appendChild(this.root_container),this.translate=this.options.translate||h.defaults.translate;var d=document.location.toString(),e=this._getFileBase();this._loadExternalRefs(this.schema,function(){a._getDefinitions(a.schema,d+"#/definitions/");var b={};a.options.custom_validators&&(b.custom_validators=a.options.custom_validators),a.validator=new h.Validator(a,null,b);var c=a.expandRefs(a.schema),e=a.getEditorClass(c);a.root=a.createEditor(e,{jsoneditor:a,schema:c,required:!0,container:a.root_container}),a.root.preBuild(),a.root.build(),a.root.postBuild(),a.options.hasOwnProperty("startval")&&a.root.setValue(a.options.startval),a.validation_results=a.validator.validate(a.root.getValue()),a.root.showValidationErrors(a.validation_results),a.ready=!0,window.requestAnimationFrame(function(){a.ready&&(a.validation_results=a.validator.validate(a.root.getValue()),a.root.showValidationErrors(a.validation_results),a.trigger("ready"),a.trigger("change"))})},d,e)},getValue:function(){if(!this.ready)throw"JSON Editor not ready yet. Listen for 'ready' event before getting the value";return this.root.getValue()},setValue:function(a){if(!this.ready)throw"JSON Editor not ready yet. Listen for 'ready' event before setting the value";return this.root.setValue(a),this},validate:function(a){if(!this.ready)throw"JSON Editor not ready yet. Listen for 'ready' event before validating";return 1===arguments.length?this.validator.validate(a):this.validation_results},destroy:function(){this.destroyed||this.ready&&(this.schema=null,this.options=null,this.root.destroy(),this.root=null,this.root_container=null,this.validator=null,this.validation_results=null,this.theme=null,this.iconlib=null,this.template=null,this.__data=null,this.ready=!1,this.element.innerHTML="",this.destroyed=!0)},on:function(a,b){return this.callbacks=this.callbacks||{},this.callbacks[a]=this.callbacks[a]||[],this.callbacks[a].push(b),this},off:function(a,b){if(a&&b){this.callbacks=this.callbacks||{},this.callbacks[a]=this.callbacks[a]||[];for(var c=[],d=0;d<this.callbacks[a].length;d++)this.callbacks[a][d]!==b&&c.push(this.callbacks[a][d]);this.callbacks[a]=c}else a?(this.callbacks=this.callbacks||{},this.callbacks[a]=[]):this.callbacks={};return this},trigger:function(a){if(this.callbacks&&this.callbacks[a]&&this.callbacks[a].length)for(var b=0;b<this.callbacks[a].length;b++)this.callbacks[a][b].apply(this,[]);return this},setOption:function(a,b){if("show_errors"!==a)throw"Option "+a+" must be set during instantiation and cannot be changed later";return this.options.show_errors=b,this.onChange(),this},getEditorClass:function(a){var b;if(a=this.expandSchema(a),f(h.defaults.resolvers,function(c,d){var e=d(a);if(e&&h.defaults.editors[e])return b=e,!1}),!b)throw"Unknown editor for schema "+JSON.stringify(a);if(!h.defaults.editors[b])throw"Unknown editor "+b;return h.defaults.editors[b]},createEditor:function(a,b){return b=e({},a.options||{},b),new a(b)},onChange:function(){if(this.ready&&!this.firing_change){this.firing_change=!0;var a=this;return window.requestAnimationFrame(function(){a.firing_change=!1,a.ready&&(a.validation_results=a.validator.validate(a.root.getValue()),"never"!==a.options.show_errors?a.root.showValidationErrors(a.validation_results):a.root.showValidationErrors([]),a.trigger("change"))}),this}},compileTemplate:function(a,b){b=b||h.defaults.template;var c;if("string"==typeof b){if(!h.defaults.templates[b])throw"Unknown template engine "+b;if(c=h.defaults.templates[b](),!c)throw"Template engine "+b+" missing required library."}else c=b;if(!c)throw"No template engine set";if(!c.compile)throw"Invalid template engine set";return c.compile(a)},_data:function(a,b,c){if(3!==arguments.length)return a.hasAttribute("data-jsoneditor-"+b)?this.__data[a.getAttribute("data-jsoneditor-"+b)]:null;var d;a.hasAttribute("data-jsoneditor-"+b)?d=a.getAttribute("data-jsoneditor-"+b):(d=this.uuid++,a.setAttribute("data-jsoneditor-"+b,d)),this.__data[d]=c},registerEditor:function(a){return this.editors=this.editors||{},this.editors[a.path]=a,this},unregisterEditor:function(a){return this.editors=this.editors||{},this.editors[a.path]=null,this},getEditor:function(a){if(this.editors)return this.editors[a]},watch:function(a,b){return this.watchlist=this.watchlist||{},this.watchlist[a]=this.watchlist[a]||[],this.watchlist[a].push(b),this},unwatch:function(a,b){if(!this.watchlist||!this.watchlist[a])return this;if(!b)return this.watchlist[a]=null,this;for(var c=[],d=0;d<this.watchlist[a].length;d++)this.watchlist[a][d]!==b&&c.push(this.watchlist[a][d]);return this.watchlist[a]=c.length?c:null,this},notifyWatchers:function(a){if(!this.watchlist||!this.watchlist[a])return this;for(var b=0;b<this.watchlist[a].length;b++)this.watchlist[a][b]()},isEnabled:function(){return!this.root||this.root.isEnabled()},enable:function(){this.root.enable()},disable:function(){this.root.disable()},_getDefinitions:function(a,b){if(a.definitions)for(var c in a.definitions)a.definitions.hasOwnProperty(c)&&(this.refs[b+c]=a.definitions[c],a.definitions[c].definitions&&this._getDefinitions(a.definitions[c],b+c+"/definitions/"))},_getExternalRefs:function(a,b){var c={},d=function(a){for(var b in a)a.hasOwnProperty(b)&&(c[b]=!0)};if(a.$ref&&"object"!=typeof a.$ref){var e=this.refs_prefix+this.refs_counter++;"#"===a.$ref.substr(0,1)||this.refs[a.$ref]||(c[a.$ref]=!0),this.refs_with_info[e]={fetchUrl:b,$ref:a.$ref},a.$ref=e}for(var f in a)if(a.hasOwnProperty(f)&&a[f]&&"object"==typeof a[f])if(Array.isArray(a[f]))for(var g=0;g<a[f].length;g++)a[f][g]&&"object"==typeof a[f][g]&&d(this._getExternalRefs(a[f][g],b));else d(this._getExternalRefs(a[f],b));return c},_getFileBase:function(){var a=this.options.ajaxBase;return"undefined"==typeof a&&(a=this._getFileBaseFromFileLocation(document.location.toString())),a},_getFileBaseFromFileLocation:function(a){var b=a.split("/");return b.pop(),b.join("/")+"/"},_loadExternalRefs:function(a,b,c,d){var e=this,g=this._getExternalRefs(a,c),h=0,i=0,j=!1;f(g,function(a){if(!e.refs[a]){if(!e.options.ajax)throw"Must set ajax option to true to load external ref "+a;e.refs[a]="loading",i++;var c=a;d!=a.substr(0,d.length)&&"http"!=a.substr(0,4)&&"/"!=a.substr(0,1)&&(c=d+a);var f=new XMLHttpRequest;f.overrideMimeType("application/json"),f.open("GET",c,!0),e.options.ajaxCredentials&&(f.withCredentials=e.options.ajaxCredentials),f.onreadystatechange=function(){if(4==f.readyState){if(200!==f.status)throw window.console.log(f),"Failed to fetch ref via ajax- "+a;var d;try{d=JSON.parse(f.responseText)}catch(g){throw window.console.log(g),"Failed to parse external ref "+c}if("boolean"!=typeof d&&"object"!=typeof d||null===d||Array.isArray(d))throw"External ref does not contain a valid schema - "+c;e.refs[a]=d;var k=e._getFileBaseFromFileLocation(c);e._getDefinitions(d,c+"#/definitions/"),e._loadExternalRefs(d,function(){h++,h>=i&&!j&&(j=!0,b())},c,k)}},f.send()}}),i||b()},expandRefs:function(a){for(a=e({},a);a.$ref;){var b=this.refs_with_info[a.$ref];delete a.$ref;var c="";b.$ref.startsWith("#")&&(c=b.fetchUrl);var d=c+b.$ref;this.refs[d]||(d=c+decodeURIComponent(b.$ref)),a=this.extendSchemas(a,e({},this.refs[d]))}return a},expandSchema:function(a,b){var c,d=this,g=e({},a);if("object"==typeof a.type&&(Array.isArray(a.type)?f(a.type,function(b,c){"object"==typeof c&&(a.type[b]=d.expandSchema(c))}):a.type=d.expandSchema(a.type)),"object"==typeof a.disallow&&(Array.isArray(a.disallow)?f(a.disallow,function(b,c){"object"==typeof c&&(a.disallow[b]=d.expandSchema(c))}):a.disallow=d.expandSchema(a.disallow)),a.anyOf&&f(a.anyOf,function(b,c){a.anyOf[b]=d.expandSchema(c)}),a.dependencies&&f(a.dependencies,function(b,c){"object"!=typeof c||Array.isArray(c)||(a.dependencies[b]=d.expandSchema(c))}),a.not&&(a.not=this.expandSchema(a.not)),a.allOf){for(c=0;c<a.allOf.length;c++)g=this.extendSchemas(g,this.expandSchema(a.allOf[c]));delete g.allOf}if(a["extends"]){if(Array.isArray(a["extends"]))for(c=0;c<a["extends"].length;c++)g=this.extendSchemas(g,this.expandSchema(a["extends"][c]));else g=this.extendSchemas(g,this.expandSchema(a["extends"]));delete g["extends"]}if(a.oneOf){var h=e({},g);for(delete h.oneOf,c=0;c<a.oneOf.length;c++)g.oneOf[c]=this.extendSchemas(this.expandSchema(a.oneOf[c]),h)}return this.expandRefs(g)},extendSchemas:function(a,b){a=e({},a),b=e({},b);var c=this,d={};return f(a,function(a,e){"undefined"!=typeof b[a]?"required"!==a&&"defaultProperties"!==a||"object"!=typeof e||!Array.isArray(e)?"type"!==a||"string"!=typeof e&&!Array.isArray(e)?"object"==typeof e&&Array.isArray(e)?d[a]=e.filter(function(c){return b[a].indexOf(c)!==-1}):"object"==typeof e&&null!==e?d[a]=c.extendSchemas(e,b[a]):d[a]=e:("string"==typeof e&&(e=[e]),"string"==typeof b.type&&(b.type=[b.type]),b.type&&b.type.length?d.type=e.filter(function(a){return b.type.indexOf(a)!==-1}):d.type=e,1===d.type.length&&"string"==typeof d.type[0]?d.type=d.type[0]:0===d.type.length&&delete d.type):d[a]=e.concat(b[a]).reduce(function(a,b){return a.indexOf(b)<0&&a.push(b),a},[]):d[a]=e}),f(b,function(b,c){"undefined"==typeof a[b]&&(d[b]=c)}),d},setCopyClipboardContents:function(a){this.copyClipboard=a},getCopyClipboardContents:function(){return this.copyClipboard}},h.defaults={themes:{},templates:{},iconlibs:{},editors:{},languages:{},resolvers:[],custom_validators:[]},h.Validator=c.extend({init:function(a,b,c){this.jsoneditor=a,this.schema=b||this.jsoneditor.schema,this.options=c||{},this.translate=this.jsoneditor.translate||h.defaults.translate},validate:function(a){return this._validateSchema(this.schema,a)},_validateSchema:function(a,c,d){var g,i,j,k=this,l=[],m=JSON.stringify(c);if(d=d||"root",a=e({},this.jsoneditor.expandRefs(a)),"undefined"==typeof c)return("undefined"!=typeof a.required&&a.required===!0||"undefined"==typeof a.required&&this.jsoneditor.options.required_by_default===!0)&&l.push({path:d,property:"required",message:this.translate("error_notset")}),l;if(a["enum"]){for(g=!1,i=0;i<a["enum"].length;i++)m===JSON.stringify(a["enum"][i])&&(g=!0);g||l.push({path:d,property:"enum",message:this.translate("error_enum")})}if(a["extends"])for(i=0;i<a["extends"].length;i++)l=l.concat(this._validateSchema(a["extends"][i],c,d));if(a.allOf)for(i=0;i<a.allOf.length;i++)l=l.concat(this._validateSchema(a.allOf[i],c,d));if(a.anyOf){for(g=!1,i=0;i<a.anyOf.length;i++)if(!this._validateSchema(a.anyOf[i],c,d).length){g=!0;break}g||l.push({path:d,property:"anyOf",message:this.translate("error_anyOf")})}if(a.oneOf){g=0;var n=[];for(i=0;i<a.oneOf.length;i++){var o=this._validateSchema(a.oneOf[i],c,d);for(o.length||g++,j=0;j<o.length;j++)o[j].path=d+".oneOf["+i+"]"+o[j].path.substr(d.length);n=n.concat(o)}1!==g&&(l.push({path:d,property:"oneOf",message:this.translate("error_oneOf",[g])}),l=l.concat(n))}if(a.not&&(this._validateSchema(a.not,c,d).length||l.push({path:d,property:"not",message:this.translate("error_not")})),a.type)if(Array.isArray(a.type)){for(g=!1,i=0;i<a.type.length;i++)if(this._checkType(a.type[i],c)){g=!0;break}g||l.push({path:d,property:"type",message:this.translate("error_type_union")})}else["date","time","datetime-local"].indexOf(a.format)!=-1&&"integer"==a.type?this._checkType("string",""+c)||l.push({path:d,property:"type",message:this.translate("error_type",[a.format])}):this._checkType(a.type,c)||l.push({path:d,property:"type",message:this.translate("error_type",[a.type])});if(a.disallow)if(Array.isArray(a.disallow)){for(g=!0,i=0;i<a.disallow.length;i++)if(this._checkType(a.disallow[i],c)){g=!1;break}g||l.push({path:d,property:"disallow",message:this.translate("error_disallow_union")})}else this._checkType(a.disallow,c)&&l.push({path:d,property:"disallow",message:this.translate("error_disallow",[a.disallow])});if("number"==typeof c){if(a.multipleOf||a.divisibleBy){var p=a.multipleOf||a.divisibleBy;g=c/p===Math.floor(c/p),window.math?g=window.math.mod(window.math.bignumber(c),window.math.bignumber(p)).equals(0):window.Decimal&&(g=new window.Decimal(c).mod(new window.Decimal(p)).equals(0)),g||l.push({path:d,property:a.multipleOf?"multipleOf":"divisibleBy",message:this.translate("error_multipleOf",[p])})}a.hasOwnProperty("maximum")&&(g=a.exclusiveMaximum?c<a.maximum:c<=a.maximum,window.math?g=window.math[a.exclusiveMaximum?"smaller":"smallerEq"](window.math.bignumber(c),window.math.bignumber(a.maximum)):window.Decimal&&(g=new window.Decimal(c)[a.exclusiveMaximum?"lt":"lte"](new window.Decimal(a.maximum))),g||l.push({path:d,property:"maximum",message:this.translate(a.exclusiveMaximum?"error_maximum_excl":"error_maximum_incl",[a.maximum])})),a.hasOwnProperty("minimum")&&(g=a.exclusiveMinimum?c>a.minimum:c>=a.minimum,window.math?g=window.math[a.exclusiveMinimum?"larger":"largerEq"](window.math.bignumber(c),window.math.bignumber(a.minimum)):window.Decimal&&(g=new window.Decimal(c)[a.exclusiveMinimum?"gt":"gte"](new window.Decimal(a.minimum))),g||l.push({path:d,property:"minimum",message:this.translate(a.exclusiveMinimum?"error_minimum_excl":"error_minimum_incl",[a.minimum])}))}else if("string"==typeof c)a.maxLength&&(c+"").length>a.maxLength&&l.push({path:d,property:"maxLength",message:this.translate("error_maxLength",[a.maxLength])}),a.minLength&&(c+"").length<a.minLength&&l.push({path:d,property:"minLength",message:this.translate(1===a.minLength?"error_notempty":"error_minLength",[a.minLength])}),a.pattern&&(new RegExp(a.pattern).test(c)||l.push({path:d,property:"pattern",message:this.translate("error_pattern",[a.pattern])}));else if("object"==typeof c&&null!==c&&Array.isArray(c)){if(a.items)if(Array.isArray(a.items))for(i=0;i<c.length;i++)if(a.items[i])l=l.concat(this._validateSchema(a.items[i],c[i],d+"."+i));else{if(a.additionalItems===!0)break;if(!a.additionalItems){if(a.additionalItems===!1){l.push({path:d,property:"additionalItems",message:this.translate("error_additionalItems")});break}break}l=l.concat(this._validateSchema(a.additionalItems,c[i],d+"."+i))}else for(i=0;i<c.length;i++)l=l.concat(this._validateSchema(a.items,c[i],d+"."+i));if(a.maxItems&&c.length>a.maxItems&&l.push({path:d,property:"maxItems",message:this.translate("error_maxItems",[a.maxItems])}),a.minItems&&c.length<a.minItems&&l.push({path:d,property:"minItems",message:this.translate("error_minItems",[a.minItems])}),a.uniqueItems){var q={};for(i=0;i<c.length;i++){if(g=JSON.stringify(c[i]),q[g]){l.push({path:d,property:"uniqueItems",message:this.translate("error_uniqueItems")});break}q[g]=!0}}}else if("object"==typeof c&&null!==c){if(a.maxProperties){g=0;for(i in c)c.hasOwnProperty(i)&&g++;g>a.maxProperties&&l.push({path:d,property:"maxProperties",message:this.translate("error_maxProperties",[a.maxProperties])})}if(a.minProperties){g=0;for(i in c)c.hasOwnProperty(i)&&g++;g<a.minProperties&&l.push({path:d,property:"minProperties",message:this.translate("error_minProperties",[a.minProperties])})}if("undefined"!=typeof a.required&&Array.isArray(a.required))for(i=0;i<a.required.length;i++)"undefined"==typeof c[a.required[i]]&&l.push({path:d,property:"required",message:this.translate("error_required",[a.required[i]])});var r={};for(i in a.properties)a.properties.hasOwnProperty(i)&&(r[i]=!0,l=l.concat(this._validateSchema(a.properties[i],c[i],d+"."+i)));if(a.patternProperties)for(i in a.patternProperties)if(a.patternProperties.hasOwnProperty(i)){var s=new RegExp(i);for(j in c)c.hasOwnProperty(j)&&s.test(j)&&(r[j]=!0,l=l.concat(this._validateSchema(a.patternProperties[i],c[j],d+"."+j)))}if("undefined"!=typeof a.additionalProperties||!this.jsoneditor.options.no_additional_properties||a.oneOf||a.anyOf||(a.additionalProperties=!1),"undefined"!=typeof a.additionalProperties)for(i in c)if(c.hasOwnProperty(i)&&!r[i]){if(!a.additionalProperties){l.push({path:d,property:"additionalProperties",message:this.translate("error_additional_properties",[i])});break}if(a.additionalProperties===!0)break;l=l.concat(this._validateSchema(a.additionalProperties,c[i],d+"."+i))}if(a.dependencies)for(i in a.dependencies)if(a.dependencies.hasOwnProperty(i)&&"undefined"!=typeof c[i])if(Array.isArray(a.dependencies[i]))for(j=0;j<a.dependencies[i].length;j++)"undefined"==typeof c[a.dependencies[i][j]]&&l.push({path:d,property:"dependencies",message:this.translate("error_dependency",[a.dependencies[i][j]])});else l=l.concat(this._validateSchema(a.dependencies[i],c,d))}if(["date","time","datetime-local"].indexOf(a.format)!=-1){var t={date:/^(\d{4}\D\d{2}\D\d{2})?$/,time:/^(\d{2}:\d{2}(?::\d{2})?)?$/,"datetime-local":/^(\d{4}\D\d{2}\D\d{2} \d{2}:\d{2}(?::\d{2})?)?$/},u={date:'"YYYY-MM-DD"',time:'"HH:MM"',"datetime-local":'"YYYY-MM-DD HH:MM"'},v=this.jsoneditor.getEditor(d),w=v.flatpickr?v.flatpickr.config.dateFormat:u[v.format];if("integer"==a.type)1*c<1?l.push({path:d,property:"format",message:this.translate("error_invalid_epoch")}):c!=Math.abs(parseInt(c))&&l.push({path:d,property:"format",message:this.translate("error_"+v.format.replace(/-/g,"_"),[w])});else if(v.flatpickr){if(""!==c){var x;if("single"!=v.flatpickr.config.mode){var y="range"==v.flatpickr.config.mode?v.flatpickr.l10n.rangeSeparator:", ",z=v.flatpickr.selectedDates.map(function(a){return v.flatpickr.formatDate(a,v.flatpickr.config.dateFormat)});x=z.join(y)}try{if(x){if(x!=c)throw v.flatpickr.config.mode+" mismatch"}else if(v.flatpickr.formatDate(v.flatpickr.parseDate(c,v.flatpickr.config.dateFormat),v.flatpickr.config.dateFormat)!=c)throw"mismatch"}catch(A){var B=v.flatpickr.config.errorDateFormat!==b?v.flatpickr.config.errorDateFormat:v.flatpickr.config.dateFormat;l.push({path:d,property:"format",message:this.translate("error_"+v.format.replace(/-/g,"_"),[B])})}}}else t[v.format].test(c)||l.push({path:d,property:"format",message:this.translate("error_"+v.format.replace(/-/g,"_"),[u[v.format]])})}return f(h.defaults.custom_validators,function(b,e){l=l.concat(e.call(k,a,c,d))}),this.options.custom_validators&&f(this.options.custom_validators,function(b,e){l=l.concat(e.call(k,a,c,d))}),l},_checkType:function(a,b){return"string"==typeof a?"string"===a?"string"==typeof b:"number"===a?"number"==typeof b:"integer"===a?"number"==typeof b&&b===Math.floor(b):"boolean"===a?"boolean"==typeof b:"array"===a?Array.isArray(b):"object"===a?null!==b&&!Array.isArray(b)&&"object"==typeof b:"null"!==a||null===b:!this._validateSchema(a,b).length}}),h.AbstractEditor=c.extend({onChildEditorChange:function(a){this.onChange(!0)},notify:function(){this.path&&this.jsoneditor.notifyWatchers(this.path)},change:function(){this.parent?this.parent.onChildEditorChange(this):this.jsoneditor&&this.jsoneditor.onChange()},onChange:function(a){this.notify(),this.watch_listener&&this.watch_listener(),a&&this.change()},register:function(){this.jsoneditor.registerEditor(this),this.onChange()},unregister:function(){this.jsoneditor&&this.jsoneditor.unregisterEditor(this)},getNumColumns:function(){return 12},init:function(a){this.jsoneditor=a.jsoneditor,this.theme=this.jsoneditor.theme,this.template_engine=this.jsoneditor.template,this.iconlib=this.jsoneditor.iconlib,this.translate=this.jsoneditor.translate||h.defaults.translate,this.original_schema=a.schema,this.schema=this.jsoneditor.expandSchema(this.original_schema),this.options=e({},this.options||{},this.schema.options||{},a.schema.options||{},a),a.path||this.schema.id||(this.schema.id="root"),this.path=a.path||"root",this.formname=a.formname||this.path.replace(/\.([^.]+)/g,"[$1]"),this.jsoneditor.options.form_name_root&&(this.formname=this.formname.replace(/^root\[/,this.jsoneditor.options.form_name_root+"[")),this.key=this.path.split(".").pop(),this.parent=a.parent,this.link_watchers=[],a.container&&this.setContainer(a.container),this.registerDependencies()},registerDependencies:function(){this.dependenciesFulfilled=!0;var a=this.options.dependencies;if(a){var b=this;Object.keys(a).forEach(function(c){var d=b.path.split(".");d[d.length-1]=c,d=d.join(".");var e=a[c];b.jsoneditor.watch(d,function(){b.checkDependency(d,e)})})}},checkDependency:function(a,c){var d=this.control||this.container;if(this.path!==a&&d){var e=this,f=this.jsoneditor.getEditor(a),g=f?f.getValue():b,h=this.dependenciesFulfilled;this.dependenciesFulfilled=!1,f&&f.dependenciesFulfilled?Array.isArray(c)?c.some(function(a){if(g===a)return e.dependenciesFulfilled=!0,!0}):"object"==typeof c?"object"!=typeof g?this.dependenciesFulfilled=c===g:Object.keys(c).some(function(a){return!!c.hasOwnProperty(a)&&(g.hasOwnProperty(a)&&c[a]===g[a]?void(e.dependenciesFulfilled=!0):(e.dependenciesFulfilled=!1,!0))}):"string"==typeof c||"number"==typeof c?this.dependenciesFulfilled=g===c:"boolean"==typeof c&&(c?this.dependenciesFulfilled=g&&g.length>0:this.dependenciesFulfilled=!g||0===g.length):this.dependenciesFulfilled=!1,this.dependenciesFulfilled!==h&&this.notify(),this.dependenciesFulfilled?d.style.display="block":d.style.display="none"}},setContainer:function(a){this.container=a,this.schema.id&&this.container.setAttribute("data-schemaid",this.schema.id),this.schema.type&&"string"==typeof this.schema.type&&this.container.setAttribute("data-schematype",this.schema.type),this.container.setAttribute("data-schemapath",this.path)},preBuild:function(){},build:function(){},postBuild:function(){this.setupWatchListeners(),this.addLinks(),this.setValue(this.getDefault(),!0),this.updateHeaderText(),this.register(),this.onWatchedFieldChange()},setupWatchListeners:function(){var a=this;if(this.watched={},this.schema.vars&&(this.schema.watch=this.schema.vars),this.watched_values={},this.watch_listener=function(){a.refreshWatchedFieldValues()&&a.onWatchedFieldChange()},this.schema.hasOwnProperty("watch")){var b,c,d,e,f;for(var g in this.schema.watch)if(this.schema.watch.hasOwnProperty(g)){if(b=this.schema.watch[g],Array.isArray(b)){if(b.length<2)continue;c=[b[0]].concat(b[1].split("."))}else c=b.split("."),a.theme.closest(a.container,'[data-schemaid="'+c[0]+'"]')||c.unshift("#");if(d=c.shift(),"#"===d&&(d=a.jsoneditor.schema.id||"root"),e=a.theme.closest(a.container,'[data-schemaid="'+d+'"]'),!e)throw"Could not find ancestor node with id "+d;f=e.getAttribute("data-schemapath")+"."+c.join("."),a.jsoneditor.watch(f,a.watch_listener),a.watched[g]=f}}this.schema.headerTemplate&&(this.header_template=this.jsoneditor.compileTemplate(this.schema.headerTemplate,this.template_engine))},addLinks:function(){if(!this.no_link_holder&&(this.link_holder=this.theme.getLinksHolder(),this.container.appendChild(this.link_holder),this.schema.links))for(var a=0;a<this.schema.links.length;a++)this.addLink(this.getLink(this.schema.links[a]))},onMove:function(){},getButton:function(a,b,c){var d="json-editor-btn-"+b;b=this.iconlib?this.iconlib.getIcon(b):null,!b&&c&&(a=c,c=null);var e=this.theme.getButton(a,b,c);return e.classList.add(d),e},setButtonText:function(a,b,c,d){return c=this.iconlib?this.iconlib.getIcon(c):null,!c&&d&&(b=d,d=null),this.theme.setButtonText(a,b,c,d)},addLink:function(a){this.link_holder&&this.link_holder.appendChild(a)},getLink:function(a){var b,c,d=a.mediaType||"application/javascript",e=d.split("/")[0],f=this.jsoneditor.compileTemplate(a.href,this.template_engine),g=this.jsoneditor.compileTemplate(a.rel?a.rel:a.href,this.template_engine),h=null;if(a.download&&(h=a.download),h&&h!==!0&&(h=this.jsoneditor.compileTemplate(h,this.template_engine)),"image"===e){b=this.theme.getBlockLinkHolder(),c=document.createElement("a"),c.setAttribute("target","_blank");var i=document.createElement("img");this.theme.createImageLink(b,c,i),this.link_watchers.push(function(a){var b=f(a),d=g(a);c.setAttribute("href",b),c.setAttribute("title",d||b),i.setAttribute("src",b)})}else if(["audio","video"].indexOf(e)>=0){b=this.theme.getBlockLinkHolder(),c=this.theme.getBlockLink(),c.setAttribute("target","_blank");var j=document.createElement(e);j.setAttribute("controls","controls"),this.theme.createMediaLink(b,c,j),this.link_watchers.push(function(a){var b=f(a),d=g(a);c.setAttribute("href",b),c.textContent=d||b,j.setAttribute("src",b)})}else c=b=this.theme.getBlockLink(),b.setAttribute("target","_blank"),b.textContent=a.rel,this.link_watchers.push(function(a){var c=f(a),d=g(a);b.setAttribute("href",c),b.textContent=d||c});return h&&c&&(h===!0?c.setAttribute("download",""):this.link_watchers.push(function(a){c.setAttribute("download",h(a))})),a["class"]&&c.classList.add(a["class"]),b},refreshWatchedFieldValues:function(){if(this.watched_values){var a={},b=!1,c=this;if(this.watched){var d,e;for(var f in this.watched)this.watched.hasOwnProperty(f)&&(e=c.jsoneditor.getEditor(this.watched[f]),d=e?e.getValue():null,c.watched_values[f]!==d&&(b=!0),a[f]=d)}return a.self=this.getValue(),this.watched_values.self!==a.self&&(b=!0),this.watched_values=a,b}},getWatchedFieldValues:function(){return this.watched_values},updateHeaderText:function(){if(this.header)if(this.header.children.length){for(var a=0;a<this.header.childNodes.length;a++)if(3===this.header.childNodes[a].nodeType){this.header.childNodes[a].nodeValue=this.getHeaderText();break}}else this.header.textContent=this.getHeaderText()},getHeaderText:function(a){return this.header_text?this.header_text:a?this.schema.title:this.getTitle()},onWatchedFieldChange:function(){var a;if(this.header_template){a=e(this.getWatchedFieldValues(),{key:this.key,i:this.key,i0:1*this.key,i1:1*this.key+1,title:this.getTitle()});var b=this.header_template(a);b!==this.header_text&&(this.header_text=b,this.updateHeaderText(),this.notify())}if(this.link_watchers.length){a=this.getWatchedFieldValues();for(var c=0;c<this.link_watchers.length;c++)this.link_watchers[c](a)}},setValue:function(a){this.value=a},getValue:function(){return this.dependenciesFulfilled?this.value:b},refreshValue:function(){},getChildEditors:function(){return!1},destroy:function(){var a=this;this.unregister(this),f(this.watched,function(b,c){a.jsoneditor.unwatch(c,a.watch_listener)}),this.watched=null,this.watched_values=null,this.watch_listener=null,this.header_text=null,this.header_template=null,this.value=null,this.container&&this.container.parentNode&&this.container.parentNode.removeChild(this.container),this.container=null,this.jsoneditor=null,this.schema=null,this.path=null,this.key=null,this.parent=null},getDefault:function(){if("undefined"!=typeof this.schema["default"])return this.schema["default"];if("undefined"!=typeof this.schema["enum"])return this.schema["enum"][0];var a=this.schema.type||this.schema.oneOf;if(a&&Array.isArray(a)&&(a=a[0]),a&&"object"==typeof a&&(a=a.type),a&&Array.isArray(a)&&(a=a[0]),"string"==typeof a){if("number"===a)return 0;if("boolean"===a)return!1;if("integer"===a)return 0;if("string"===a)return"";if("object"===a)return{};if("array"===a)return[]}return null},getTitle:function(){return this.schema.title||this.key},enable:function(){this.disabled=!1},disable:function(){this.disabled=!0},isEnabled:function(){return!this.disabled},isRequired:function(){return"boolean"==typeof this.schema.required?this.schema.required:this.parent&&this.parent.schema&&Array.isArray(this.parent.schema.required)?this.parent.schema.required.indexOf(this.key)>-1:!!this.jsoneditor.options.required_by_default},getDisplayText:function(a){var b=[],c={};f(a,function(a,b){b.title&&(c[b.title]=c[b.title]||0,c[b.title]++),b.description&&(c[b.description]=c[b.description]||0,c[b.description]++),b.format&&(c[b.format]=c[b.format]||0,c[b.format]++),b.type&&(c[b.type]=c[b.type]||0,c[b.type]++)}),f(a,function(a,d){var e;e="string"==typeof d?d:d.title&&c[d.title]<=1?d.title:d.format&&c[d.format]<=1?d.format:d.type&&c[d.type]<=1?d.type:d.description&&c[d.description]<=1?d.descripton:d.title?d.title:d.format?d.format:d.type?d.type:d.description?d.description:JSON.stringify(d).length<500?JSON.stringify(d):"type",b.push(e)});var d={};return f(b,function(a,e){d[e]=d[e]||0,d[e]++,c[e]>1&&(b[a]=e+" "+d[e])}),b},getValidId:function(a){return a=a===b?"":a.toString(),a.replace(/\s+/g,"-")},setInputAttributes:function(a){if(this.schema.options&&this.schema.options.inputAttributes){var b=this.schema.options.inputAttributes,c=["name","type"].concat(a);for(var d in b)b.hasOwnProperty(d)&&c.indexOf(d.toLowerCase())==-1&&this.input.setAttribute(d,b[d])}},getOption:function(a){try{throw"getOption is deprecated"}catch(b){window.console.error(b)}return this.options[a]},showValidationErrors:function(a){}}),h.defaults.editors["null"]=h.AbstractEditor.extend({getValue:function(){return this.dependenciesFulfilled?null:b},setValue:function(){this.onChange()},getNumColumns:function(){return 2}}),h.defaults.editors.string=h.AbstractEditor.extend({register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},setValue:function(a,b,c){if((!this.template||c)&&(null===a||"undefined"==typeof a?a="":"object"==typeof a?a=JSON.stringify(a):"string"!=typeof a&&(a=""+a),
          +
          15 a!==this.serialized)){var d=this.sanitize(a);if(this.input.value!==d){this.input.value=d,this.sceditor_instance?this.sceditor_instance.val(d):this.SimpleMDE?this.SimpleMDE.value(d):this.ace_editor&&(this.ace_editor.setValue(d),this.ace_editor.session.getSelection().clearSelection(),this.ace_editor.resize());var e=c||this.getValue()!==a;this.refreshValue(),b?this.is_dirty=!1:"change"===this.jsoneditor.options.show_errors&&(this.is_dirty=!0),this.adjust_height&&this.adjust_height(this.input),this.onChange(e)}}},getNumColumns:function(){var a,b=Math.ceil(Math.max(this.getTitle().length,this.schema.maxLength||0,this.schema.minLength||0)/5);return a="textarea"===this.input_type?6:["text","email"].indexOf(this.input_type)>=0?4:2,Math.min(12,Math.max(b,a))},build:function(){var a=this;if(this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.format=this.schema.format,!this.format&&this.schema.media&&this.schema.media.type&&(this.format=this.schema.media.type.replace(/(^(application|text)\/(x-)?(script\.)?)|(-source$)/g,"")),!this.format&&this.options.default_format&&(this.format=this.options.default_format),this.options.format&&(this.format=this.options.format),this.format)if("textarea"===this.format)this.input_type="textarea",this.input=this.theme.getTextareaInput();else if("range"===this.format){this.input_type="range";var b=this.schema.minimum||0,c=this.schema.maximum||Math.max(100,b+1),d=1;this.schema.multipleOf&&(b%this.schema.multipleOf&&(b=Math.ceil(b/this.schema.multipleOf)*this.schema.multipleOf),c%this.schema.multipleOf&&(c=Math.floor(c/this.schema.multipleOf)*this.schema.multipleOf),d=this.schema.multipleOf),this.input=this.theme.getRangeInput(b,c,d)}else["actionscript","batchfile","bbcode","c","c++","cpp","coffee","csharp","css","dart","django","ejs","erlang","golang","groovy","handlebars","haskell","haxe","html","ini","jade","java","javascript","json","less","lisp","lua","makefile","markdown","matlab","mysql","objectivec","pascal","perl","pgsql","php","python","r","ruby","sass","scala","scss","smarty","sql","sqlserver","stylus","svg","twig","vbscript","xml","yaml"].indexOf(this.format)>=0?(this.input_type=this.format,this.source_code=!0,this.input=this.theme.getTextareaInput()):(this.input_type=this.format,this.input=this.theme.getFormInputField(this.input_type));else this.input_type="text",this.input=this.theme.getFormInputField(this.input_type);if("undefined"!=typeof this.schema.maxLength&&this.input.setAttribute("maxlength",this.schema.maxLength),"undefined"!=typeof this.schema.pattern?this.input.setAttribute("pattern",this.schema.pattern):"undefined"!=typeof this.schema.minLength&&this.input.setAttribute("pattern",".{"+this.schema.minLength+",}"),this.options.compact?this.container.classList.add("compact"):this.options.input_width&&(this.input.style.width=this.options.input_width),(this.schema.readOnly||this.schema.readonly||this.schema.template)&&(this.always_disabled=!0,this.input.setAttribute("readonly","true")),this.setInputAttributes(["maxlength","pattern","readonly","min","max","step"]),this.input.addEventListener("change",function(b){if(b.preventDefault(),b.stopPropagation(),a.schema.template)return void(this.value=a.value);var c=this.value,d=a.sanitize(c);c!==d&&(this.value=d),a.is_dirty=!0,a.refreshValue(),a.onChange(!0)}),this.options.input_height&&(this.input.style.height=this.options.input_height),this.options.expand_height&&(this.adjust_height=function(a){if(a){var b,c=a.offsetHeight;if(a.offsetHeight<a.scrollHeight)for(b=0;a.offsetHeight<a.scrollHeight+3&&!(b>100);)b++,c++,a.style.height=c+"px";else{for(b=0;a.offsetHeight>=a.scrollHeight+3&&!(b>100);)b++,c--,a.style.height=c+"px";a.style.height=c+1+"px"}}},this.input.addEventListener("keyup",function(b){a.adjust_height(this)}),this.input.addEventListener("change",function(b){a.adjust_height(this)}),this.adjust_height()),this.format&&this.input.setAttribute("data-schemaformat",this.format),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),"range"===this.format){var e=document.createElement("output");e.setAttribute("class","range-output"),this.control.appendChild(e),e.value=this.schema["default"],this.input.addEventListener("change",function(){e.value=a.input.value}),this.input.addEventListener("input",function(){e.value=a.input.value})}this.container.appendChild(this.control),window.requestAnimationFrame(function(){a.input.parentNode&&a.afterInputReady(),a.adjust_height&&a.adjust_height(a.input)}),this.schema.template?(this.template=this.jsoneditor.compileTemplate(this.schema.template,this.template_engine),this.refreshValue()):this.refreshValue()},postBuild:function(){this._super(),window.Cleave&&this.schema.options&&"object"==typeof this.schema.options.cleave&&(this.cleave=new window.Cleave(this.input,this.schema.options.cleave))},enable:function(){this.always_disabled||(this.input.disabled=!1,this._super())},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this._super()},afterInputReady:function(){var a,b=this;if(this.source_code)if(this.options.wysiwyg&&["html","bbcode"].indexOf(this.input_type)>=0&&window.jQuery&&window.jQuery.fn&&window.jQuery.fn.sceditor)a=e({},{plugins:"html"===b.input_type?"xhtml":"bbcode",emoticonsEnabled:!1,width:"100%",height:300},h.plugins.sceditor,b.options.sceditor_options||{}),window.jQuery(b.input).sceditor(a),b.sceditor_instance=window.jQuery(b.input).sceditor("instance"),b.sceditor_instance.blur(function(){var a=window.jQuery("<div>"+b.sceditor_instance.val()+"</div>");window.jQuery("#sceditor-start-marker,#sceditor-end-marker,.sceditor-nlf",a).remove(),b.input.value=a.html(),b.value=b.input.value,b.is_dirty=!0,b.onChange(!0)});else if("markdown"===this.input_type&&window.SimpleMDE)a=e({},h.plugins.SimpleMDE,{element:this.input}),this.SimpleMDE=new window.SimpleMDE(a),this.SimpleMDE.codemirror.on("change",function(){b.value=b.SimpleMDE.value(),b.is_dirty=!0,b.onChange(!0)});else if(window.ace){var c=this.input_type;"cpp"!==c&&"c++"!==c&&"c"!==c||(c="c_cpp"),this.ace_container=document.createElement("div"),this.ace_container.style.width="100%",this.ace_container.style.position="relative",this.ace_container.style.height="400px",this.input.parentNode.insertBefore(this.ace_container,this.input),this.input.style.display="none",this.ace_editor=window.ace.edit(this.ace_container);var d=this.schema.options&&this.schema.options.ace;d&&this.ace_editor.setOptions(d),this.ace_editor.setValue(this.getValue()),this.ace_editor.session.getSelection().clearSelection(),this.ace_editor.resize(),h.plugins.ace.theme&&this.ace_editor.setTheme("ace/theme/"+h.plugins.ace.theme),this.ace_editor.getSession().setMode("ace/mode/"+this.schema.format),this.ace_editor.on("change",function(){var a=b.ace_editor.getValue();b.input.value=a,b.refreshValue(),b.is_dirty=!0,b.onChange(!0)})}b.theme.afterInputReady(b.input)},refreshValue:function(){this.value=this.input.value,"string"!=typeof this.value&&(this.value=""),this.serialized=this.value},destroy:function(){this.sceditor_instance?this.sceditor_instance.destroy():this.SimpleMDE?(this.SimpleMDE.toTextArea(),this.SimpleMDE=null):this.ace_editor&&this.ace_editor.destroy(),this.cleave&&this.cleave.destroy(),this.template=null,this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this._super()},sanitize:function(a){return a},onWatchedFieldChange:function(){var a;this.template&&(a=this.getWatchedFieldValues(),this.setValue(this.template(a),!1,!0)),this._super()},showValidationErrors:function(a){var b=this;if("always"===this.jsoneditor.options.show_errors);else if(!this.is_dirty&&this.previous_error_setting===this.jsoneditor.options.show_errors)return;this.previous_error_setting=this.jsoneditor.options.show_errors;var c=[];f(a,function(a,d){d.path===b.path&&c.push(d.message)}),c.length?this.theme.addInputError(this.input,c.join(". ")+"."):this.theme.removeInputError(this.input)}}),h.defaults.editors.hidden=h.AbstractEditor.extend({register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},setValue:function(a,b,c){if((!this.template||c)&&(null===a||"undefined"==typeof a?a="":"object"==typeof a?a=JSON.stringify(a):"string"!=typeof a&&(a=""+a),a!==this.serialized)){var d=this.sanitize(a);if(this.input.value!==d){this.input.value=d;var e=c||this.getValue()!==a;this.refreshValue(),b?this.is_dirty=!1:"change"===this.jsoneditor.options.show_errors&&(this.is_dirty=!0),this.adjust_height&&this.adjust_height(this.input),this.onChange(e)}}},getNumColumns:function(){return 2},enable:function(){this._super()},disable:function(){this._super()},refreshValue:function(){this.value=this.input.value,"string"!=typeof this.value&&(this.value=""),this.serialized=this.value},destroy:function(){this.template=null,this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this._super()},sanitize:function(a){return a},onWatchedFieldChange:function(){var a;this.template&&(a=this.getWatchedFieldValues(),this.setValue(this.template(a),!1,!0)),this._super()},build:function(){this.format=this.schema.format,!this.format&&this.options.default_format&&(this.format=this.options.default_format),this.options.format&&(this.format=this.options.format),this.input_type="hidden",this.input=this.theme.getFormInputField(this.input_type),this.format&&this.input.setAttribute("data-schemaformat",this.format),this.container.appendChild(this.input),this.schema.template?(this.template=this.jsoneditor.compileTemplate(this.schema.template,this.template_engine),this.refreshValue()):this.refreshValue()}}),h.defaults.editors.number=h.defaults.editors.string.extend({build:function(){if(this._super(),"undefined"!=typeof this.schema.minimum){var a=this.schema.minimum;"undefined"!=typeof this.schema.exclusiveMinimum&&(a+=1),this.input.setAttribute("min",a)}if("undefined"!=typeof this.schema.maximum){var b=this.schema.maximum;"undefined"!=typeof this.schema.exclusiveMaximum&&(b-=1),this.input.setAttribute("max",b)}if("undefined"!=typeof this.schema.step){var c=this.schema.step||1;this.input.setAttribute("step",c)}this.setInputAttributes(["maxlength","pattern","readonly","min","max","step"])},sanitize:function(a){return(a+"").replace(/[^0-9\.\-eE]/g,"")},getNumColumns:function(){return 2},getValue:function(){return this.dependenciesFulfilled?""===this.value?b:1*this.value:b}}),h.defaults.editors.integer=h.defaults.editors.number.extend({sanitize:function(a){return a+="",a.replace(/[^0-9\-]/g,"")},getNumColumns:function(){return 2}}),h.defaults.editors.rating=h.defaults.editors.integer.extend({build:function(){var a,b=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description));var c="json-editor-style-rating",d=document.getElementById(c);if(!d){var e=document.createElement("style");e.id=c,e.type="text/css",e.innerHTML=" .rating-container { display: inline-block; clear: both; } .rating { float:left; } /* :not(:checked) is a filter, so that browsers that don’t support :checked don’t follow these rules. Every browser that supports :checked also supports :not(), so it doesn’t make the test unnecessarily selective */ .rating:not(:checked) > input { position:absolute; top:-9999px; clip:rect(0,0,0,0); } .rating:not(:checked) > label { float:right; width:1em; padding:0 .1em; overflow:hidden; white-space:nowrap; cursor:pointer; color:#ddd; } .rating:not(:checked) > label:before { content: '★ '; } .rating > input:checked ~ label { color: #FFB200; } .rating:not([readOnly]):not(:checked) > label:hover, .rating:not([readOnly]):not(:checked) > label:hover ~ label { color: #FFDA00; } .rating:not([readOnly]) > input:checked + label:hover, .rating:not([readOnly]) > input:checked + label:hover ~ label, .rating:not([readOnly]) > input:checked ~ label:hover, .rating:not([readOnly]) > input:checked ~ label:hover ~ label, .rating:not([readOnly]) > label:hover ~ input:checked ~ label { color: #FF8C0D; } .rating:not([readOnly]) > label:active { position:relative; top:2px; left:2px; }",document.getElementsByTagName("head")[0].appendChild(e)}this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input);var g=document.createElement("div");g.classList.add("rating-container");var h=document.createElement("div");h.setAttribute("name",this.formname),h.classList.add("rating"),g.appendChild(h),this.options.compact&&this.container.setAttribute("class",this.container.getAttribute("class")+" compact");var i=this.schema.maximum?this.schema.maximum:5;for(this.schema.exclusiveMaximum&&i--,this.inputs=[],a=i;a>0;a--){var j=this.formname+a,k=this.theme.getFormInputField("radio");k.setAttribute("id",j),k.setAttribute("value",a),k.setAttribute("name",this.formname),h.appendChild(k),this.inputs.push(k);var l=document.createElement("label");l.setAttribute("for",j),l.appendChild(document.createTextNode(a+(1==a?" star":" stars"))),h.appendChild(l)}(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,f(this.inputs,function(a,b){h.setAttribute("readOnly","readOnly"),b.disabled=!0})),g.addEventListener("change",function(a){a.preventDefault(),a.stopPropagation(),b.input.value=a.srcElement.value,b.is_dirty=!0,b.refreshValue(),b.watch_listener(),b.jsoneditor.notifyWatchers(b.path),b.parent?b.parent.onChildEditorChange(b):b.jsoneditor.onChange()}),this.control=this.theme.getFormControl(this.label,g,this.description),this.container.appendChild(this.control),this.refreshValue()},setValue:function(a){var b=this.sanitize(a);if(this.value!==b){var c=this;f(this.inputs,function(a,d){if(d.value===b)return d.checked=!0,c.value=b,c.input.value=c.value,c.watch_listener(),c.jsoneditor.notifyWatchers(c.path),!1})}}}),h.defaults.editors.object=h.AbstractEditor.extend({getDefault:function(){return e({},this.schema["default"]||{})},getChildEditors:function(){return this.editors},register:function(){if(this._super(),this.editors)for(var a in this.editors)this.editors.hasOwnProperty(a)&&this.editors[a].register()},unregister:function(){if(this._super(),this.editors)for(var a in this.editors)this.editors.hasOwnProperty(a)&&this.editors[a].unregister()},getNumColumns:function(){return Math.max(Math.min(12,this.maxwidth),3)},enable:function(){if(!this.always_disabled&&(this.editjson_button&&(this.editjson_button.disabled=!1),this.addproperty_button&&(this.addproperty_button.disabled=!1),this._super(),this.editors))for(var a in this.editors)this.editors.hasOwnProperty(a)&&this.editors[a].enable()},disable:function(a){if(a&&(this.always_disabled=!0),this.editjson_button&&(this.editjson_button.disabled=!0),this.addproperty_button&&(this.addproperty_button.disabled=!0),this.hideEditJSON(),this._super(),this.editors)for(var b in this.editors)this.editors.hasOwnProperty(b)&&this.editors[b].disable(a)},layoutEditors:function(){var a,b,c=this;if(this.row_container){this.property_order=Object.keys(this.editors),this.property_order=this.property_order.sort(function(a,b){var d=c.editors[a].schema.propertyOrder,e=c.editors[b].schema.propertyOrder;return"number"!=typeof d&&(d=1e3),"number"!=typeof e&&(e=1e3),d-e});var d,e="categories"===this.format;if("grid"===this.format){var h=[];for(f(this.property_order,function(a,b){var d=c.editors[b];if(!d.property_removed){for(var e=!1,f=d.options.hidden?0:d.options.grid_columns||d.getNumColumns(),g=d.options.hidden?0:d.container.offsetHeight,i=0;i<h.length;i++)h[i].width+f<=12&&(!g||.5*h[i].minh<g&&2*h[i].maxh>g)&&(e=i);e===!1&&(h.push({width:0,minh:999999,maxh:0,editors:[]}),e=h.length-1),h[e].editors.push({key:b,width:f,height:g}),h[e].width+=f,h[e].minh=Math.min(h[e].minh,g),h[e].maxh=Math.max(h[e].maxh,g)}}),a=0;a<h.length;a++)if(h[a].width<12){var i=!1,j=0;for(b=0;b<h[a].editors.length;b++)i===!1?i=b:h[a].editors[b].width>h[a].editors[i].width&&(i=b),h[a].editors[b].width*=12/h[a].width,h[a].editors[b].width=Math.floor(h[a].editors[b].width),j+=h[a].editors[b].width;j<12&&(h[a].editors[i].width+=12-j),h[a].width=12}if(this.layout===JSON.stringify(h))return!1;for(this.layout=JSON.stringify(h),d=document.createElement("div"),a=0;a<h.length;a++){var k=this.theme.getGridRow();for(d.appendChild(k),b=0;b<h[a].editors.length;b++){var l=h[a].editors[b].key,m=this.editors[l];m.options.hidden?m.container.style.display="none":this.theme.setGridColumnSize(m.container,h[a].editors[b].width),k.appendChild(m.container)}}}else{if(d=document.createElement("div"),e){var n=document.createElement("div"),o=this.theme.getTopTabHolder(this.schema.title),p=this.theme.getTopTabContentHolder(o);for(f(this.property_order,function(a,b){var d=c.editors[b];if(!d.property_removed){var e=c.theme.getTabContent(),f=d.schema&&("object"===d.schema.type||"array"===d.schema.type);e.isObjOrArray=f;var g=c.theme.getGridRow();d.tab||("undefined"==typeof c.basicPane?c.addRow(d,o,e):c.addRow(d,o,c.basicPane)),e.id=c.getValidId(d.tab_text.textContent),f?(e.appendChild(g),p.appendChild(e),c.theme.addTopTab(o,d.tab)):(n.appendChild(g),p.childElementCount>0?p.firstChild.isObjOrArray&&(e.appendChild(n),p.insertBefore(e,p.firstChild),c.theme.insertBasicTopTab(d.tab,o),d.basicPane=e):(e.appendChild(n),p.appendChild(e),c.theme.addTopTab(o,d.tab),d.basicPane=e)),d.options.hidden?d.container.style.display="none":c.theme.setGridColumnSize(d.container,12),g.appendChild(d.container),d.rowPane=e}});this.tabPanesContainer.firstChild;)this.tabPanesContainer.removeChild(this.tabPanesContainer.firstChild);var q=this.tabs_holder.parentNode;q.removeChild(q.firstChild),q.appendChild(o),this.tabPanesContainer=p,this.tabs_holder=o;var r=this.theme.getFirstTab(this.tabs_holder);return void(r&&g(r,"click"))}f(this.property_order,function(a,b){var e=c.editors[b];if(!e.property_removed){var f=c.theme.getGridRow();d.appendChild(f),e.options.hidden?e.container.style.display="none":c.theme.setGridColumnSize(e.container,12),f.appendChild(e.container)}})}for(;this.row_container.firstChild;)this.row_container.removeChild(this.row_container.firstChild);this.row_container.appendChild(d)}},getPropertySchema:function(a){var b=this.schema.properties[a]||{};b=e({},b);var c=!!this.schema.properties[a];if(this.schema.patternProperties)for(var d in this.schema.patternProperties)if(this.schema.patternProperties.hasOwnProperty(d)){var f=new RegExp(d);f.test(a)&&(b.allOf=b.allOf||[],b.allOf.push(this.schema.patternProperties[d]),c=!0)}return!c&&this.schema.additionalProperties&&"object"==typeof this.schema.additionalProperties&&(b=e({},this.schema.additionalProperties)),b},preBuild:function(){this._super(),this.editors={},this.cached_editors={};var a=this;if(this.format=this.options.layout||this.options.object_layout||this.schema.format||this.jsoneditor.options.object_layout||"normal",this.schema.properties=this.schema.properties||{},this.minwidth=0,this.maxwidth=0,this.options.table_row)f(this.schema.properties,function(b,c){var d=a.jsoneditor.getEditorClass(c);a.editors[b]=a.jsoneditor.createEditor(d,{jsoneditor:a.jsoneditor,schema:c,path:a.path+"."+b,parent:a,compact:!0,required:!0}),a.editors[b].preBuild();var e=a.editors[b].options.hidden?0:a.editors[b].options.grid_columns||a.editors[b].getNumColumns();a.minwidth+=e,a.maxwidth+=e}),this.no_link_holder=!0;else{if(this.options.table)throw"Not supported yet";this.schema.defaultProperties||(this.jsoneditor.options.display_required_only||this.options.display_required_only?(this.schema.defaultProperties=[],f(this.schema.properties,function(b,c){a.isRequired({key:b,schema:c})&&a.schema.defaultProperties.push(b)})):a.schema.defaultProperties=Object.keys(a.schema.properties)),a.maxwidth+=1,f(this.schema.defaultProperties,function(b,c){a.addObjectProperty(c,!0),a.editors[c]&&(a.minwidth=Math.max(a.minwidth,a.editors[c].options.grid_columns||a.editors[c].getNumColumns()),a.maxwidth+=a.editors[c].options.grid_columns||a.editors[c].getNumColumns())})}this.property_order=Object.keys(this.editors),this.property_order=this.property_order.sort(function(b,c){var d=a.editors[b].schema.propertyOrder,e=a.editors[c].schema.propertyOrder;return"number"!=typeof d&&(d=1e3),"number"!=typeof e&&(e=1e3),d-e})},addTab:function(a){var b=this,c=b.rows[a].schema&&("object"===b.rows[a].schema.type||"array"===b.rows[a].schema.type);b.tabs_holder&&(b.rows[a].tab_text=document.createElement("span"),c?b.rows[a].tab_text.textContent=b.rows[a].getHeaderText():b.rows[a].tab_text.textContent="undefined"==typeof b.schema.basicCategoryTitle?"Basic":b.schema.basicCategoryTitle,b.rows[a].tab=b.theme.getTopTab(b.rows[a].tab_text,this.getValidId(b.rows[a].tab_text.textContent)),b.rows[a].tab.addEventListener("click",function(c){b.active_tab=b.rows[a].tab,b.refreshTabs(),c.preventDefault(),c.stopPropagation()}))},addRow:function(a,b,c){var d=this,e=this.rows.length,f="object"===a.schema.type||"array"===a.schema.type;d.rows[e]=a,d.rows[e].rowPane=c,f?(d.addTab(e),d.theme.addTopTab(b,d.rows[e].tab)):"undefined"==typeof d.basicTab?(d.addTab(e),d.basicTab=e,d.basicPane=c,d.theme.addTopTab(b,d.rows[e].tab)):(d.rows[e].tab=d.rows[d.basicTab].tab,d.rows[e].tab_text=d.rows[d.basicTab].tab_text,d.rows[e].rowPane=d.rows[d.basicTab].rowPane)},refreshTabs:function(a){var b=this,c="undefined"!=typeof b.basicTab,d=!1;f(this.rows,function(e,f){f.tab&&f.rowPane&&f.rowPane.parentNode&&(c&&f.tab==b.rows[b.basicTab].tab&&d||(a?f.tab_text.textContent=f.getHeaderText():(c&&f.tab==b.rows[b.basicTab].tab&&(d=!0),f.tab===b.active_tab?b.theme.markTabActive(f):b.theme.markTabInactive(f))))})},build:function(){var a=this,b="categories"===this.format;if(this.rows=[],this.active_tab=null,this.options.table_row)this.editor_holder=this.container,f(this.editors,function(b,c){var d=a.theme.getTableCell();a.editor_holder.appendChild(d),c.setContainer(d),c.build(),c.postBuild(),a.editors[b].options.hidden&&(d.style.display="none"),a.editors[b].options.input_width&&(d.style.width=a.editors[b].options.input_width)});else{if(this.options.table)throw"Not supported yet";this.header=document.createElement("span"),this.header.textContent=this.getTitle(),this.title=this.theme.getHeader(this.header),this.container.appendChild(this.title),this.container.style.position="relative",this.editjson_holder=this.theme.getModal(),this.editjson_textarea=this.theme.getTextareaInput(),this.editjson_textarea.style.height="170px",this.editjson_textarea.style.width="300px",this.editjson_textarea.style.display="block",this.editjson_save=this.getButton("Save","save","Save"),this.editjson_save.classList.add("json-editor-btntype-save"),this.editjson_save.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.saveJSON()}),this.editjson_copy=this.getButton("Copy","copy","Copy"),this.editjson_copy.classList.add("json-editor-btntype-copy"),this.editjson_copy.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.copyJSON()}),this.editjson_cancel=this.getButton("Cancel","cancel","Cancel"),this.editjson_cancel.classList.add("json-editor-btntype-cancel"),this.editjson_cancel.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.hideEditJSON()}),this.editjson_holder.appendChild(this.editjson_textarea),this.editjson_holder.appendChild(this.editjson_save),this.editjson_holder.appendChild(this.editjson_copy),this.editjson_holder.appendChild(this.editjson_cancel),this.addproperty_holder=this.theme.getModal(),this.addproperty_list=document.createElement("div"),this.addproperty_list.style.width="295px",this.addproperty_list.style.maxHeight="160px",this.addproperty_list.style.padding="5px 0",this.addproperty_list.style.overflowY="auto",this.addproperty_list.style.overflowX="hidden",this.addproperty_list.style.paddingLeft="5px",this.addproperty_list.setAttribute("class","property-selector"),this.addproperty_add=this.getButton("add","add","add"),this.addproperty_add.classList.add("json-editor-btntype-add"),this.addproperty_input=this.theme.getFormInputField("text"),this.addproperty_input.setAttribute("placeholder","Property name..."),this.addproperty_input.style.width="220px",this.addproperty_input.style.marginBottom="0",this.addproperty_input.style.display="inline-block",this.addproperty_add.addEventListener("click",function(b){if(b.preventDefault(),b.stopPropagation(),a.addproperty_input.value){if(a.editors[a.addproperty_input.value])return void window.alert("there is already a property with that name");a.addObjectProperty(a.addproperty_input.value),a.editors[a.addproperty_input.value]&&a.editors[a.addproperty_input.value].disable(),a.onChange(!0)}}),this.addproperty_holder.appendChild(this.addproperty_list),this.addproperty_holder.appendChild(this.addproperty_input),this.addproperty_holder.appendChild(this.addproperty_add);var c=document.createElement("div");c.style.clear="both",this.addproperty_holder.appendChild(c),document.addEventListener("click",function(a){!this.addproperty_holder.contains(a.target)&&this.adding_property&&(a.preventDefault(),a.stopPropagation(),this.toggleAddProperty())}.bind(this)),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description),this.container.appendChild(this.description)),this.error_holder=document.createElement("div"),this.container.appendChild(this.error_holder),this.editor_holder=this.theme.getIndentedPanel(),this.container.appendChild(this.editor_holder),this.row_container=this.theme.getGridContainer(),b?(this.tabs_holder=this.theme.getTopTabHolder(this.getValidId(this.schema.title)),this.tabPanesContainer=this.theme.getTopTabContentHolder(this.tabs_holder),this.editor_holder.appendChild(this.tabs_holder)):(this.tabs_holder=this.theme.getTabHolder(this.getValidId(this.schema.title)),this.tabPanesContainer=this.theme.getTabContentHolder(this.tabs_holder),this.editor_holder.appendChild(this.row_container)),f(this.editors,function(c,d){var e=a.theme.getTabContent(),f=a.theme.getGridColumn(),g=!(!d.schema||"object"!==d.schema.type&&"array"!==d.schema.type);if(e.isObjOrArray=g,b){if(g){var h=a.theme.getGridContainer();h.appendChild(f),e.appendChild(h),a.tabPanesContainer.appendChild(e),a.row_container=h}else"undefined"==typeof a.row_container_basic&&(a.row_container_basic=a.theme.getGridContainer(),e.appendChild(a.row_container_basic),0==a.tabPanesContainer.childElementCount?a.tabPanesContainer.appendChild(e):a.tabPanesContainer.insertBefore(e,a.tabPanesContainer.childNodes[1])),a.row_container_basic.appendChild(f);a.addRow(d,a.tabs_holder,e),e.id=a.getValidId(d.schema.title)}else a.row_container.appendChild(f);d.setContainer(f),d.build(),d.postBuild()}),this.rows[0]&&g(this.rows[0].tab,"click"),this.title_controls=this.theme.getHeaderButtonHolder(),this.editjson_controls=this.theme.getHeaderButtonHolder(),this.addproperty_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.title.appendChild(this.editjson_controls),this.title.appendChild(this.addproperty_controls),this.collapsed=!1,this.toggle_button=this.getButton("","collapse",this.translate("button_collapse")),this.toggle_button.classList.add("json-editor-btntype-toggle"),this.title_controls.appendChild(this.toggle_button),this.toggle_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.collapsed?(a.editor_holder.style.display="",a.collapsed=!1,a.setButtonText(a.toggle_button,"","collapse",a.translate("button_collapse"))):(a.editor_holder.style.display="none",a.collapsed=!0,a.setButtonText(a.toggle_button,"","expand",a.translate("button_expand")))}),this.options.collapsed&&g(this.toggle_button,"click"),this.schema.options&&"undefined"!=typeof this.schema.options.disable_collapse?this.schema.options.disable_collapse&&(this.toggle_button.style.display="none"):this.jsoneditor.options.disable_collapse&&(this.toggle_button.style.display="none"),this.editjson_button=this.getButton("JSON","edit","Edit JSON"),this.editjson_button.classList.add("json-editor-btntype-editjson"),this.editjson_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.toggleEditJSON()}),this.editjson_controls.appendChild(this.editjson_button),this.editjson_controls.appendChild(this.editjson_holder),this.schema.options&&"undefined"!=typeof this.schema.options.disable_edit_json?this.schema.options.disable_edit_json&&(this.editjson_button.style.display="none"):this.jsoneditor.options.disable_edit_json&&(this.editjson_button.style.display="none"),this.addproperty_button=this.getButton("Properties","edit","Object Properties"),this.addproperty_button.classList.add("json-editor-btntype-properties"),this.addproperty_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.toggleAddProperty()}),this.addproperty_controls.appendChild(this.addproperty_button),this.addproperty_controls.appendChild(this.addproperty_holder),this.refreshAddProperties()}this.options.table_row?(this.editor_holder=this.container,f(this.property_order,function(b,c){a.editor_holder.appendChild(a.editors[c].container)})):(this.layoutEditors(),this.layoutEditors())},showEditJSON:function(){this.editjson_holder&&(this.hideAddProperty(),this.editjson_holder.style.left=this.editjson_button.offsetLeft+"px",this.editjson_holder.style.top=this.editjson_button.offsetTop+this.editjson_button.offsetHeight+"px",this.editjson_textarea.value=JSON.stringify(this.getValue(),null,2),this.disable(),this.editjson_holder.style.display="",this.editjson_button.disabled=!1,this.editing_json=!0)},hideEditJSON:function(){this.editjson_holder&&this.editing_json&&(this.editjson_holder.style.display="none",this.enable(),this.editing_json=!1)},copyJSON:function(){if(this.editjson_holder){var a=document.createElement("textarea");a.value=this.editjson_textarea.value,a.setAttribute("readonly",""),a.style.position="absolute",a.style.left="-9999px",document.body.appendChild(a),a.select(),document.execCommand("copy"),document.body.removeChild(a)}},saveJSON:function(){if(this.editjson_holder)try{var a=JSON.parse(this.editjson_textarea.value);this.setValue(a),this.hideEditJSON(),this.onChange(!0)}catch(b){throw window.alert("invalid JSON"),b}},toggleEditJSON:function(){this.editing_json?this.hideEditJSON():this.showEditJSON()},insertPropertyControlUsingPropertyOrder:function(a,b,c){var d;this.schema.properties[a]&&(d=this.schema.properties[a].propertyOrder),"number"!=typeof d&&(d=1e3),b.propertyOrder=d;for(var e=0;e<c.childNodes.length;e++){var f=c.childNodes[e];if(b.propertyOrder<f.propertyOrder){this.addproperty_list.insertBefore(b,f),b=null;break}}b&&this.addproperty_list.appendChild(b)},addPropertyCheckbox:function(a){var b,c,d,e,f=this;return b=f.theme.getCheckbox(),b.style.width="auto",d=this.schema.properties[a]&&this.schema.properties[a].title?this.schema.properties[a].title:a,c=f.theme.getCheckboxLabel(d),e=f.theme.getFormControl(c,b),e.style.paddingBottom=e.style.marginBottom=e.style.paddingTop=e.style.marginTop=0,e.style.height="auto",this.insertPropertyControlUsingPropertyOrder(a,e,this.addproperty_list),
          +
          16 b.checked=a in this.editors,b.addEventListener("change",function(){b.checked?f.addObjectProperty(a):f.removeObjectProperty(a),f.onChange(!0)}),f.addproperty_checkboxes[a]=b,b},showAddProperty:function(){this.addproperty_holder&&(this.hideEditJSON(),this.addproperty_holder.style.left=this.addproperty_button.offsetLeft+"px",this.addproperty_holder.style.top=this.addproperty_button.offsetTop+this.addproperty_button.offsetHeight+"px",this.disable(),this.adding_property=!0,this.addproperty_button.disabled=!1,this.addproperty_holder.style.display="",this.refreshAddProperties())},hideAddProperty:function(){this.addproperty_holder&&this.adding_property&&(this.addproperty_holder.style.display="none",this.enable(),this.adding_property=!1)},toggleAddProperty:function(){this.adding_property?this.hideAddProperty():this.showAddProperty()},removeObjectProperty:function(a){this.editors[a]&&(this.editors[a].unregister(),delete this.editors[a],this.refreshValue(),this.layoutEditors())},addObjectProperty:function(a,b){var c=this;if(!this.editors[a]){if(this.cached_editors[a]){if(this.editors[a]=this.cached_editors[a],b)return;this.editors[a].register()}else{if(!(this.canHaveAdditionalProperties()||this.schema.properties&&this.schema.properties[a]))return;var d=c.getPropertySchema(a);"number"!=typeof d.propertyOrder&&(d.propertyOrder=Object.keys(c.editors).length+1e3);var e=c.jsoneditor.getEditorClass(d);if(c.editors[a]=c.jsoneditor.createEditor(e,{jsoneditor:c.jsoneditor,schema:d,path:c.path+"."+a,parent:c}),c.editors[a].preBuild(),!b){var f=c.theme.getChildEditorHolder();c.editor_holder.appendChild(f),c.editors[a].setContainer(f),c.editors[a].build(),c.editors[a].postBuild()}c.cached_editors[a]=c.editors[a]}b||(c.refreshValue(),c.layoutEditors())}},onChildEditorChange:function(a){this.refreshValue(),this._super(a)},canHaveAdditionalProperties:function(){return"boolean"==typeof this.schema.additionalProperties?this.schema.additionalProperties:!this.jsoneditor.options.no_additional_properties},destroy:function(){f(this.cached_editors,function(a,b){b.destroy()}),this.editor_holder&&(this.editor_holder.innerHTML=""),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.error_holder&&this.error_holder.parentNode&&this.error_holder.parentNode.removeChild(this.error_holder),this.editors=null,this.cached_editors=null,this.editor_holder&&this.editor_holder.parentNode&&this.editor_holder.parentNode.removeChild(this.editor_holder),this.editor_holder=null,this._super()},getValue:function(){if(!this.dependenciesFulfilled)return b;var a=this._super();if(this.jsoneditor.options.remove_empty_properties||this.options.remove_empty_properties)for(var c in a)a.hasOwnProperty(c)&&("undefined"==typeof a[c]||""===a[c]||a[c]===Object(a[c])&&0==Object.keys(a[c]).length&&a[c].constructor==Object)&&delete a[c];return a},refreshValue:function(){this.value={};for(var a in this.editors)this.editors.hasOwnProperty(a)&&(this.value[a]=this.editors[a].getValue());this.adding_property&&this.refreshAddProperties()},refreshAddProperties:function(){if(this.options.disable_properties||this.options.disable_properties!==!1&&this.jsoneditor.options.disable_properties)return void(this.addproperty_controls.style.display="none");var a,b=!1,c=!1,d=0,e=!1;for(a in this.editors)this.editors.hasOwnProperty(a)&&d++;b=this.canHaveAdditionalProperties()&&!("undefined"!=typeof this.schema.maxProperties&&d>=this.schema.maxProperties),this.addproperty_checkboxes&&(this.addproperty_list.innerHTML=""),this.addproperty_checkboxes={};for(a in this.cached_editors)this.cached_editors.hasOwnProperty(a)&&(this.addPropertyCheckbox(a),this.isRequired(this.cached_editors[a])&&a in this.editors&&(this.addproperty_checkboxes[a].disabled=!0),"undefined"!=typeof this.schema.minProperties&&d<=this.schema.minProperties?(this.addproperty_checkboxes[a].disabled=this.addproperty_checkboxes[a].checked,this.addproperty_checkboxes[a].checked||(e=!0)):a in this.editors?(e=!0,c=!0):b||this.schema.properties.hasOwnProperty(a)?(this.addproperty_checkboxes[a].disabled=!1,e=!0):this.addproperty_checkboxes[a].disabled=!0);this.canHaveAdditionalProperties()&&(e=!0);for(a in this.schema.properties)this.schema.properties.hasOwnProperty(a)&&(this.cached_editors[a]||(e=!0,this.addPropertyCheckbox(a)));e?this.canHaveAdditionalProperties()?b?this.addproperty_add.disabled=!1:this.addproperty_add.disabled=!0:(this.addproperty_add.style.display="none",this.addproperty_input.style.display="none"):(this.hideAddProperty(),this.addproperty_controls.style.display="none")},isRequired:function(a){return"boolean"==typeof a.schema.required?a.schema.required:Array.isArray(this.schema.required)?this.schema.required.indexOf(a.key)>-1:!!this.jsoneditor.options.required_by_default},setValue:function(a,b){var c=this;a=a||{},("object"!=typeof a||Array.isArray(a))&&(a={}),f(this.cached_editors,function(d,e){"undefined"!=typeof a[d]?(c.addObjectProperty(d),e.setValue(a[d],b)):b||c.isRequired(e)?e.setValue(e.getDefault(),b):c.removeObjectProperty(d)}),f(a,function(a,d){c.cached_editors[a]||(c.addObjectProperty(a),c.editors[a]&&c.editors[a].setValue(d,b))}),this.refreshValue(),this.layoutEditors(),this.onChange()},showValidationErrors:function(a){var b=this,c=[],d=[];if(f(a,function(a,e){e.path===b.path?c.push(e):d.push(e)}),this.error_holder)if(c.length){this.error_holder.innerHTML="",this.error_holder.style.display="",f(c,function(a,c){b.error_holder.appendChild(b.theme.getErrorMessage(c.message))})}else this.error_holder.style.display="none";this.options.table_row&&(c.length?this.theme.addTableRowError(this.container):this.theme.removeTableRowError(this.container)),f(this.editors,function(a,b){b.showValidationErrors(d)})}}),h.defaults.editors.array=h.AbstractEditor.extend({askConfirmation:function(){return this.jsoneditor.options.prompt_before_delete!==!0||confirm("Are you sure you want to remove this node?")!==!1},getDefault:function(){return this.schema["default"]||[]},register:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].register()},unregister:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].unregister()},getNumColumns:function(){var a=this.getItemInfo(0);return this.tabs_holder&&"tabs-top"!==this.schema.format?Math.max(Math.min(12,a.width+2),4):a.width},enable:function(){if(!this.always_disabled){if(this.add_row_button&&(this.add_row_button.disabled=!1),this.remove_all_rows_button&&(this.remove_all_rows_button.disabled=!1),this.delete_last_row_button&&(this.delete_last_row_button.disabled=!1),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].enable(),this.rows[a].moveup_button&&(this.rows[a].moveup_button.disabled=!1),this.rows[a].movedown_button&&(this.rows[a].movedown_button.disabled=!1),this.rows[a].delete_button&&(this.rows[a].delete_button.disabled=!1);this._super()}},disable:function(a){if(a&&(this.always_disabled=!0),this.add_row_button&&(this.add_row_button.disabled=!0),this.remove_all_rows_button&&(this.remove_all_rows_button.disabled=!0),this.delete_last_row_button&&(this.delete_last_row_button.disabled=!0),this.rows)for(var b=0;b<this.rows.length;b++)this.rows[b].disable(a),this.rows[b].moveup_button&&(this.rows[b].moveup_button.disabled=!0),this.rows[b].movedown_button&&(this.rows[b].movedown_button.disabled=!0),this.rows[b].delete_button&&(this.rows[b].delete_button.disabled=!0);this._super()},preBuild:function(){this._super(),this.rows=[],this.row_cache=[],this.hide_delete_buttons=this.options.disable_array_delete||this.jsoneditor.options.disable_array_delete,this.hide_delete_all_rows_buttons=this.hide_delete_buttons||this.options.disable_array_delete_all_rows||this.jsoneditor.options.disable_array_delete_all_rows,this.hide_delete_last_row_buttons=this.hide_delete_buttons||this.options.disable_array_delete_last_row||this.jsoneditor.options.disable_array_delete_last_row,this.hide_move_buttons=this.options.disable_array_reorder||this.jsoneditor.options.disable_array_reorder,this.hide_add_button=this.options.disable_array_add||this.jsoneditor.options.disable_array_add,this.show_copy_button=this.options.enable_array_copy||this.jsoneditor.options.enable_array_copy,this.array_controls_top=this.options.array_controls_top||this.jsoneditor.options.array_controls_top},build:function(){this.options.compact?(this.panel=this.theme.getIndentedPanel(),this.container.appendChild(this.panel),this.title_controls=this.theme.getHeaderButtonHolder(),this.panel.appendChild(this.title_controls),this.controls=this.theme.getButtonHolder(),this.panel.appendChild(this.controls),this.row_holder=document.createElement("div"),this.panel.appendChild(this.row_holder)):(this.header=document.createElement("span"),this.header.textContent=this.getTitle(),this.title=this.theme.getHeader(this.header),this.container.appendChild(this.title),this.title_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description),this.container.appendChild(this.description)),this.error_holder=document.createElement("div"),this.container.appendChild(this.error_holder),"tabs-top"===this.schema.format?(this.controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.controls),this.tabs_holder=this.theme.getTopTabHolder(this.getValidId(this.getItemTitle())),this.container.appendChild(this.tabs_holder),this.row_holder=this.theme.getTopTabContentHolder(this.tabs_holder),this.active_tab=null):"tabs"===this.schema.format?(this.controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.controls),this.tabs_holder=this.theme.getTabHolder(this.getValidId(this.getItemTitle())),this.container.appendChild(this.tabs_holder),this.row_holder=this.theme.getTabContentHolder(this.tabs_holder),this.active_tab=null):(this.panel=this.theme.getIndentedPanel(),this.container.appendChild(this.panel),this.row_holder=document.createElement("div"),this.panel.appendChild(this.row_holder),this.controls=this.theme.getButtonHolder(),this.array_controls_top?this.title.appendChild(this.controls):this.panel.appendChild(this.controls))),this.addControls()},onChildEditorChange:function(a){this.refreshValue(),this.refreshTabs(!0),this._super(a)},getItemTitle:function(){if(!this.item_title)if(this.schema.items&&!Array.isArray(this.schema.items)){var a=this.jsoneditor.expandRefs(this.schema.items);this.item_title=a.title||"item"}else this.item_title="item";return this.item_title},getItemSchema:function(a){return Array.isArray(this.schema.items)?a>=this.schema.items.length?this.schema.additionalItems===!0?{}:this.schema.additionalItems?e({},this.schema.additionalItems):void 0:e({},this.schema.items[a]):this.schema.items?e({},this.schema.items):{}},getItemInfo:function(a){var b=this.getItemSchema(a);this.item_info=this.item_info||{};var c=JSON.stringify(b);return"undefined"!=typeof this.item_info[c]?this.item_info[c]:(b=this.jsoneditor.expandRefs(b),this.item_info[c]={title:b.title||"item","default":b["default"],width:12,child_editors:b.properties||b.items},this.item_info[c])},getElementEditor:function(a){var b=this.getItemInfo(a),c=this.getItemSchema(a);c=this.jsoneditor.expandRefs(c),c.title=b.title+" "+(a+1);var d,e=this.jsoneditor.getEditorClass(c);this.tabs_holder?(d="tabs-top"===this.schema.format?this.theme.getTopTabContent():this.theme.getTabContent(),d.id=this.path+"."+a):d=b.child_editors?this.theme.getChildEditorHolder():this.theme.getIndentedPanel(),this.row_holder.appendChild(d);var f=this.jsoneditor.createEditor(e,{jsoneditor:this.jsoneditor,schema:c,container:d,path:this.path+"."+a,parent:this,required:!0});return f.preBuild(),f.build(),f.postBuild(),f.title_controls||(f.array_controls=this.theme.getButtonHolder(),d.appendChild(f.array_controls)),f},destroy:function(){this.empty(!0),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.row_holder&&this.row_holder.parentNode&&this.row_holder.parentNode.removeChild(this.row_holder),this.controls&&this.controls.parentNode&&this.controls.parentNode.removeChild(this.controls),this.panel&&this.panel.parentNode&&this.panel.parentNode.removeChild(this.panel),this.rows=this.row_cache=this.title=this.description=this.row_holder=this.panel=this.controls=null,this._super()},empty:function(a){if(this.rows){var b=this;f(this.rows,function(c,d){a&&(d.tab&&d.tab.parentNode&&d.tab.parentNode.removeChild(d.tab),b.destroyRow(d,!0),b.row_cache[c]=null),b.rows[c]=null}),b.rows=[],a&&(b.row_cache=[])}},destroyRow:function(a,b){var c=a.container;b?(a.destroy(),c.parentNode&&c.parentNode.removeChild(c),a.tab&&a.tab.parentNode&&a.tab.parentNode.removeChild(a.tab)):(a.tab&&(a.tab.style.display="none"),c.style.display="none",a.unregister())},getMax:function(){return Array.isArray(this.schema.items)&&this.schema.additionalItems===!1?Math.min(this.schema.items.length,this.schema.maxItems||1/0):this.schema.maxItems||1/0},refreshTabs:function(a){var b=this;f(this.rows,function(c,d){d.tab&&(a?d.tab_text.textContent=d.getHeaderText():d.tab===b.active_tab?b.theme.markTabActive(d):b.theme.markTabInactive(d))})},setValue:function(a,b){a=a||[],Array.isArray(a)||(a=[a]);var c=JSON.stringify(a);if(c!==this.serialized){if(this.schema.minItems)for(;a.length<this.schema.minItems;)a.push(this.getItemInfo(a.length)["default"]);this.getMax()&&a.length>this.getMax()&&(a=a.slice(0,this.getMax()));var d=this;f(a,function(a,c){d.rows[a]?d.rows[a].setValue(c,b):d.row_cache[a]?(d.rows[a]=d.row_cache[a],d.rows[a].setValue(c,b),d.rows[a].container.style.display="",d.rows[a].tab&&(d.rows[a].tab.style.display=""),d.rows[a].register()):d.addRow(c,b)});for(var e=a.length;e<d.rows.length;e++)d.destroyRow(d.rows[e]),d.rows[e]=null;d.rows=d.rows.slice(0,a.length);var g=null;f(d.rows,function(a,b){if(b.tab===d.active_tab)return g=b.tab,!1}),!g&&d.rows.length&&(g=d.rows[0].tab),d.active_tab=g,d.refreshValue(b),d.refreshTabs(!0),d.refreshTabs(),d.onChange()}},refreshValue:function(a){var b=this,c=this.value?this.value.length:0;if(this.value=[],f(this.rows,function(a,c){b.value[a]=c.getValue()}),c!==this.value.length||a){var d=this.schema.minItems&&this.schema.minItems>=this.rows.length;f(this.rows,function(a,c){c.movedown_button&&(a===b.rows.length-1?c.movedown_button.style.display="none":c.movedown_button.style.display=""),c.delete_button&&(d?c.delete_button.style.display="none":c.delete_button.style.display=""),b.value[a]=c.getValue()});var e=!1;this.value.length?1===this.value.length?(this.remove_all_rows_button.style.display="none",d||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",e=!0)):(d||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",e=!0),d||this.hide_delete_all_rows_buttons?this.remove_all_rows_button.style.display="none":(this.remove_all_rows_button.style.display="",e=!0)):(this.delete_last_row_button.style.display="none",this.remove_all_rows_button.style.display="none"),this.getMax()&&this.getMax()<=this.rows.length||this.hide_add_button?this.add_row_button.style.display="none":(this.add_row_button.style.display="",e=!0),!this.collapsed&&e?this.controls.style.display="inline-block":this.controls.style.display="none"}},addRow:function(a,b){var c=this,d=this.rows.length;c.rows[d]=this.getElementEditor(d),c.row_cache[d]=c.rows[d],c.tabs_holder&&(c.rows[d].tab_text=document.createElement("span"),c.rows[d].tab_text.textContent=c.rows[d].getHeaderText(),"tabs-top"===c.schema.format?(c.rows[d].tab=c.theme.getTopTab(c.rows[d].tab_text,this.getValidId(c.rows[d].path)),c.theme.addTopTab(c.tabs_holder,c.rows[d].tab)):(c.rows[d].tab=c.theme.getTab(c.rows[d].tab_text,this.getValidId(c.rows[d].path)),c.theme.addTab(c.tabs_holder,c.rows[d].tab)),c.rows[d].tab.addEventListener("click",function(a){c.active_tab=c.rows[d].tab,c.refreshTabs(),a.preventDefault(),a.stopPropagation()}));var e=c.rows[d].title_controls||c.rows[d].array_controls;c.hide_delete_buttons||(c.rows[d].delete_button=this.getButton(c.getItemTitle(),"delete",this.translate("button_delete_row_title",[c.getItemTitle()])),c.rows[d].delete_button.classList.add("delete","json-editor-btntype-delete"),c.rows[d].delete_button.setAttribute("data-i",d),c.rows[d].delete_button.addEventListener("click",function(a){if(a.preventDefault(),a.stopPropagation(),!c.askConfirmation())return!1;var b=1*this.getAttribute("data-i"),d=c.getValue(),e=[],g=null;f(d,function(a,c){a!==b&&e.push(c)}),c.empty(!0),c.setValue(e),c.rows[b]?g=c.rows[b].tab:c.rows[b-1]&&(g=c.rows[b-1].tab),g&&(c.active_tab=g,c.refreshTabs()),c.onChange(!0),c.jsoneditor.trigger("deleteRow")}),e&&e.appendChild(c.rows[d].delete_button)),c.show_copy_button&&(c.rows[d].copy_button=this.getButton(c.getItemTitle(),"copy","Copy "+c.getItemTitle()),c.rows[d].copy_button.classList.add("copy","json-editor-btntype-copy"),c.rows[d].copy_button.setAttribute("data-i",d),c.rows[d].copy_button.addEventListener("click",function(a){var b=c.getValue();a.preventDefault(),a.stopPropagation();var d=1*this.getAttribute("data-i");f(b,function(a,c){a===d&&b.push(c)}),c.setValue(b),c.refreshValue(!0),c.onChange(!0)}),e.appendChild(c.rows[d].copy_button)),d&&!c.hide_move_buttons&&(c.rows[d].moveup_button=this.getButton("","moveup",this.translate("button_move_up_title")),c.rows[d].moveup_button.classList.add("moveup","json-editor-btntype-move"),c.rows[d].moveup_button.setAttribute("data-i",d),c.rows[d].moveup_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var b=1*this.getAttribute("data-i");if(!(b<=0)){var d=c.getValue(),e=d[b-1];d[b-1]=d[b],d[b]=e,c.setValue(d),c.active_tab=c.rows[b-1].tab,c.refreshTabs(),c.onChange(!0),c.jsoneditor.trigger("moveRow")}}),e&&e.appendChild(c.rows[d].moveup_button)),c.hide_move_buttons||(c.rows[d].movedown_button=this.getButton("","movedown",this.translate("button_move_down_title")),c.rows[d].movedown_button.classList.add("movedown","json-editor-btntype-move"),c.rows[d].movedown_button.setAttribute("data-i",d),c.rows[d].movedown_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var b=1*this.getAttribute("data-i"),d=c.getValue();if(!(b>=d.length-1)){var e=d[b+1];d[b+1]=d[b],d[b]=e,c.setValue(d),c.active_tab=c.rows[b+1].tab,c.refreshTabs(),c.onChange(!0),c.jsoneditor.trigger("moveRow")}}),e&&e.appendChild(c.rows[d].movedown_button)),a&&c.rows[d].setValue(a,b),c.refreshTabs()},addControls:function(){var a=this;this.collapsed=!1,this.toggle_button=this.getButton("","collapse",this.translate("button_collapse")),this.toggle_button.classList.add("json-editor-btntype-toggle"),this.title_controls.appendChild(this.toggle_button);var b=a.row_holder.style.display,c=a.controls.style.display;this.toggle_button.addEventListener("click",function(d){d.preventDefault(),d.stopPropagation(),a.collapsed?(a.collapsed=!1,a.panel&&(a.panel.style.display=""),a.row_holder.style.display=b,a.tabs_holder&&(a.tabs_holder.style.display=""),a.controls.style.display=c,a.setButtonText(this,"","collapse",a.translate("button_collapse"))):(a.collapsed=!0,a.row_holder.style.display="none",a.tabs_holder&&(a.tabs_holder.style.display="none"),a.controls.style.display="none",a.panel&&(a.panel.style.display="none"),a.setButtonText(this,"","expand",a.translate("button_expand")))}),this.options.collapsed&&g(this.toggle_button,"click"),this.schema.options&&"undefined"!=typeof this.schema.options.disable_collapse?this.schema.options.disable_collapse&&(this.toggle_button.style.display="none"):this.jsoneditor.options.disable_collapse&&(this.toggle_button.style.display="none"),this.add_row_button=this.getButton(this.getItemTitle(),"add",this.translate("button_add_row_title",[this.getItemTitle()])),this.add_row_button.classList.add("json-editor-btntype-add"),this.add_row_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation();var c=a.rows.length;a.row_cache[c]?(a.rows[c]=a.row_cache[c],a.rows[c].setValue(a.rows[c].getDefault(),!0),a.rows[c].container.style.display="",a.rows[c].tab&&(a.rows[c].tab.style.display=""),a.rows[c].register()):a.addRow(),a.active_tab=a.rows[c].tab,a.refreshTabs(),a.refreshValue(),a.onChange(!0),a.jsoneditor.trigger("addRow")}),a.controls.appendChild(this.add_row_button),this.delete_last_row_button=this.getButton(this.translate("button_delete_last",[this.getItemTitle()]),"delete",this.translate("button_delete_last_title",[this.getItemTitle()])),this.delete_last_row_button.classList.add("json-editor-btntype-deletelast"),this.delete_last_row_button.addEventListener("click",function(b){if(b.preventDefault(),b.stopPropagation(),!a.askConfirmation())return!1;var c=a.getValue(),d=null;c.pop(),a.empty(!0),a.setValue(c),a.rows[a.rows.length-1]&&(d=a.rows[a.rows.length-1].tab),d&&(a.active_tab=d,a.refreshTabs()),a.onChange(!0),a.jsoneditor.trigger("deleteRow")}),a.controls.appendChild(this.delete_last_row_button),this.remove_all_rows_button=this.getButton(this.translate("button_delete_all"),"delete",this.translate("button_delete_all_title")),this.remove_all_rows_button.classList.add("json-editor-btntype-deleteall"),this.remove_all_rows_button.addEventListener("click",function(b){return b.preventDefault(),b.stopPropagation(),!!a.askConfirmation()&&(a.empty(!0),a.setValue([]),a.onChange(!0),void a.jsoneditor.trigger("deleteAllRows"))}),a.controls.appendChild(this.remove_all_rows_button),a.tabs&&(this.add_row_button.style.width="100%",this.add_row_button.style.textAlign="left",this.add_row_button.style.marginBottom="3px",this.delete_last_row_button.style.width="100%",this.delete_last_row_button.style.textAlign="left",this.delete_last_row_button.style.marginBottom="3px",this.remove_all_rows_button.style.width="100%",this.remove_all_rows_button.style.textAlign="left",this.remove_all_rows_button.style.marginBottom="3px")},showValidationErrors:function(a){var b=this,c=[],d=[];if(f(a,function(a,e){e.path===b.path?c.push(e):d.push(e)}),this.error_holder)if(c.length){this.error_holder.innerHTML="",this.error_holder.style.display="",f(c,function(a,c){b.error_holder.appendChild(b.theme.getErrorMessage(c.message))})}else this.error_holder.style.display="none";f(this.rows,function(a,b){b.showValidationErrors(d)})}}),h.defaults.editors.table=h.defaults.editors.array.extend({register:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].register()},unregister:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].unregister()},getNumColumns:function(){return Math.max(Math.min(12,this.width),3)},preBuild:function(){var a=this.jsoneditor.expandRefs(this.schema.items||{});this.item_title=a.title||"row",this.item_default=a["default"]||null,this.item_has_child_editors=a.properties||a.items,this.width=12,this._super()},build:function(){var a=this;this.table=this.theme.getTable(),this.container.appendChild(this.table),this.thead=this.theme.getTableHead(),this.table.appendChild(this.thead),this.header_row=this.theme.getTableRow(),this.thead.appendChild(this.header_row),this.row_holder=this.theme.getTableBody(),this.table.appendChild(this.row_holder);var b=this.getElementEditor(0,!0);if(this.item_default=b.getDefault(),this.width=b.getNumColumns()+2,this.options.compact?(this.panel=document.createElement("div"),this.container.appendChild(this.panel)):(this.title=this.theme.getHeader(this.getTitle()),this.container.appendChild(this.title),this.title_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description),this.container.appendChild(this.description)),this.panel=this.theme.getIndentedPanel(),this.container.appendChild(this.panel),this.error_holder=document.createElement("div"),this.panel.appendChild(this.error_holder)),this.panel.appendChild(this.table),this.controls=this.theme.getButtonHolder(),this.panel.appendChild(this.controls),this.item_has_child_editors)for(var c=b.getChildEditors(),d=b.property_order||Object.keys(c),e=0;e<d.length;e++){var f=a.theme.getTableHeaderCell(c[d[e]].getTitle());c[d[e]].options.hidden&&(f.style.display="none"),a.header_row.appendChild(f)}else a.header_row.appendChild(a.theme.getTableHeaderCell(this.item_title));b.destroy(),this.row_holder.innerHTML="",this.controls_header_cell=a.theme.getTableHeaderCell(" "),a.header_row.appendChild(this.controls_header_cell),this.addControls()},onChildEditorChange:function(a){this.refreshValue(),this._super()},getItemDefault:function(){return e({},{"default":this.item_default})["default"]},getItemTitle:function(){return this.item_title},getElementEditor:function(a,b){var c=e({},this.schema.items),d=this.jsoneditor.getEditorClass(c,this.jsoneditor),f=this.row_holder.appendChild(this.theme.getTableRow()),g=f;this.item_has_child_editors||(g=this.theme.getTableCell(),f.appendChild(g));var h=this.jsoneditor.createEditor(d,{jsoneditor:this.jsoneditor,schema:c,container:g,path:this.path+"."+a,parent:this,compact:!0,table_row:!0});return h.preBuild(),b||(h.build(),h.postBuild(),h.controls_cell=f.appendChild(this.theme.getTableCell()),h.row=f,h.table_controls=this.theme.getButtonHolder(),h.controls_cell.appendChild(h.table_controls),h.table_controls.style.margin=0,h.table_controls.style.padding=0),h},destroy:function(){this.innerHTML="",this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.row_holder&&this.row_holder.parentNode&&this.row_holder.parentNode.removeChild(this.row_holder),this.table&&this.table.parentNode&&this.table.parentNode.removeChild(this.table),this.panel&&this.panel.parentNode&&this.panel.parentNode.removeChild(this.panel),this.rows=this.title=this.description=this.row_holder=this.table=this.panel=null,this._super()},setValue:function(a,b){if(a=a||[],this.schema.minItems)for(;a.length<this.schema.minItems;)a.push(this.getItemDefault());this.schema.maxItems&&a.length>this.schema.maxItems&&(a=a.slice(0,this.schema.maxItems));var c=JSON.stringify(a);if(c!==this.serialized){var d=!1,e=this;f(a,function(a,b){e.rows[a]?e.rows[a].setValue(b):(e.addRow(b),d=!0)});for(var g=a.length;g<e.rows.length;g++){var h=e.rows[g].container;e.item_has_child_editors||e.rows[g].row.parentNode.removeChild(e.rows[g].row),e.rows[g].destroy(),h.parentNode&&h.parentNode.removeChild(h),e.rows[g]=null,d=!0}e.rows=e.rows.slice(0,a.length),e.refreshValue(),(d||b)&&e.refreshRowButtons(),e.onChange()}},refreshRowButtons:function(){var a=this,b=this.schema.minItems&&this.schema.minItems>=this.rows.length,c=!1;f(this.rows,function(d,e){e.movedown_button&&(d===a.rows.length-1?e.movedown_button.style.display="none":(c=!0,e.movedown_button.style.display="")),e.delete_button&&(b?e.delete_button.style.display="none":(c=!0,e.delete_button.style.display="")),e.moveup_button&&(c=!0)}),f(this.rows,function(a,b){c?b.controls_cell.style.display="":b.controls_cell.style.display="none"}),c?this.controls_header_cell.style.display="":this.controls_header_cell.style.display="none";var d=!1;this.value.length?1===this.value.length?(this.table.style.display="",this.remove_all_rows_button.style.display="none",b||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",d=!0)):(this.table.style.display="",b||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",d=!0),b||this.hide_delete_all_rows_buttons?this.remove_all_rows_button.style.display="none":(this.remove_all_rows_button.style.display="",d=!0)):(this.delete_last_row_button.style.display="none",this.remove_all_rows_button.style.display="none",this.table.style.display="none"),this.schema.maxItems&&this.schema.maxItems<=this.rows.length||this.hide_add_button?this.add_row_button.style.display="none":(this.add_row_button.style.display="",d=!0),d?this.controls.style.display="":this.controls.style.display="none"},refreshValue:function(){var a=this;this.value=[],f(this.rows,function(b,c){a.value[b]=c.getValue()}),this.serialized=JSON.stringify(this.value)},addRow:function(a){var b=this,c=this.rows.length;b.rows[c]=this.getElementEditor(c);var d=b.rows[c].table_controls;this.hide_delete_buttons||(b.rows[c].delete_button=this.getButton("","delete",this.translate("button_delete_row_title_short")),b.rows[c].delete_button.classList.add("delete","json-editor-btntype-delete"),b.rows[c].delete_button.setAttribute("data-i",c),b.rows[c].delete_button.addEventListener("click",function(a){if(a.preventDefault(),a.stopPropagation(),!b.askConfirmation())return!1;var c=1*this.getAttribute("data-i"),d=b.getValue(),e=[];f(d,function(a,b){a!==c&&e.push(b)}),b.setValue(e),b.onChange(!0)}),d.appendChild(b.rows[c].delete_button)),c&&!this.hide_move_buttons&&(b.rows[c].moveup_button=this.getButton("","moveup",this.translate("button_move_up_title")),b.rows[c].moveup_button.classList.add("moveup","json-editor-btntype-move"),b.rows[c].moveup_button.setAttribute("data-i",c),b.rows[c].moveup_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var c=1*this.getAttribute("data-i");if(!(c<=0)){var d=b.getValue(),e=d[c-1];d[c-1]=d[c],d[c]=e,b.setValue(d),b.onChange(!0)}}),d.appendChild(b.rows[c].moveup_button)),this.hide_move_buttons||(b.rows[c].movedown_button=this.getButton("","movedown",this.translate("button_move_down_title")),b.rows[c].movedown_button.classList.add("movedown","json-editor-btntype-move"),b.rows[c].movedown_button.setAttribute("data-i",c),b.rows[c].movedown_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var c=1*this.getAttribute("data-i"),d=b.getValue();if(!(c>=d.length-1)){var e=d[c+1];d[c+1]=d[c],d[c]=e,b.setValue(d),b.onChange(!0)}}),d.appendChild(b.rows[c].movedown_button)),a&&b.rows[c].setValue(a)},addControls:function(){var a=this;this.collapsed=!1,this.toggle_button=this.getButton("","collapse",this.translate("button_collapse")),this.toggle_button.classList.add("json-editor-btntype-toggle"),this.title_controls&&(this.title_controls.appendChild(this.toggle_button),this.toggle_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.collapsed?(a.collapsed=!1,a.panel.style.display="",a.setButtonText(this,"","collapse",a.translate("button_collapse"))):(a.collapsed=!0,a.panel.style.display="none",a.setButtonText(this,"","expand",a.translate("button_expand")))}),this.options.collapsed&&g(this.toggle_button,"click"),this.schema.options&&"undefined"!=typeof this.schema.options.disable_collapse?this.schema.options.disable_collapse&&(this.toggle_button.style.display="none"):this.jsoneditor.options.disable_collapse&&(this.toggle_button.style.display="none")),this.add_row_button=this.getButton(this.getItemTitle(),"add",this.translate("button_add_row_title",[this.getItemTitle()])),this.add_row_button.classList.add("json-editor-btntype-add"),this.add_row_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.addRow(),a.refreshValue(),a.refreshRowButtons(),a.onChange(!0)}),a.controls.appendChild(this.add_row_button),this.delete_last_row_button=this.getButton(this.translate("button_delete_last",[this.getItemTitle()]),"delete",this.translate("button_delete_last_title",[this.getItemTitle()])),this.delete_last_row_button.classList.add("json-editor-btntype-deletelast"),this.delete_last_row_button.addEventListener("click",function(b){if(b.preventDefault(),b.stopPropagation(),!a.askConfirmation())return!1;var c=a.getValue();c.pop(),a.setValue(c),a.onChange(!0)}),a.controls.appendChild(this.delete_last_row_button),this.remove_all_rows_button=this.getButton(this.translate("button_delete_all"),"delete",this.translate("button_delete_all_title")),
          +
          17 this.remove_all_rows_button.classList.add("json-editor-btntype-deleteall"),this.remove_all_rows_button.addEventListener("click",function(b){return b.preventDefault(),b.stopPropagation(),!!a.askConfirmation()&&(a.setValue([]),void a.onChange(!0))}),a.controls.appendChild(this.remove_all_rows_button)}}),h.defaults.editors.multiple=h.AbstractEditor.extend({register:function(){if(this.editors){for(var a=0;a<this.editors.length;a++)this.editors[a]&&this.editors[a].unregister();this.editors[this.type]&&this.editors[this.type].register()}this._super()},unregister:function(){if(this._super(),this.editors)for(var a=0;a<this.editors.length;a++)this.editors[a]&&this.editors[a].unregister()},getNumColumns:function(){return this.editors[this.type]?Math.max(this.editors[this.type].getNumColumns(),4):4},enable:function(){if(!this.always_disabled){if(this.editors)for(var a=0;a<this.editors.length;a++)this.editors[a]&&this.editors[a].enable();this.switcher.disabled=!1,this._super()}},disable:function(a){if(a&&(this.always_disabled=!0),this.editors)for(var b=0;b<this.editors.length;b++)this.editors[b]&&this.editors[b].disable(a);this.switcher.disabled=!0,this._super()},switchEditor:function(a){var b=this;this.editors[a]||this.buildChildEditor(a);var c=b.getValue();b.type=a,b.register(),f(b.editors,function(a,d){d&&(b.type===a?(b.keep_values&&d.setValue(c,!0),d.container.style.display=""):d.container.style.display="none")}),b.refreshValue(),b.refreshHeaderText()},buildChildEditor:function(a){var b=this,c=this.types[a],d=b.theme.getChildEditorHolder();b.editor_holder.appendChild(d);var f;"string"==typeof c?(f=e({},b.schema),f.type=c):(f=e({},b.schema,c),f=b.jsoneditor.expandRefs(f),c&&c.required&&Array.isArray(c.required)&&b.schema.required&&Array.isArray(b.schema.required)&&(f.required=b.schema.required.concat(c.required)));var g=b.jsoneditor.getEditorClass(f);b.editors[a]=b.jsoneditor.createEditor(g,{jsoneditor:b.jsoneditor,schema:f,container:d,path:b.path,parent:b,required:!0}),b.editors[a].preBuild(),b.editors[a].build(),b.editors[a].postBuild(),b.editors[a].header&&(b.editors[a].header.style.display="none"),b.editors[a].option=b.switcher_options[a],d.addEventListener("change_header_text",function(){b.refreshHeaderText()}),a!==b.type&&(d.style.display="none")},preBuild:function(){if(this.types=[],this.type=0,this.editors=[],this.validators=[],this.keep_values=!0,"undefined"!=typeof this.jsoneditor.options.keep_oneof_values&&(this.keep_values=this.jsoneditor.options.keep_oneof_values),"undefined"!=typeof this.options.keep_oneof_values&&(this.keep_values=this.options.keep_oneof_values),this.schema.oneOf)this.oneOf=!0,this.types=this.schema.oneOf,delete this.schema.oneOf;else if(this.schema.anyOf)this.anyOf=!0,this.types=this.schema.anyOf,delete this.schema.anyOf;else{if(this.schema.type&&"any"!==this.schema.type)Array.isArray(this.schema.type)?this.types=this.schema.type:this.types=[this.schema.type];else if(this.types=["string","number","integer","boolean","object","array","null"],this.schema.disallow){var a=this.schema.disallow;"object"==typeof a&&Array.isArray(a)||(a=[a]);var b=[];f(this.types,function(c,d){a.indexOf(d)===-1&&b.push(d)}),this.types=b}delete this.schema.type}this.display_text=this.getDisplayText(this.types)},build:function(){var a=this,b=this.container;this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.container.appendChild(this.header),this.switcher=this.theme.getSwitcher(this.display_text),b.appendChild(this.switcher),this.switcher.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.switchEditor(a.display_text.indexOf(this.value)),a.onChange(!0)}),this.editor_holder=document.createElement("div"),b.appendChild(this.editor_holder);var c={};a.jsoneditor.options.custom_validators&&(c.custom_validators=a.jsoneditor.options.custom_validators),this.switcher_options=this.theme.getSwitcherOptions(this.switcher),f(this.types,function(b,d){a.editors[b]=!1;var f;"string"==typeof d?(f=e({},a.schema),f.type=d):(f=e({},a.schema,d),d.required&&Array.isArray(d.required)&&a.schema.required&&Array.isArray(a.schema.required)&&(f.required=a.schema.required.concat(d.required))),a.validators[b]=new h.Validator(a.jsoneditor,f,c)}),this.switchEditor(0)},onChildEditorChange:function(a){this.editors[this.type]&&(this.refreshValue(),this.refreshHeaderText()),this._super()},refreshHeaderText:function(){var a=this.getDisplayText(this.types);f(this.switcher_options,function(b,c){c.textContent=a[b]})},refreshValue:function(){this.value=this.editors[this.type].getValue()},setValue:function(a,b){var c=this,d=this.type;f(this.validators,function(b,d){if(!d.validate(a).length)return c.type=b,c.switcher.value=c.display_text[b],!1});var e=this.type!=d;e&&this.switchEditor(this.type),this.editors[this.type].setValue(a,b),this.refreshValue(),c.onChange(e)},destroy:function(){f(this.editors,function(a,b){b&&b.destroy()}),this.editor_holder&&this.editor_holder.parentNode&&this.editor_holder.parentNode.removeChild(this.editor_holder),this.switcher&&this.switcher.parentNode&&this.switcher.parentNode.removeChild(this.switcher),this._super()},showValidationErrors:function(a){var b=this;if(this.oneOf||this.anyOf){var c=this.oneOf?"oneOf":"anyOf";f(this.editors,function(d,g){if(g){var h=b.path+"."+c+"["+d+"]",i=[];f(a,function(a,c){if(c.path.substr(0,h.length)===h){var d=e({},c);d.path=b.path+d.path.substr(h.length),i.push(d)}}),g.showValidationErrors(i)}})}else f(this.editors,function(b,c){c&&c.showValidationErrors(a)})}}),h.defaults.editors["enum"]=h.AbstractEditor.extend({getNumColumns:function(){return 4},build:function(){this.container;this.title=this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.container.appendChild(this.title),this.options.enum_titles=this.options.enum_titles||[],this["enum"]=this.schema["enum"],this.selected=0,this.select_options=[],this.html_values=[];for(var a=this,b=0;b<this["enum"].length;b++)this.select_options[b]=this.options.enum_titles[b]||"Value "+(b+1),this.html_values[b]=this.getHTML(this["enum"][b]);this.switcher=this.theme.getSwitcher(this.select_options),this.container.appendChild(this.switcher),this.display_area=this.theme.getIndentedPanel(),this.container.appendChild(this.display_area),this.options.hide_display&&(this.display_area.style.display="none"),this.switcher.addEventListener("change",function(){a.selected=a.select_options.indexOf(this.value),a.value=a["enum"][a.selected],a.refreshValue(),a.onChange(!0)}),this.value=this["enum"][0],this.refreshValue(),1===this["enum"].length&&(this.switcher.style.display="none")},refreshValue:function(){var a=this;a.selected=-1;var b=JSON.stringify(this.value);return f(this["enum"],function(c,d){if(b===JSON.stringify(d))return a.selected=c,!1}),a.selected<0?void a.setValue(a["enum"][0]):(this.switcher.value=this.select_options[this.selected],void(this.display_area.innerHTML=this.html_values[this.selected]))},enable:function(){this.always_disabled||(this.switcher.disabled=!1,this._super())},disable:function(a){a&&(this.always_disabled=!0),this.switcher.disabled=!0,this._super()},getHTML:function(a){var b=this;if(null===a)return"<em>null</em>";if("object"==typeof a){var c="";return f(a,function(d,e){var f=b.getHTML(e);Array.isArray(a)||(f="<div><em>"+d+"</em>: "+f+"</div>"),c+="<li>"+f+"</li>"}),c=Array.isArray(a)?"<ol>"+c+"</ol>":"<ul style='margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;'>"+c+"</ul>"}return"boolean"==typeof a?a?"true":"false":"string"==typeof a?a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"):a},setValue:function(a){this.value!==a&&(this.value=a,this.refreshValue(),this.onChange())},destroy:function(){this.display_area&&this.display_area.parentNode&&this.display_area.parentNode.removeChild(this.display_area),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.switcher&&this.switcher.parentNode&&this.switcher.parentNode.removeChild(this.switcher),this._super()}}),h.defaults.editors.select=h.AbstractEditor.extend({setValue:function(a,b){a=this.typecast(a||"");var c=a;this.enum_values.indexOf(c)<0&&(c=this.enum_values[0]),this.value!==c&&(b?this.is_dirty=!1:"change"===this.jsoneditor.options.show_errors&&(this.is_dirty=!0),this.input.value=this.enum_options[this.enum_values.indexOf(c)],this.select2&&(this.select2v4?this.select2.val(this.input.value).trigger("change"):this.select2.select2("val",this.input.value)),this.value=c,this.onChange(),this.change())},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){if(!this.enum_options)return 3;for(var a=this.getTitle().length,b=0;b<this.enum_options.length;b++)a=Math.max(a,this.enum_options[b].length+4);return Math.min(12,Math.max(a/7,2))},typecast:function(a){return"boolean"===this.schema.type?!!a:"number"===this.schema.type?1*a:"integer"===this.schema.type?Math.floor(1*a):""+a},getValue:function(){return this.dependenciesFulfilled?this.typecast(this.value):b},preBuild:function(){var a=this;this.input_type="select",this.enum_options=[],this.enum_values=[],this.enum_display=[];var c;if(this.schema["enum"]){var d=this.schema.options&&this.schema.options.enum_titles||[];f(this.schema["enum"],function(b,c){a.enum_options[b]=""+c,a.enum_display[b]=""+(d[b]||c),a.enum_values[b]=a.typecast(c)}),this.isRequired()||(a.enum_display.unshift(" "),a.enum_options.unshift("undefined"),a.enum_values.unshift(b))}else if("boolean"===this.schema.type)a.enum_display=this.schema.options&&this.schema.options.enum_titles||["true","false"],a.enum_options=["1",""],a.enum_values=[!0,!1],this.isRequired()||(a.enum_display.unshift(" "),a.enum_options.unshift("undefined"),a.enum_values.unshift(b));else{if(!this.schema.enumSource)throw"'select' editor requires the enum property to be set.";if(this.enumSource=[],this.enum_display=[],this.enum_options=[],this.enum_values=[],Array.isArray(this.schema.enumSource))for(c=0;c<this.schema.enumSource.length;c++)"string"==typeof this.schema.enumSource[c]?this.enumSource[c]={source:this.schema.enumSource[c]}:Array.isArray(this.schema.enumSource[c])?this.enumSource[c]=this.schema.enumSource[c]:this.enumSource[c]=e({},this.schema.enumSource[c]);else this.schema.enumValue?this.enumSource=[{source:this.schema.enumSource,value:this.schema.enumValue}]:this.enumSource=[{source:this.schema.enumSource}];for(c=0;c<this.enumSource.length;c++)this.enumSource[c].value&&(this.enumSource[c].value=this.jsoneditor.compileTemplate(this.enumSource[c].value,this.template_engine)),this.enumSource[c].title&&(this.enumSource[c].title=this.jsoneditor.compileTemplate(this.enumSource[c].title,this.template_engine)),this.enumSource[c].filter&&(this.enumSource[c].filter=this.jsoneditor.compileTemplate(this.enumSource[c].filter,this.template_engine))}},build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.input=this.theme.getSelectInput(this.enum_options),this.theme.setSelectOptions(this.input,this.enum_options,this.enum_display),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.setInputAttributes([]),this.input.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.onInputChange()}),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),this.container.appendChild(this.control),this.value=this.enum_values[0]},onInputChange:function(){var a,b=this.typecast(this.input.value);a=this.enum_values.indexOf(b)===-1?this.enum_values[0]:this.enum_values[this.enum_values.indexOf(b)],a!==this.value&&(this.is_dirty=!0,this.value=a,this.onChange(!0))},setupSelect2:function(){if(window.jQuery&&window.jQuery.fn&&window.jQuery.fn.select2&&(this.enum_options.length>2||this.enum_options.length&&this.enumSource)){var a=e({},h.plugins.select2);this.schema.options&&this.schema.options.select2_options&&(a=e(a,this.schema.options.select2_options)),this.select2=window.jQuery(this.input).select2(a),this.select2v4=this.select2.select2.hasOwnProperty("amd");var b=this;this.select2.on("select2-blur",function(){b.select2v4?b.input.value=b.select2.val():b.input.value=b.select2.select2("val"),b.onInputChange()}),this.select2.on("change",function(){b.select2v4?b.input.value=b.select2.val():b.input.value=b.select2.select2("val"),b.onInputChange()})}else this.select2=null},postBuild:function(){this._super(),this.theme.afterInputReady(this.input),this.setupSelect2()},onWatchedFieldChange:function(){var a,b;if(this.enumSource){a=this.getWatchedFieldValues();for(var c=[],d=[],e=0;e<this.enumSource.length;e++)if(Array.isArray(this.enumSource[e]))c=c.concat(this.enumSource[e]),d=d.concat(this.enumSource[e]);else{var f=[];if(f=Array.isArray(this.enumSource[e].source)?this.enumSource[e].source:a[this.enumSource[e].source]){if(this.enumSource[e].slice&&(f=Array.prototype.slice.apply(f,this.enumSource[e].slice)),this.enumSource[e].filter){var g=[];for(b=0;b<f.length;b++)this.enumSource[e].filter({i:b,item:f[b],watched:a})&&g.push(f[b]);f=g}var h=[],i=[];for(b=0;b<f.length;b++){var j=f[b];this.enumSource[e].value?i[b]=this.typecast(this.enumSource[e].value({i:b,item:j})):i[b]=f[b],this.enumSource[e].title?h[b]=this.enumSource[e].title({i:b,item:j}):h[b]=i[b]}c=c.concat(i),d=d.concat(h)}}var k=this.value;this.theme.setSelectOptions(this.input,c,d),this.enum_options=c,this.enum_display=d,this.enum_values=c,this.select2&&this.select2.select2("destroy"),c.indexOf(k)!==-1?(this.input.value=k,this.value=k):(this.input.value=c[0],this.value=this.typecast(c[0]||""),this.parent?this.parent.onChildEditorChange(this):this.jsoneditor.onChange(),this.jsoneditor.notifyWatchers(this.path)),this.setupSelect2()}this._super()},enable:function(){this.always_disabled||(this.input.disabled=!1,this.select2&&(this.select2v4?this.select2.prop("disabled",!1):this.select2.select2("enable",!0))),this._super()},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this.select2&&(this.select2v4?this.select2.prop("disabled",!0):this.select2.select2("enable",!1)),this._super()},destroy:function(){this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.select2&&(this.select2.select2("destroy"),this.select2=null),this._super()},showValidationErrors:function(a){var b=this;if("always"===this.jsoneditor.options.show_errors);else if(!this.is_dirty&&this.previous_error_setting===this.jsoneditor.options.show_errors)return;this.previous_error_setting=this.jsoneditor.options.show_errors;var c=[];f(a,function(a,d){d.path===b.path&&c.push(d.message)}),c.length?this.theme.addInputError(this.input,c.join(". ")+"."):this.theme.removeInputError(this.input)}}),h.defaults.editors.selectize=h.AbstractEditor.extend({setValue:function(a,b){a=this.typecast(a||"");var c=a;this.enum_values.indexOf(c)<0&&(c=this.enum_values[0]),this.value!==c&&(this.input.value=this.enum_options[this.enum_values.indexOf(c)],this.selectize&&this.selectize[0].selectize.addItem(c),this.value=c,this.onChange())},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){if(!this.enum_options)return 3;for(var a=this.getTitle().length,b=0;b<this.enum_options.length;b++)a=Math.max(a,this.enum_options[b].length+4);return Math.min(12,Math.max(a/7,2))},typecast:function(a){return"boolean"===this.schema.type?!!a:"number"===this.schema.type?1*a:"integer"===this.schema.type?Math.floor(1*a):""+a},getValue:function(){return this.dependenciesFulfilled?this.value:b},preBuild:function(){var a=this;this.input_type="select",this.enum_options=[],this.enum_values=[],this.enum_display=[];var b;if(this.schema["enum"]){var c=this.schema.options&&this.schema.options.enum_titles||[];f(this.schema["enum"],function(b,d){a.enum_options[b]=""+d,a.enum_display[b]=""+(c[b]||d),a.enum_values[b]=a.typecast(d)})}else if("boolean"===this.schema.type)a.enum_display=this.schema.options&&this.schema.options.enum_titles||["true","false"],a.enum_options=["1","0"],a.enum_values=[!0,!1];else{if(!this.schema.enumSource)throw"'select' editor requires the enum property to be set.";if(this.enumSource=[],this.enum_display=[],this.enum_options=[],this.enum_values=[],Array.isArray(this.schema.enumSource))for(b=0;b<this.schema.enumSource.length;b++)"string"==typeof this.schema.enumSource[b]?this.enumSource[b]={source:this.schema.enumSource[b]}:Array.isArray(this.schema.enumSource[b])?this.enumSource[b]=this.schema.enumSource[b]:this.enumSource[b]=e({},this.schema.enumSource[b]);else this.schema.enumValue?this.enumSource=[{source:this.schema.enumSource,value:this.schema.enumValue}]:this.enumSource=[{source:this.schema.enumSource}];for(b=0;b<this.enumSource.length;b++)this.enumSource[b].value&&(this.enumSource[b].value=this.jsoneditor.compileTemplate(this.enumSource[b].value,this.template_engine)),this.enumSource[b].title&&(this.enumSource[b].title=this.jsoneditor.compileTemplate(this.enumSource[b].title,this.template_engine)),this.enumSource[b].filter&&(this.enumSource[b].filter=this.jsoneditor.compileTemplate(this.enumSource[b].filter,this.template_engine))}},build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.input=this.theme.getSelectInput(this.enum_options),this.theme.setSelectOptions(this.input,this.enum_options,this.enum_display),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.input.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.onInputChange()}),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),this.container.appendChild(this.control),this.value=this.enum_values[0]},onInputChange:function(){var a=this.input.value,b=a;this.enum_options.indexOf(a)===-1&&(b=this.enum_options[0]),this.value=a,this.onChange(!0)},setupSelectize:function(){var a=this;if(window.jQuery&&window.jQuery.fn&&window.jQuery.fn.selectize&&(this.enum_options.length>=2||this.enum_options.length&&this.enumSource)){var c=e({},h.plugins.selectize);this.schema.options&&this.schema.options.selectize_options&&(c=e(c,this.schema.options.selectize_options)),this.selectize=window.jQuery(this.input).selectize(e(c,{create:c.create===b||c.create,onChange:function(){a.onInputChange()}}))}else this.selectize=null},postBuild:function(){this._super(),this.theme.afterInputReady(this.input),this.setupSelectize()},onWatchedFieldChange:function(){var a,c;if(this.enumSource){a=this.getWatchedFieldValues();for(var d=[],e=[],f=0;f<this.enumSource.length;f++)if(Array.isArray(this.enumSource[f]))d=d.concat(this.enumSource[f]),e=e.concat(this.enumSource[f]);else if(a[this.enumSource[f].source]){var g=a[this.enumSource[f].source];if(this.enumSource[f].slice&&(g=Array.prototype.slice.apply(g,this.enumSource[f].slice)),this.enumSource[f].filter){var h=[];for(c=0;c<g.length;c++)this.enumSource[f].filter({i:c,item:g[c]})&&h.push(g[c]);g=h}var i=[],j=[];for(c=0;c<g.length;c++){var k=g[c];this.enumSource[f].value?j[c]=this.enumSource[f].value({i:c,item:k}):j[c]=g[c],this.enumSource[f].title?i[c]=this.enumSource[f].title({i:c,item:k}):i[c]=j[c]}d=d.concat(j),e=e.concat(i)}var l=this.value;l!==b&&""!==l&&d.indexOf(l)===-1&&(d=d.concat(l),e=e.concat(l)),this.theme.setSelectOptions(this.input,d,e),this.enum_options=d,this.enum_display=e,this.enum_values=d,d.indexOf(l)!==-1?(this.input.value=l,this.value=l):(this.input.value=d[0],this.value=d[0]||"",this.parent?this.parent.onChildEditorChange(this):this.jsoneditor.onChange(),this.jsoneditor.notifyWatchers(this.path)),this.selectize?this.updateSelectizeOptions(d):this.setupSelectize(),this._super()}},updateSelectizeOptions:function(a){var b=this.selectize[0].selectize,c=this;b.off(),b.clearOptions();for(var d in a)b.addOption({value:a[d],text:a[d]});b.addItem(this.value),b.on("change",function(){c.onInputChange()})},enable:function(){this.always_disabled||(this.input.disabled=!1,this.selectize&&this.selectize[0].selectize.unlock(),this._super())},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this.selectize&&this.selectize[0].selectize.lock(),this._super()},destroy:function(){this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.selectize&&(this.selectize[0].selectize.destroy(),this.selectize=null),this._super()}}),h.defaults.editors.multiselect=h.AbstractEditor.extend({preBuild:function(){this._super();var a;this.select_options={},this.select_values={};var b=this.jsoneditor.expandRefs(this.schema.items||{}),c=b["enum"]||[],d=b.options?b.options.enum_titles||[]:[];for(this.option_keys=[],this.option_titles=[],a=0;a<c.length;a++)this.sanitize(c[a])===c[a]&&(this.option_keys.push(c[a]+""),this.option_titles.push((d[a]||c[a])+""),this.select_values[c[a]+""]=c[a])},build:function(){var a,b=this;if(this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),!this.schema.format&&this.option_keys.length<8||"checkbox"===this.schema.format){for(this.input_type="checkboxes",this.inputs={},this.controls={},a=0;a<this.option_keys.length;a++){this.inputs[this.option_keys[a]]=this.theme.getCheckbox(),this.select_options[this.option_keys[a]]=this.inputs[this.option_keys[a]];var c=this.theme.getCheckboxLabel(this.option_titles[a]);this.controls[this.option_keys[a]]=this.theme.getFormControl(c,this.inputs[this.option_keys[a]])}this.control=this.theme.getMultiCheckboxHolder(this.controls,this.label,this.description)}else{for(this.input_type="select",this.input=this.theme.getSelectInput(this.option_keys),this.theme.setSelectOptions(this.input,this.option_keys,this.option_titles),this.input.multiple=!0,this.input.size=Math.min(10,this.option_keys.length),a=0;a<this.option_keys.length;a++)this.select_options[this.option_keys[a]]=this.input.children[a];(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.control=this.theme.getFormControl(this.label,this.input,this.description)}this.container.appendChild(this.control),this.control.addEventListener("change",function(c){c.preventDefault(),c.stopPropagation();var d=[];for(a=0;a<b.option_keys.length;a++)(b.select_options[b.option_keys[a]].selected||b.select_options[b.option_keys[a]].checked)&&d.push(b.select_values[b.option_keys[a]]);b.updateValue(d),b.onChange(!0)})},setValue:function(a,b){var c;for(a=a||[],"object"!=typeof a?a=[a]:Array.isArray(a)||(a=[]),c=0;c<a.length;c++)"string"!=typeof a[c]&&(a[c]+="");for(c in this.select_options)this.select_options.hasOwnProperty(c)&&(this.select_options[c]["select"===this.input_type?"selected":"checked"]=a.indexOf(c)!==-1);this.updateValue(a),this.onChange()},setupSelect2:function(){if(window.jQuery&&window.jQuery.fn&&window.jQuery.fn.select2){var a=window.jQuery.extend({},h.plugins.select2);this.schema.options&&this.schema.options.select2_options&&(a=e(a,this.schema.options.select2_options)),this.select2=window.jQuery(this.input).select2(a),this.select2v4=this.select2.select2.hasOwnProperty("amd");var b=this;this.select2.on("select2-blur",function(){b.select2v4?b.value=b.select2.val():b.value=b.select2.select2("val"),b.onChange(!0)}),this.select2.on("change",function(){b.select2v4?b.value=b.select2.val():b.value=b.select2.select2("val"),b.onChange(!0)})}else this.select2=null},onInputChange:function(){this.value=this.input.value,this.onChange(!0)},postBuild:function(){this._super(),this.setupSelect2()},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){var a=this.getTitle().length;for(var b in this.select_values)this.select_values.hasOwnProperty(b)&&(a=Math.max(a,(this.select_values[b]+"").length+4));return Math.min(12,Math.max(a/7,2))},updateValue:function(a){for(var b=!1,c=[],d=0;d<a.length;d++)if(this.select_options[a[d]+""]){var e=this.sanitize(this.select_values[a[d]]);c.push(e),e!==a[d]&&(b=!0)}else b=!0;return this.value=c,this.select2&&(this.select2v4?this.select2.val(this.value).trigger("change"):this.select2.select2("val",this.value)),b},sanitize:function(a){return"number"===this.schema.items.type?1*a:"integer"===this.schema.items.type?Math.floor(1*a):""+a},enable:function(){if(!this.always_disabled){if(this.input)this.input.disabled=!1;else if(this.inputs)for(var a in this.inputs)this.inputs.hasOwnProperty(a)&&(this.inputs[a].disabled=!1);this.select2&&(this.select2v4?this.select2.prop("disabled",!1):this.select2.select2("enable",!0)),this._super()}},disable:function(a){if(a&&(this.always_disabled=!0),this.input)this.input.disabled=!0;else if(this.inputs)for(var b in this.inputs)this.inputs.hasOwnProperty(b)&&(this.inputs[b].disabled=!0);this.select2&&(this.select2v4?this.select2.prop("disabled",!0):this.select2.select2("enable",!1)),this._super()},destroy:function(){this.select2&&(this.select2.select2("destroy"),this.select2=null),this._super()}}),h.defaults.editors.base64=h.AbstractEditor.extend({getNumColumns:function(){return 4},setFileReaderListener:function(a){var b=this;a.addEventListener("load",function(a){if(b.count==b.current_item_index)b.value[b.count][b.key]=a.target.result;else{var c={};for(var d in b.parent.schema.properties)c[d]="";c[b.key]=a.target.result,b.value.splice(b.count,0,c)}b.count+=1,b.count==b.total+b.current_item_index&&b.arrayEditor.setValue(b.value)})},build:function(){var a=this;if(this.title=this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input),!this.schema.readOnly&&!this.schema.readonly){if(!window.FileReader)throw"FileReader required for base64 editor";this.uploader=this.theme.getFormInputField("file"),a.schema.options&&a.schema.options.multiple&&1==a.schema.options.multiple&&a.parent&&"object"==a.parent.schema.type&&a.parent.parent&&"array"==a.parent.parent.schema.type&&this.uploader.setAttribute("multiple",""),this.uploader.addEventListener("change",function(b){if(b.preventDefault(),b.stopPropagation(),this.files&&this.files.length)if(this.files.length>1&&a.schema.options&&a.schema.options.multiple&&1==a.schema.options.multiple&&a.parent&&"object"==a.parent.schema.type&&a.parent.parent&&"array"==a.parent.parent.schema.type){a.arrayEditor=a.jsoneditor.getEditor(a.parent.parent.path),a.value=a.arrayEditor.getValue(),a.total=this.files.length,a.current_item_index=parseInt(a.parent.key),a.count=a.current_item_index;for(var c=0;c<a.total;c++){var d=new FileReader;a.setFileReaderListener(d),d.readAsDataURL(this.files[c])}}else{var e=new FileReader;e.onload=function(b){a.value=b.target.result,a.refreshPreview(),a.onChange(!0),e=null},e.readAsDataURL(this.files[0])}})}this.preview=this.theme.getFormInputDescription(this.schema.description),this.container.appendChild(this.preview),this.control=this.theme.getFormControl(this.label,this.uploader||this.input,this.preview,this.infoButton),this.container.appendChild(this.control)},refreshPreview:function(){if(this.last_preview!==this.value&&(this.last_preview=this.value,this.preview.innerHTML="",this.value)){var a=this.value.match(/^data:([^;,]+)[;,]/);if(a&&(a=a[1]),a){if(this.preview.innerHTML="<strong>Type:</strong> "+a+", <strong>Size:</strong> "+Math.floor((this.value.length-this.value.split(",")[0].length-1)/1.33333)+" bytes","image"===a.substr(0,5)){this.preview.innerHTML+="<br>";var b=document.createElement("img");b.style.maxWidth="100%",b.style.maxHeight="100px",b.src=this.value,this.preview.appendChild(b)}}else this.preview.innerHTML="<em>Invalid data URI</em>"}},enable:function(){this.always_disabled||(this.uploader&&(this.uploader.disabled=!1),this._super())},disable:function(a){a&&(this.always_disabled=!0),this.uploader&&(this.uploader.disabled=!0),this._super()},setValue:function(a){this.value!==a&&(this.value=a,this.input.value=this.value,this.refreshPreview(),this.onChange())},destroy:function(){this.preview&&this.preview.parentNode&&this.preview.parentNode.removeChild(this.preview),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.uploader&&this.uploader.parentNode&&this.uploader.parentNode.removeChild(this.uploader),this._super()}}),h.defaults.editors.upload=h.AbstractEditor.extend({getNumColumns:function(){return 4},build:function(){var a=this;if(this.title=this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input),!this.schema.readOnly&&!this.schema.readonly){if(!this.jsoneditor.options.upload)throw"Upload handler required for upload editor";this.uploader=this.theme.getFormInputField("file"),this.uploader.addEventListener("change",function(b){if(b.preventDefault(),b.stopPropagation(),this.files&&this.files.length){var c=new FileReader;c.onload=function(b){a.preview_value=b.target.result,a.refreshPreview(),a.onChange(!0),c=null},c.readAsDataURL(this.files[0])}})}var b=this.schema.description;b||(b=""),this.preview=this.theme.getFormInputDescription(b),this.container.appendChild(this.preview),this.control=this.theme.getFormControl(this.label,this.uploader||this.input,this.preview),this.container.appendChild(this.control),window.requestAnimationFrame(function(){if(a.value){var b=document.createElement("img");b.style.maxWidth="100%",b.style.maxHeight="100px",b.onload=function(c){a.preview.appendChild(b)},b.onerror=function(a){console.error("upload error",a)},b.src=a.container.querySelector("a").href}})},refreshPreview:function(){if(this.last_preview!==this.preview_value&&(this.last_preview=this.preview_value,this.preview.innerHTML="",this.preview_value)){var a=this,b=this.preview_value.match(/^data:([^;,]+)[;,]/);b&&(b=b[1]),b||(b="unknown");var c=this.uploader.files[0];if(this.preview.innerHTML="<strong>Type:</strong> "+b+", <strong>Size:</strong> "+c.size+" bytes","image"===b.substr(0,5)){this.preview.innerHTML+="<br>";var d=document.createElement("img");d.style.maxWidth="100%",d.style.maxHeight="100px",d.src=this.preview_value,this.preview.appendChild(d)}this.preview.innerHTML+="<br>";var e=this.getButton("Upload","upload","Upload");this.preview.appendChild(e),e.addEventListener("click",function(b){b.preventDefault(),e.setAttribute("disabled","disabled"),a.theme.removeInputError(a.uploader),a.theme.getProgressBar&&(a.progressBar=a.theme.getProgressBar(),a.preview.appendChild(a.progressBar)),a.jsoneditor.options.upload(a.path,c,{success:function(b){a.setValue(b),a.parent?a.parent.onChildEditorChange(a):a.jsoneditor.onChange(),
          +
          18 a.progressBar&&a.preview.removeChild(a.progressBar),e.removeAttribute("disabled")},failure:function(b){a.theme.addInputError(a.uploader,b),a.progressBar&&a.preview.removeChild(a.progressBar),e.removeAttribute("disabled")},updateProgress:function(b){a.progressBar&&(b?a.theme.updateProgressBar(a.progressBar,b):a.theme.updateProgressBarUnknown(a.progressBar))}})}),(this.jsoneditor.options.auto_upload||this.schema.options.auto_upload)&&(e.dispatchEvent(new MouseEvent("click")),this.preview.removeChild(e))}},enable:function(){this.always_disabled||(this.uploader&&(this.uploader.disabled=!1),this._super())},disable:function(a){a&&(this.always_disabled=!0),this.uploader&&(this.uploader.disabled=!0),this._super()},setValue:function(a){this.value!==a&&(this.value=a,this.input.value=this.value,this.onChange())},destroy:function(){this.preview&&this.preview.parentNode&&this.preview.parentNode.removeChild(this.preview),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.uploader&&this.uploader.parentNode&&this.uploader.parentNode.removeChild(this.uploader),this._super()}}),h.defaults.editors.checkbox=h.AbstractEditor.extend({setValue:function(a,b){this.value=!!a,this.input.checked=this.value,this.onChange()},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){return Math.min(12,Math.max(this.getTitle().length/7,2))},build:function(){var a=this;this.options.compact||(this.label=this.header=this.theme.getCheckboxLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.input=this.theme.getCheckbox(),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.input.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.value=this.checked,a.onChange(!0)}),this.container.appendChild(this.control)},enable:function(){this.always_disabled||(this.input.disabled=!1,this._super())},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this._super()},destroy:function(){this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this._super()},showValidationErrors:function(a){var b=this;if("always"===this.jsoneditor.options.show_errors);else if(!this.is_dirty&&this.previous_error_setting===this.jsoneditor.options.show_errors)return;this.previous_error_setting=this.jsoneditor.options.show_errors;var c=[];f(a,function(a,d){d.path===b.path&&c.push(d.message)}),this.input.controlgroup=this.control,c.length?this.theme.addInputError(this.input,c.join(". ")+"."):this.theme.removeInputError(this.input)}}),h.defaults.editors.arraySelectize=h.AbstractEditor.extend({build:function(){this.title=this.theme.getFormInputLabel(this.getTitle()),this.title_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.error_holder=document.createElement("div"),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description)),this.input=document.createElement("select"),this.input.setAttribute("multiple","multiple");var a=this.theme.getFormControl(this.title,this.input,this.description);this.container.appendChild(a),this.container.appendChild(this.error_holder),window.jQuery(this.input).selectize({delimiter:!1,createOnBlur:!0,create:!0})},postBuild:function(){var a=this;this.input.selectize.on("change",function(b){a.refreshValue(),a.onChange(!0)})},destroy:function(){this.empty(!0),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this._super()},empty:function(a){},setValue:function(a,b){var c=this;a=a||[],Array.isArray(a)||(a=[a]),this.input.selectize.clearOptions(),this.input.selectize.clear(!0),a.forEach(function(a){c.input.selectize.addOption({text:a,value:a})}),this.input.selectize.setValue(a),this.refreshValue(b)},refreshValue:function(a){this.value=this.input.selectize.getValue()},showValidationErrors:function(a){var b=this,c=[],d=[];if(f(a,function(a,e){e.path===b.path?c.push(e):d.push(e)}),this.error_holder)if(c.length){this.error_holder.innerHTML="",this.error_holder.style.display="",f(c,function(a,c){b.error_holder.appendChild(b.theme.getErrorMessage(c.message))})}else this.error_holder.style.display="none"}}),h.defaults.editors.starrating=h.defaults.editors.string.extend({build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.ratingContainer=document.createElement("div"),this.ratingContainer.classList.add("starrating"),this.enum_values=this.schema["enum"],this.radioGroup=[];for(var b=function(b){b.preventDefault(),b.stopPropagation(),a.setValue(this.value),a.onChange(!0)},c=this.enum_values.length-1;c>-1;c--){var d=this.key+"-"+c,e=this.theme.getFormInputField("radio");e.name=this.formname+"[starrating]",e.value=this.enum_values[c],e.id=d,e.addEventListener("change",b,!1),this.radioGroup.push(e);var f=document.createElement("label");f.htmlFor=d,f.title=this.enum_values[c],this.options.displayValue&&f.classList.add("starrating-display-enabled"),this.ratingContainer.appendChild(e),this.ratingContainer.appendChild(f)}if(this.options.displayValue&&(this.displayRating=document.createElement("div"),this.displayRating.classList.add("starrating-display"),this.displayRating.innerText=this.enum_values[0],this.ratingContainer.appendChild(this.displayRating)),this.schema.readOnly||this.schema.readonly){this.always_disabled=!0;for(var g=0;c<this.radioGroup.length;g++)this.radioGroup[g].disabled=!0;this.ratingContainer.classList.add("readonly")}var h=this.theme.getContainer();h.appendChild(this.ratingContainer),this.input=h,this.control=this.theme.getFormControl(this.label,h,this.description,this.infoButton),this.container.appendChild(this.control)},enable:function(){if(!this.always_disabled){for(var a=0;a<this.radioGroup.length;a++)this.radioGroup[a].disabled=!1;this.ratingContainer.classList.remove("readonly"),this._super()}},disable:function(a){a&&(this.always_disabled=!0);for(var b=0;b<this.radioGroup.length;b++)this.radioGroup[b].disabled=!0;this.ratingContainer.classList.add("readonly"),this._super()},destroy:function(){this.ratingContainer.parentNode&&this.ratingContainer.parentNode.parentNode&&this.ratingContainer.parentNode.parentNode.removeChild(this.ratingContainer.parentNode),this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this._super()},getNumColumns:function(){return 2},setValue:function(a){for(var b=0;b<this.radioGroup.length;b++)if(this.radioGroup[b].value==a){this.radioGroup[b].checked=!0,this.value=a,this.options.displayValue&&(this.displayRating.innerHTML=this.value),this.onChange();break}}}),h.defaults.editors.datetime=h.defaults.editors.string.extend({build:function(){if(this._super(),this.input&&window.flatpickr&&"object"==typeof this.options.flatpickr){this.options.flatpickr.enableTime="date"!=this.schema.format,this.options.flatpickr.noCalendar="time"==this.schema.format,"integer"==this.schema.type&&(this.options.flatpickr.mode="single"),this.input.setAttribute("data-input","");var a=this.input;if(this.options.flatpickr.wrap===!0){var c=[];if(this.options.flatpickr.showToggleButton!==!1){var d=this.getButton("","time"==this.schema.format?"time":"calendar",this.translate("flatpickr_toggle_button"));d.setAttribute("data-toggle",""),c.push(d)}if(this.options.flatpickr.showClearButton!==!1){var e=this.getButton("","clear",this.translate("flatpickr_clear_button"));e.setAttribute("data-clear",""),c.push(e)}var f=this.input.parentNode,g=this.input.nextSibling,h=this.theme.getInputGroup(this.input,c);h!==b?(this.options.flatpickr.inline=!1,f.insertBefore(h,g),a=h):this.options.flatpickr.wrap=!1}this.flatpickr=window.flatpickr(a,this.options.flatpickr),this.options.flatpickr.inline===!0&&this.options.flatpickr.inlineHideInput===!0&&this.input.setAttribute("type","hidden")}},getValue:function(){if(!this.dependenciesFulfilled)return b;if("string"==this.schema.type)return this.value;if(""===this.value||this.value===b)return b;var a="time"==this.schema.format?"1970-01-01 "+this.value:this.value;return parseInt(new Date(a).getTime()/1e3)},setValue:function(a,b,c){if("string"==this.schema.type)this._super(a,b,c),this.flatpickr&&this.flatpickr.setDate(a);else if(a>0){var d=new Date(1e3*a),e=d.getFullYear(),f=this.zeroPad(d.getMonth()+1),g=this.zeroPad(d.getDate()),h=this.zeroPad(d.getHours()),i=this.zeroPad(d.getMinutes()),j=this.zeroPad(d.getSeconds()),k=[e,f,g].join("-"),l=[h,i,j].join(":"),m=k+" "+l;"date"==this.schema.format?m=k:"time"==this.schema.format&&(m=l),this.input.value=m,this.flatpickr&&this.flatpickr.setDate(m)}},destroy:function(){this.flatpickr&&this.flatpickr.destroy(),this.flatpickr=null,this._super()},zeroPad:function(a){return("0"+a).slice(-2)}}),h.defaults.editors.signature=h.defaults.editors.string.extend({build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description));var b=this.formname.replace(/\W/g,"");if("function"==typeof SignaturePad){var c="json-editor-style-signature";document.getElementById(c);this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input);var d=document.createElement("div");d.classList.add("signature-container");var e=document.createElement("canvas");e.setAttribute("name",b),e.classList.add("signature"),d.appendChild(e),a.signaturePad=new window.SignaturePad(e,{onEnd:function(){a.signaturePad.isEmpty()?a.input.value="":a.input.value=a.signaturePad.toDataURL(),a.is_dirty=!0,a.refreshValue(),a.watch_listener(),a.jsoneditor.notifyWatchers(a.path),a.parent?a.parent.onChildEditorChange(a):a.jsoneditor.onChange()}});var g=document.createElement("div"),h=document.createElement("button");h.classList.add("tiny","button"),h.innerHTML="Clear signature",g.appendChild(h),d.appendChild(g),this.options.compact&&this.container.setAttribute("class",this.container.getAttribute("class")+" compact"),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,f(this.inputs,function(a,b){e.setAttribute("readOnly","readOnly"),b.disabled=!0})),h.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.signaturePad.clear(),a.signaturePad.strokeEnd()}),this.control=this.theme.getFormControl(this.label,d,this.description),this.container.appendChild(this.control),this.refreshValue(),e.width=d.offsetWidth,a.options&&a.options.canvas_height?e.height=a.options.canvas_height:e.height="300"}else{var i=document.createElement("p");i.innerHTML="Signature pad is not available, please include SignaturePad from https://github.com/szimek/signature_pad",this.container.appendChild(i)}},setValue:function(a){var b=this;if("function"==typeof SignaturePad){var c=(this.formname.replace(/\W/g,""),this.sanitize(a));if(this.value===c)return;return b.value=c,b.input.value=b.value,b.signaturePad.clear(),a&&""!=a&&b.signaturePad.fromDataURL(a),b.watch_listener(),b.jsoneditor.notifyWatchers(b.path),!1}},destroy:function(){var a=this;this.formname.replace(/\W/g,"");a.signaturePad.off(),delete a.signaturePad}});var i=function(){var a=document.documentElement;return a.matches?"matches":a.webkitMatchesSelector?"webkitMatchesSelector":a.mozMatchesSelector?"mozMatchesSelector":a.msMatchesSelector?"msMatchesSelector":a.oMatchesSelector?"oMatchesSelector":void 0}();return h.AbstractTheme=c.extend({getContainer:function(){return document.createElement("div")},getFloatRightLinkHolder:function(){var a=document.createElement("div");return a.style=a.style||{},a.style.cssFloat="right",a.style.marginLeft="10px",a},getModal:function(){var a=document.createElement("div");return a.style.backgroundColor="white",a.style.border="1px solid black",a.style.boxShadow="3px 3px black",a.style.position="absolute",a.style.zIndex="10",a.style.display="none",a},getGridContainer:function(){var a=document.createElement("div");return a},getGridRow:function(){var a=document.createElement("div");return a.classList.add("row"),a},getGridColumn:function(){var a=document.createElement("div");return a},setGridColumnSize:function(a,b){},getLink:function(a){var b=document.createElement("a");return b.setAttribute("href","#"),b.appendChild(document.createTextNode(a)),b},disableHeader:function(a){a.style.color="#ccc"},disableLabel:function(a){a.style.color="#ccc"},enableHeader:function(a){a.style.color=""},enableLabel:function(a){a.style.color=""},getInfoButton:function(a){var b=document.createElement("span");b.innerText="ⓘ",b.style.fontSize="16px",b.style.fontWeight="bold",b.style.padding=".25rem",b.style.position="relative",b.style.display="inline-block";var c=document.createElement("span");return c.style.fontSize="12px",b.style.fontWeight="normal",c.style["font-family"]="sans-serif",c.style.visibility="hidden",c.style["background-color"]="rgba(50, 50, 50, .75)",c.style.margin="0 .25rem",c.style.color="#FAFAFA",c.style.padding=".5rem 1rem",c.style["border-radius"]=".25rem",c.style.width="20rem",c.style.position="absolute",c.innerText=a,b.onmouseover=function(){c.style.visibility="visible"},b.onmouseleave=function(){c.style.visibility="hidden"},b.appendChild(c),b},getFormInputLabel:function(a){var b=document.createElement("label");return b.appendChild(document.createTextNode(a)),b},getCheckboxLabel:function(a){var b=this.getFormInputLabel(a);return b.style.fontWeight="normal",b},getHeader:function(a){var b=document.createElement("h3");return"string"==typeof a?b.textContent=a:b.appendChild(a),b},getCheckbox:function(){var a=this.getFormInputField("checkbox");return a.style.display="inline-block",a.style.width="auto",a},getMultiCheckboxHolder:function(a,b,c){var d=document.createElement("div");b&&(b.style.display="block",d.appendChild(b));for(var e in a)a.hasOwnProperty(e)&&(a[e].style.display="inline-block",a[e].style.marginRight="20px",d.appendChild(a[e]));return c&&d.appendChild(c),d},getSelectInput:function(a){var b=document.createElement("select");return a&&this.setSelectOptions(b,a),b},getSwitcher:function(a){var b=this.getSelectInput(a);return b.style.backgroundColor="transparent",b.style.display="inline-block",b.style.fontStyle="italic",b.style.fontWeight="normal",b.style.height="auto",b.style.marginBottom=0,b.style.marginLeft="5px",b.style.padding="0 0 0 3px",b.style.width="auto",b},getSwitcherOptions:function(a){return a.getElementsByTagName("option")},setSwitcherOptions:function(a,b,c){this.setSelectOptions(a,b,c)},setSelectOptions:function(a,b,c){c=c||[],a.innerHTML="";for(var d=0;d<b.length;d++){var e=document.createElement("option");e.setAttribute("value",b[d]),e.textContent=c[d]||b[d],a.appendChild(e)}},getTextareaInput:function(){var a=document.createElement("textarea");return a.style=a.style||{},a.style.width="100%",a.style.height="300px",a.style.boxSizing="border-box",a},getRangeInput:function(a,b,c){var d=this.getFormInputField("range");return d.setAttribute("min",a),d.setAttribute("max",b),d.setAttribute("step",c),d},getFormInputField:function(a){var b=document.createElement("input");return b.setAttribute("type",a),b},afterInputReady:function(a){},getFormControl:function(a,b,c,d){var e=document.createElement("div");return e.classList.add("form-control"),a&&e.appendChild(a),"checkbox"===b.type&&a?(a.insertBefore(b,a.firstChild),d&&a.appendChild(d)):(d&&a.appendChild(d),e.appendChild(b)),c&&e.appendChild(c),e},getIndentedPanel:function(){var a=document.createElement("div");return a.style=a.style||{},a.style.paddingLeft="10px",a.style.marginLeft="10px",a.style.borderLeft="1px solid #ccc",a},getTopIndentedPanel:function(){var a=document.createElement("div");return a.style=a.style||{},a.style.paddingLeft="10px",a.style.marginLeft="10px",a},getChildEditorHolder:function(){return document.createElement("div")},getDescription:function(a){var b=document.createElement("p");return b.innerHTML=a,b},getCheckboxDescription:function(a){return this.getDescription(a)},getFormInputDescription:function(a){return this.getDescription(a)},getHeaderButtonHolder:function(){return this.getButtonHolder()},getButtonHolder:function(){return document.createElement("div")},getButton:function(a,b,c){var d=document.createElement("button");return d.type="button",this.setButtonText(d,a,b,c),d},setButtonText:function(a,b,c,d){for(;a.firstChild;)a.removeChild(a.firstChild);c&&(a.appendChild(c),b=" "+b);var e=document.createElement("span");e.appendChild(document.createTextNode(b)),a.appendChild(e),d&&a.setAttribute("title",d)},getTable:function(){return document.createElement("table")},getTableRow:function(){return document.createElement("tr")},getTableHead:function(){return document.createElement("thead")},getTableBody:function(){return document.createElement("tbody")},getTableHeaderCell:function(a){var b=document.createElement("th");return b.textContent=a,b},getTableCell:function(){var a=document.createElement("td");return a},getErrorMessage:function(a){var b=document.createElement("p");return b.style=b.style||{},b.style.color="red",b.appendChild(document.createTextNode(a)),b},addInputError:function(a,b){},removeInputError:function(a){},addTableRowError:function(a){},removeTableRowError:function(a){},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<div style='float: left; width: 130px;' class='tabs' id='"+b+"'></div><div class='content' style='margin-left: 120px;' id='"+b+"'></div><div style='clear:both;'></div>",c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<div class='tabs' style='margin-left: 10px;' id='"+b+"'></div><div style='clear:both;'></div><div class='content' id='"+b+"'></div>",c},applyStyles:function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a.style[c]=b[c])},closest:function(a,b){for(;a&&a!==document;){if(!a[i])return!1;if(a[i](b))return a;a=a.parentNode}return!1},insertBasicTopTab:function(a,b){b.firstChild.insertBefore(a,b.firstChild.firstChild)},getTab:function(a,b){var c=document.createElement("div");return c.appendChild(a),c.id=b,c.style=c.style||{},this.applyStyles(c,{border:"1px solid #ccc",borderWidth:"1px 0 1px 1px",textAlign:"center",lineHeight:"30px",borderRadius:"5px",borderBottomRightRadius:0,borderTopRightRadius:0,fontWeight:"bold",cursor:"pointer"}),c},getTopTab:function(a,b){var c=document.createElement("div");return c.id=b,c.appendChild(a),c.style=c.style||{},this.applyStyles(c,{"float":"left",border:"1px solid #ccc",borderWidth:"1px 1px 0px 1px",textAlign:"center",lineHeight:"30px",borderRadius:"5px",paddingLeft:"5px",paddingRight:"5px",borderBottomRightRadius:0,borderBottomLeftRadius:0,fontWeight:"bold",cursor:"pointer"}),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){return this.getIndentedPanel()},getTopTabContent:function(){return this.getTopIndentedPanel()},markTabActive:function(a){this.applyStyles(a.tab,{opacity:1,background:"white"}),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){this.applyStyles(a.tab,{opacity:.5,background:""}),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)},getBlockLink:function(){var a=document.createElement("a");return a.style.display="block",a},getBlockLinkHolder:function(){var a=document.createElement("div");return a},getLinksHolder:function(){var a=document.createElement("div");return a},createMediaLink:function(a,b,c){a.appendChild(b),c.style.width="100%",a.appendChild(c)},createImageLink:function(a,b,c){a.appendChild(b),b.appendChild(c)},getFirstTab:function(a){return a.firstChild.firstChild},getInputGroup:function(a,c){return b}}),h.defaults.themes.bootstrap2=h.AbstractTheme.extend({getRangeInput:function(a,b,c){return this._super(a,b,c)},getGridContainer:function(){var a=document.createElement("div");return a.classList.add("container-fluid"),a},getGridRow:function(){var a=document.createElement("div");return a.classList.add("row-fluid"),a},getFormInputLabel:function(a){var b=this._super(a);return b.style.display="inline-block",b.style.fontWeight="bold",b},setGridColumnSize:function(a,b){a.classList.add("span"+b)},getSelectInput:function(a){var b=this._super(a);return b.style.width="auto",b.style.maxWidth="98%",b},getFormInputField:function(a){var b=this._super(a);return b.style.width="98%",b},afterInputReady:function(a){if(!a.controlgroup&&(a.controlgroup=this.closest(a,".control-group"),a.controls=this.closest(a,".controls"),this.closest(a,".compact")&&(a.controlgroup.className=a.controlgroup.className.replace(/control-group/g,"").replace(/[ ]{2,}/g," "),a.controls.className=a.controlgroup.className.replace(/controls/g,"").replace(/[ ]{2,}/g," "),a.style.marginBottom=0),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("well","well-small"),a.style.paddingBottom=0,a},getInfoButton:function(a){var b=document.createElement("span");b.classList.add("icon-info-sign","pull-right"),b.style.padding=".25rem",b.style.position="relative",b.style.display="inline-block";var c=document.createElement("span");return c.style["font-family"]="sans-serif",c.style.visibility="hidden",c.style["background-color"]="rgba(50, 50, 50, .75)",c.style.margin="0 .25rem",c.style.color="#FAFAFA",c.style.padding=".5rem 1rem",c.style["border-radius"]=".25rem",c.style.width="25rem",c.style.transform="translateX(-27rem) translateY(-.5rem)",c.style.position="absolute",c.innerText=a,b.onmouseover=function(){c.style.visibility="visible"},b.onmouseleave=function(){c.style.visibility="hidden"},b.appendChild(c),b},getFormInputDescription:function(a){var b=document.createElement("p");return b.classList.add("help-inline"),b.textContent=a,b},getFormControl:function(a,b,c,d){var e=document.createElement("div");e.classList.add("control-group");var f=document.createElement("div");return f.classList.add("controls"),a&&"checkbox"===b.getAttribute("type")?(e.appendChild(f),a.classList.add("checkbox"),a.appendChild(b),f.appendChild(a),d&&f.appendChild(d),f.style.height="30px"):(a&&(a.classList.add("control-label"),e.appendChild(a)),d&&f.appendChild(d),f.appendChild(b),e.appendChild(f)),c&&f.appendChild(c),e},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("btn-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("btn","btn-default"),d},getTable:function(){var a=document.createElement("table");return a.classList.add("table","table-bordered"),a.style.width="auto",a.style.maxWidth="none",a},addInputError:function(a,b){return a.controlgroup?void(a.controlgroup&&a.controls&&(a.controlgroup.classList.add("error"),a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("p"),a.errmsg.classList.add("help-block","errormsg"),a.controls.appendChild(a.errmsg)),a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.controlgroup||delete this.queuedInputErrorText,a.errmsg&&(a.errmsg.style.display="none",a.controlgroup.classList.remove("error"))},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("tabbable","tabs-left"),c.innerHTML="<ul class='nav nav-tabs' id='"+b+"'></ul><div class='tab-content well well-small' id='"+b+"'></div>",c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("tabbable","tabs-over"),c.innerHTML="<ul class='nav nav-tabs' id='"+b+"'></ul><div class='tab-content well well-small' id='"+b+"'></div>",c},getTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.add("active"):a.container.classList.add("active")},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.remove("active"):a.container.classList.remove("active")},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)},getProgressBar:function(){var a=document.createElement("div");a.classList.add("progress");var b=document.createElement("div");return b.classList.add("bar"),b.style.width="0%",a.appendChild(b),a},updateProgressBar:function(a,b){a&&(a.firstChild.style.width=b+"%")},updateProgressBarUnknown:function(a){a&&(a.classList.add("progress","progress-striped","active"),a.firstChild.style.width="100%")},getInputGroup:function(a,b){if(a){var c=document.createElement("div");c.classList.add("input-append"),c.appendChild(a);for(var d=0;d<b.length;d++)b[d].classList.add("btn"),c.appendChild(b[d]);return c}}}),h.defaults.themes.bootstrap3=h.AbstractTheme.extend({getSelectInput:function(a){var b=this._super(a);return b.classList.add("form-control"),b},setGridColumnSize:function(a,b){a.classList.add("col-md-"+b)},afterInputReady:function(a){if(!a.controlgroup&&(a.controlgroup=this.closest(a,".form-group"),this.closest(a,".compact")&&(a.controlgroup.style.marginBottom=0),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},getTextareaInput:function(){var a=document.createElement("textarea");return a.classList.add("form-control"),a},getRangeInput:function(a,b,c){return this._super(a,b,c)},getFormInputField:function(a){var b=this._super(a);return"checkbox"!==a&&b.classList.add("form-control"),b},getFormControl:function(a,b,c,d){var e=document.createElement("div");return a&&"checkbox"===b.type?(e.classList.add("checkbox"),a.appendChild(b),a.style.fontSize="14px",e.style.marginTop="0",d&&e.appendChild(d),e.appendChild(a),b.style.position="relative",b.style.cssFloat="left"):(e.classList.add("form-group"),a&&(a.classList.add("control-label"),e.appendChild(a)),d&&e.appendChild(d),e.appendChild(b)),c&&e.appendChild(c),e},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("well","well-sm"),a.style.paddingBottom=0,a},getInfoButton:function(a){var b=document.createElement("span");b.classList.add("glyphicon","glyphicon-info-sign","pull-right"),b.style.padding=".25rem",b.style.position="relative",b.style.display="inline-block";var c=document.createElement("span");return c.style["font-family"]="sans-serif",c.style.visibility="hidden",c.style["background-color"]="rgba(50, 50, 50, .75)",c.style.margin="0 .25rem",c.style.color="#FAFAFA",c.style.padding=".5rem 1rem",c.style["border-radius"]=".25rem",c.style.width="25rem",c.style.transform="translateX(-27rem) translateY(-.5rem)",c.style.position="absolute",c.innerText=a,b.onmouseover=function(){c.style.visibility="visible"},b.onmouseleave=function(){c.style.visibility="hidden"},b.appendChild(c),b},getFormInputDescription:function(a){var b=document.createElement("p");return b.classList.add("help-block"),b.innerHTML=a,b},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("btn-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("btn","btn-default"),d},getTable:function(){var a=document.createElement("table");return a.classList.add("table","table-bordered"),a.style.width="auto",a.style.maxWidth="none",a},addInputError:function(a,b){return a.controlgroup?(a.controlgroup.classList.add("has-error"),a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("p"),a.errmsg.classList.add("help-block","errormsg"),a.controlgroup.appendChild(a.errmsg)),void(a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.controlgroup||delete this.queuedInputErrorText,a.errmsg&&(a.errmsg.style.display="none",a.controlgroup.classList.remove("has-error"))},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<ul class='col-md-2 nav nav-pills nav-stacked' id='"+b+"' role='tablist'></ul><div class='col-md-10 tab-content well well-small' id='"+b+"'></div>",c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<ul class='nav nav-tabs' id='"+b+"' role='tablist'></ul><div class='tab-content well well-small' id='"+b+"'></div>",c},getTab:function(a,b){var c=document.createElement("li");c.setAttribute("role","presentation");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),d.setAttribute("aria-controls",b),d.setAttribute("role","tab"),d.setAttribute("data-toggle","tab"),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.setAttribute("role","presentation");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),d.setAttribute("aria-controls",b),d.setAttribute("role","tab"),d.setAttribute("data-toggle","tab"),c.appendChild(d),c},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.add("active"):a.container.classList.add("active")},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.remove("active"):a.container.classList.remove("active")},getProgressBar:function(){var a=0,b=100,c=0,d=document.createElement("div");d.classList.add("progress");var e=document.createElement("div");return e.classList.add("progress-bar"),e.setAttribute("role","progressbar"),e.setAttribute("aria-valuenow",c),
          +
          19 e.setAttribute("aria-valuemin",a),e.setAttribute("aria-valuenax",b),e.innerHTML=c+"%",d.appendChild(e),d},updateProgressBar:function(a,b){if(a){var c=a.firstChild,d=b+"%";c.setAttribute("aria-valuenow",b),c.style.width=d,c.innerHTML=d}},updateProgressBarUnknown:function(a){if(a){var b=a.firstChild;a.classList.add("progress","progress-striped","active"),b.removeAttribute("aria-valuenow"),b.style.width="100%",b.innerHTML=""}},getInputGroup:function(a,b){if(a){var c=document.createElement("div");c.classList.add("input-group"),c.appendChild(a);var d=document.createElement("div");d.classList.add("input-group-btn"),c.appendChild(d);for(var e=0;e<b.length;e++)d.appendChild(b[e]);return c}}}),h.defaults.themes.bootstrap4=h.AbstractTheme.extend({getSelectInput:function(a){var b=this._super(a);return b.classList.add("form-control"),b},setGridColumnSize:function(a,b){a.classList.add("col-md-"+b)},afterInputReady:function(a){a.controlgroup||(a.controlgroup=this.closest(a,".form-group"),this.closest(a,".compact")&&(a.controlgroup.style.marginBottom=0))},getTextareaInput:function(){var a=document.createElement("textarea");return a.classList.add("form-control"),a},getRangeInput:function(a,b,c){return this._super(a,b,c)},getFormInputField:function(a){var b=this._super(a);return"checkbox"!==a&&b.classList.add("form-control"),b},getFormControl:function(a,b,c){var d=document.createElement("div");return a&&"checkbox"===b.type?(d.classList.add("checkbox"),a.appendChild(b),a.style.fontSize="14px",d.style.marginTop="0",d.appendChild(a),b.style.position="relative",b.style.cssFloat="left"):(d.classList.add("form-group"),a&&(a.classList.add("form-control-label"),d.appendChild(a)),d.appendChild(b)),c&&d.appendChild(c),d},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("card","card-body","bg-light"),a},getFormInputDescription:function(a){var b=document.createElement("p");return b.classList.add("form-text"),b.innerHTML=a,b},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("btn-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("btn","btn-secondary"),d},getTable:function(){var a=document.createElement("table");return a.classList.add("table-bordered","table-sm"),a.style.width="auto",a.style.maxWidth="none",a},addInputError:function(a,b){a.controlgroup&&(a.controlgroup.classList.add("has-danger"),a.classList.add("is-invalid"),a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("p"),a.errmsg.classList.add("form-text","invalid-feedback"),a.controlgroup.appendChild(a.errmsg)),a.errmsg.textContent=b)},removeInputError:function(a){a.errmsg&&(a.errmsg.style.display="none",a.classList.remove("is-invalid"),a.controlgroup.classList.remove("has-danger"))},getTabHolder:function(a){var b=document.createElement("div"),c="undefined"==typeof a?"":a;return b.innerHTML="<div class='col-md-2' id='"+c+"'><ul class='nav flex-column nav-pills'></ul></div><div class='tab-content col-md-10' id='"+c+"'></div>",b.classList.add("row"),b},addTab:function(a,b){a.children[0].children[0].appendChild(b)},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<ul class='nav nav-tabs' id='"+b+"'></ul><div class='card-body tab-content' id='"+b+"'></div>",c},getTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.classList.add("nav-link"),d.setAttribute("style","padding:10px;"),d.setAttribute("href","#"+b),d.setAttribute("data-toggle","tab"),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.classList.add("nav-link"),d.setAttribute("href","#"+b),d.setAttribute("data-toggle","tab"),d.appendChild(a),c.appendChild(d),c},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},markTabActive:function(a){a.tab.firstChild.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.add("active"):a.container.classList.add("active")},markTabInactive:function(a){a.tab.firstChild.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.remove("active"):a.container.classList.remove("active")},getProgressBar:function(){var a=0,b=100,c=0,d=document.createElement("div");d.classList.add("progress");var e=document.createElement("div");return e.classList.add("progress-bar"),e.setAttribute("role","progressbar"),e.setAttribute("aria-valuenow",c),e.setAttribute("aria-valuemin",a),e.setAttribute("aria-valuenax",b),e.innerHTML=c+"%",d.appendChild(e),d},updateProgressBar:function(a,b){if(a){var c=a.firstChild,d=b+"%";c.setAttribute("aria-valuenow",b),c.style.width=d,c.innerHTML=d}},updateProgressBarUnknown:function(a){if(a){var b=a.firstChild;a.classList.add("progress","progress-striped","active"),b.removeAttribute("aria-valuenow"),b.style.width="100%",b.innerHTML=""}},getInputGroup:function(a,b){if(a){var c=document.createElement("div");c.classList.add("input-group"),c.appendChild(a);var d=document.createElement("div");d.classList.add("input-group-prepend"),c.appendChild(d);for(var e=0;e<b.length;e++)d.appendChild(b[e]);return c}}}),h.defaults.themes.foundation=h.AbstractTheme.extend({getChildEditorHolder:function(){var a=document.createElement("div");return a.style.marginBottom="15px",a},getSelectInput:function(a){var b=this._super(a);return b.style.minWidth="none",b.style.padding="5px",b.style.marginTop="3px",b},getSwitcher:function(a){var b=this._super(a);return b.style.paddingRight="8px",b},afterInputReady:function(a){if(!a.group&&(this.closest(a,".compact")&&(a.style.marginBottom=0),a.group=this.closest(a,".form-control"),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},getFormInputLabel:function(a){var b=this._super(a);return b.style.display="inline-block",b},getFormInputField:function(a){var b=this._super(a);return b.style.width="100%",b.style.marginBottom="checkbox"===a?"0":"12px",b},getFormInputDescription:function(a){var b=document.createElement("p");return b.textContent=a,b.style.marginTop="-10px",b.style.fontStyle="italic",b},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("panel"),a.style.paddingBottom=0,a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.display="inline-block",a.style.marginLeft="10px",a.style.verticalAlign="middle",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("button-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("small","button"),d},addInputError:function(a,b){return a.group?(a.group.classList.add("error"),a.errmsg?a.errmsg.style.display="":(a.insertAdjacentHTML("afterend",'<small class="error"></small>'),a.errmsg=a.parentNode.getElementsByClassName("error")[0]),void(a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.group||delete this.queuedInputErrorText,a.errmsg&&(a.group.classList.remove("error"),a.errmsg.style.display="none")},getProgressBar:function(){var a=document.createElement("div");a.classList.add("progress");var b=document.createElement("span");return b.classList.add("meter"),b.style.width="0%",a.appendChild(b),a},updateProgressBar:function(a,b){a&&(a.firstChild.style.width=b+"%")},updateProgressBarUnknown:function(a){a&&(a.firstChild.style.width="100%")},getInputGroup:function(a,c){if(!a)return b;var d=document.createElement("div");d.classList.add("input-group"),a.classList.add("input-group-field"),d.appendChild(a);for(var e=0;e<c.length;e++){var f=document.createElement("div");f.classList.add("input-group-button"),f.style.verticalAlign="top",c[e].classList.remove("small"),f.appendChild(c[e]),d.appendChild(f)}return d}}),h.defaults.themes.foundation3=h.defaults.themes.foundation.extend({getHeaderButtonHolder:function(){var a=this._super();return a.style.fontSize=".6em",a},getFormInputLabel:function(a){var b=this._super(a);return b.style.fontWeight="bold",b},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("row"),c.innerHTML='<dl class="tabs vertical two columns" id="'+b+'"></dl><div class="tabs-content ten columns" id="'+b+'"></div>',c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("row"),c.innerHTML='<dl class="tabs horizontal" style="padding-left: 10px; margin-left: 10px;" id="'+b+'"></dl><div class="tabs-content twelve columns" style="padding: 10px; margin-left: 10px;" id="'+b+'"></div>',c},setGridColumnSize:function(a,b){var c=["zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve"];a.classList.add("columns",c[b])},getTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("content","active"),a.style.paddingLeft="5px",a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("content","active"),a.style.paddingLeft="5px",a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)}}),h.defaults.themes.foundation4=h.defaults.themes.foundation.extend({getHeaderButtonHolder:function(){var a=this._super();return a.style.fontSize=".6em",a},setGridColumnSize:function(a,b){a.classList.add("columns","large-"+b)},getFormInputDescription:function(a){var b=this._super(a);return b.style.fontSize=".8rem",b},getFormInputLabel:function(a){var b=this._super(a);return b.style.fontWeight="bold",b}}),h.defaults.themes.foundation5=h.defaults.themes.foundation.extend({getFormInputDescription:function(a){var b=this._super(a);return b.style.fontSize=".8rem",b},setGridColumnSize:function(a,b){a.classList.add("columns","medium-"+b)},getButton:function(a,b,c){var d=this._super(a,b,c);return d.className=d.className.replace(/\s*small/g,"")+" tiny",d},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML='<dl class="tabs vertical" id="'+b+'"></dl><div class="tabs-content vertical" id="'+b+'"></div>',c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("row"),c.innerHTML='<dl class="tabs horizontal" style="padding-left: 10px;" id="'+b+'"></dl><div class="tabs-content horizontal" style="padding: 10px;" id="'+b+'"></div>',c},getTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-content","active"),a.style.paddingLeft="5px",a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-content","active"),a.style.paddingLeft="5px",a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)}}),h.defaults.themes.foundation6=h.defaults.themes.foundation5.extend({getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("callout","secondary"),a.style="padding-left: 10px; margin-left: 10px;",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("button-group","tiny"),a.style.marginBottom=0,a},getFormInputLabel:function(a){var b=this._super(a);return b.style.display="block",b},getFormControl:function(a,b,c,d){var e=document.createElement("div");return e.classList.add("form-control"),a&&e.appendChild(a),"checkbox"===b.type?a.insertBefore(b,a.firstChild):a?(d&&a.appendChild(d),a.appendChild(b)):(d&&e.appendChild(d),e.appendChild(b)),c&&a.appendChild(c),e},addInputError:function(a,b){if(a.group){if(a.group.classList.add("error"),a.errmsg)a.errmsg.style.display="",a.className="";else{var c=document.createElement("span");c.classList.add("form-error","is-visible"),a.group.getElementsByTagName("label")[0].appendChild(c),a.classList.add("is-invalid-input"),a.errmsg=c}a.errmsg.textContent=b}},removeInputError:function(a){a.errmsg&&(a.classList.remove("is-invalid-input"),a.errmsg.parentNode&&a.errmsg.parentNode.removeChild(a.errmsg))},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("grid-x"),c.innerHTML='<div class="medium-2 cell" style="float: left;"><ul class="vertical tabs" data-tabs id="'+b+'"></ul></div><div class="medium-10 cell" style="float: left;"><div class="tabs-content" data-tabs-content="'+b+'"></div></div>',c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("grid-y"),c.innerHTML='<div className="cell"><ul class="tabs" data-tabs id="'+b+'"></ul><div class="tabs-content" data-tabs-content="'+b+'"></div></div>',c},insertBasicTopTab:function(a,b){b.firstChild.firstChild.insertBefore(a,b.firstChild.firstChild.firstChild)},getTab:function(a,b){var c=document.createElement("li");c.classList.add("tabs-title");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.classList.add("tabs-title");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1].firstChild},getTopTabContentHolder:function(a){return a.firstChild.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tabs-panel"),a.style.paddingLeft="5px",a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tabs-panel"),a.style.paddingLeft="5px",a},markTabActive:function(a){a.tab.classList.add("is-active"),a.tab.firstChild.setAttribute("aria-selected","true"),"undefined"!=typeof a.rowPane?(a.rowPane.classList.add("is-active"),a.rowPane.setAttribute("aria-selected","true")):(a.container.classList.add("is-active"),a.container.setAttribute("aria-selected","true"))},markTabInactive:function(a){a.tab.classList.remove("is-active"),a.tab.firstChild.removeAttribute("aria-selected"),"undefined"!=typeof a.rowPane?(a.rowPane.classList.remove("is-active"),a.rowPane.removeAttribute("aria-selected")):(a.container.classList.remove("is-active"),a.container.removeAttribute("aria-selected"))},addTab:function(a,b){a.children[0].firstChild.appendChild(b)},addTopTab:function(a,b){a.firstChild.children[0].appendChild(b)},getFirstTab:function(a){return a.firstChild.firstChild.firstChild}}),h.defaults.themes.html=h.AbstractTheme.extend({getFormInputLabel:function(a){var b=this._super(a);return b.style.display="block",b.style.marginBottom="3px",b.style.fontWeight="bold",b},getFormInputDescription:function(a){var b=this._super(a);return b.style.fontSize=".8em",b.style.margin=0,b.style.display="inline-block",b.style.fontStyle="italic",b},getIndentedPanel:function(){var a=this._super();return a.style.border="1px solid #ddd",a.style.padding="5px",a.style.margin="10px",a.style.borderRadius="3px",a},getTopIndentedPanel:function(){return this.getIndentedPanel()},getChildEditorHolder:function(){var a=this._super();return a.style.marginBottom="8px",a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.display="inline-block",a.style.marginLeft="10px",a.style.fontSize=".8em",a.style.verticalAlign="middle",a},getTable:function(){var a=this._super();return a.style.borderBottom="1px solid #ccc",a.style.marginBottom="5px",a},addInputError:function(a,b){if(a.style.borderColor="red",a.errmsg)a.errmsg.style.display="block";else{var c=this.closest(a,".form-control");a.errmsg=document.createElement("div"),a.errmsg.setAttribute("class","errmsg"),a.errmsg.style=a.errmsg.style||{},a.errmsg.style.color="red",c.appendChild(a.errmsg)}a.errmsg.innerHTML="",a.errmsg.appendChild(document.createTextNode(b))},removeInputError:function(a){a.style.borderColor="",a.errmsg&&(a.errmsg.style.display="none")},getProgressBar:function(){var a=100,b=0,c=document.createElement("progress");return c.setAttribute("max",a),c.setAttribute("value",b),c},updateProgressBar:function(a,b){a&&a.setAttribute("value",b)},updateProgressBarUnknown:function(a){a&&a.removeAttribute("value")}}),h.defaults.themes.jqueryui=h.AbstractTheme.extend({getTable:function(){var a=this._super();return a.setAttribute("cellpadding",5),a.setAttribute("cellspacing",0),a},getTableHeaderCell:function(a){var b=this._super(a);return b.classList.add("ui-state-active"),b.style.fontWeight="bold",b},getTableCell:function(){var a=this._super();return a.classList.add("ui-widget-content"),a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a.style.fontSize=".6em",a.style.display="inline-block",a},getFormInputDescription:function(a){var b=this.getDescription(a);return b.style.marginLeft="10px",b.style.display="inline-block",b},getFormControl:function(a,b,c,d){var e=this._super(a,b,c,d);return"checkbox"===b.type?(e.style.lineHeight="25px",e.style.padding="3px 0"):e.style.padding="4px 0 8px 0",e},getDescription:function(a){var b=document.createElement("span");return b.style.fontSize=".8em",b.style.fontStyle="italic",b.textContent=a,b},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("ui-buttonset"),a.style.fontSize=".7em",a},getFormInputLabel:function(a){var b=document.createElement("label");return b.style.fontWeight="bold",b.style.display="block",b.textContent=a,b},getButton:function(a,b,c){var d=document.createElement("button");d.classList.add("ui-button","ui-widget","ui-state-default","ui-corner-all"),b&&!a?(d.classList.add("ui-button-icon-only"),b.classList.add("ui-button-icon-primary","ui-icon-primary"),d.appendChild(b)):b?(d.classList.add("ui-button-text-icon-primary"),b.classList.add("ui-button-icon-primary","ui-icon-primary"),d.appendChild(b)):d.classList.add("ui-button-text-only");var e=document.createElement("span");return e.classList.add("ui-button-text"),e.textContent=a||c||".",d.appendChild(e),d.setAttribute("title",c),d},setButtonText:function(a,b,c,d){a.innerHTML="",a.classList.add("ui-button","ui-widget","ui-state-default","ui-corner-all"),c&&!b?(a.classList.add("ui-button-icon-only"),c.classList.add("ui-button-icon-primary","ui-icon-primary"),a.appendChild(c)):c?(a.classList.add("ui-button-text-icon-primary"),c.classList.add("ui-button-icon-primary","ui-icon-primary"),a.appendChild(c)):a.classList.add("ui-button-text-only");var e=document.createElement("span");e.classList.add("ui-button-text"),e.textContent=b||d||".",a.appendChild(e),a.setAttribute("title",d)},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("ui-widget-content","ui-corner-all"),a.style.padding="1em 1.4em",a.style.marginBottom="20px",a},afterInputReady:function(a){if(!a.controls&&(a.controls=this.closest(a,".form-control"),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},addInputError:function(a,b){return a.controls?(a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("div"),a.errmsg.classList.add("ui-state-error"),a.controls.appendChild(a.errmsg)),void(a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.controls||delete this.queuedInputErrorText,a.errmsg&&(a.errmsg.style.display="none")},markTabActive:function(a){a.tab.classList.remove("ui-widget-header"),a.tab.classList.add("ui-state-active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){a.tab.classList.add("ui-widget-header"),a.tab.classList.remove("ui-state-active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"}}),h.defaults.themes.barebones=h.AbstractTheme.extend({getFormInputLabel:function(a){var b=this._super(a);return b},getFormInputDescription:function(a){var b=this._super(a);return b},getIndentedPanel:function(){var a=this._super();return a},getChildEditorHolder:function(){var a=this._super();return a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a},getTable:function(){var a=this._super();return a},addInputError:function(a,b){if(a.errmsg)a.errmsg.style.display="block";else{var c=this.closest(a,".form-control");a.errmsg=document.createElement("div"),a.errmsg.setAttribute("class","errmsg"),c.appendChild(a.errmsg)}a.errmsg.innerHTML="",a.errmsg.appendChild(document.createTextNode(b))},removeInputError:function(a){a.style.borderColor="",a.errmsg&&(a.errmsg.style.display="none")},getProgressBar:function(){var a=100,b=0,c=document.createElement("progress");return c.setAttribute("max",a),c.setAttribute("value",b),c},updateProgressBar:function(a,b){a&&a.setAttribute("value",b)},updateProgressBarUnknown:function(a){a&&a.removeAttribute("value")}}),h.defaults.themes.materialize=h.AbstractTheme.extend({setGridColumnSize:function(a,b){a.classList.add("col"),a.classList.add("s"+b)},getHeaderButtonHolder:function(){return this.getButtonHolder()},getButtonHolder:function(){return document.createElement("span")},getButton:function(a,b,c){a&&(b.classList.add("left"),b.style.marginRight="5px");var d=this._super(a,b,c);return d.classList.add("waves-effect","waves-light","btn"),d.style.fontSize="0.75rem",d.style.height="24px",d.style.lineHeight="24px",d.style.marginLeft="5px",d.style.padding="0 0.5rem",d},getFormControl:function(a,b,c,d){var e,f=b.type;if(f&&"checkbox"===f){if(e=document.createElement("p"),a){var g=document.createElement("span");g.innerHTML=a.innerHTML,a.innerHTML="",a.setAttribute("for",b.id),e.appendChild(a),a.appendChild(b),a.appendChild(g)}else e.appendChild(b);return e}return e=this._super(a,b,c,d),f&&f.startsWith("select")||e.classList.add("input-field"),f&&"color"===f&&(b.style.height="3rem",b.style.width="100%",b.style.margin="5px 0 20px 0",b.style.padding="3px",a&&(a.style.transform="translateY(-14px) scale(0.8)",a.style["-webkit-transform"]="translateY(-14px) scale(0.8)",a.style["-webkit-transform-origin"]="0 0",a.style["transform-origin"]="0 0")),e},getDescription:function(a){var b=document.createElement("div");return b.classList.add("grey-text"),b.style.marginTop="-15px",b.innerHTML=a,b},getHeader:function(a){var b=document.createElement("h5");return"string"==typeof a?b.textContent=a:b.appendChild(a),b},getChildEditorHolder:function(){var a=document.createElement("div");return a.marginBottom="10px",a},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("card-panel"),a},getTable:function(){var a=document.createElement("table");return a.classList.add("striped","bordered"),a.style.marginBottom="10px",a},getTableRow:function(){return document.createElement("tr")},getTableHead:function(){return document.createElement("thead")},getTableBody:function(){return document.createElement("tbody")},getTableHeaderCell:function(a){var b=document.createElement("th");return b.textContent=a,b},getTableCell:function(){var a=document.createElement("td");return a},getTabHolder:function(){var a=['<div class="col s2">',' <ul class="tabs" style="height: auto; margin-top: 0.82rem; -ms-flex-direction: column; -webkit-flex-direction: column; flex-direction: column; display: -webkit-flex; display: flex;">'," </ul>","</div>",'<div class="col s10">',"<div>"].join("\n"),b=document.createElement("div");return b.classList.add("row","card-panel"),b.innerHTML=a,b},addTab:function(a,b){a.children[0].children[0].appendChild(b)},getTab:function(a){var b=document.createElement("li");return b.classList.add("tab"),b.style=b.style||{},this.applyStyles(b,{width:"100%",textAlign:"left",lineHeight:"24px",height:"24px",fontSize:"14px",cursor:"pointer"}),b.appendChild(a),b},markTabActive:function(a){a.style=a.style||{},this.applyStyles(a,{width:"100%",textAlign:"left",lineHeight:"24px",height:"24px",fontSize:"14px",cursor:"pointer",color:"rgba(238,110,115,1)",transition:"border-color .5s ease",borderRight:"3px solid #424242"})},markTabInactive:function(a){a.style=a.style||{},this.applyStyles(a,{width:"100%",textAlign:"left",lineHeight:"24px",height:"24px",fontSize:"14px",cursor:"pointer",color:"rgba(238,110,115,0.7)"})},getTabContentHolder:function(a){return a.children[1]},getTabContent:function(){return document.createElement("div")},addInputError:function(a,b){var c,d=a.parentNode;d&&(this.removeInputError(a),c=document.createElement("div"),c.classList.add("error-text","red-text"),c.textContent=b,d.appendChild(c))},removeInputError:function(a){var b,c=a.parentElement;if(c){b=c.getElementsByClassName("error-text");for(var d=0;d<b.length;d++)c.removeChild(b[d])}},addTableRowError:function(a){},removeTableRowError:function(a){},getSelectInput:function(a){var b=this._super(a);return b.classList.add("browser-default"),b},getTextareaInput:function(){var a=document.createElement("textarea");return a.style.marginBottom="5px",a.style.fontSize="1rem",a.style.fontFamily="monospace",a},getCheckbox:function(){var a=this.getFormInputField("checkbox");return a.id=this.createUuid(),a},getModal:function(){var a=document.createElement("div");return a.classList.add("card-panel","z-depth-3"),a.style.padding="5px",a.style.position="absolute",a.style.zIndex="10",a.style.display="none",a},createUuid:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"==a?b:3&b|8;return c.toString(16)})}}),h.AbstractIconLib=c.extend({mapping:{collapse:"",expand:"","delete":"",edit:"",add:"",cancel:"",save:"",moveup:"",movedown:""},icon_prefix:"",getIconClass:function(a){return this.mapping[a]?this.icon_prefix+this.mapping[a]:null},getIcon:function(a){var b=this.getIconClass(a);if(!b)return null;var c=document.createElement("i");return c.classList.add.apply(c.classList,b.split(" ")),c}}),h.defaults.iconlibs.bootstrap2=h.AbstractIconLib.extend({mapping:{collapse:"chevron-down",expand:"chevron-up","delete":"trash",edit:"pencil",add:"plus",cancel:"ban-circle",save:"ok",moveup:"arrow-up",movedown:"arrow-down",clear:"remove-circle",time:"time",calendar:"calendar"},icon_prefix:"icon-"}),h.defaults.iconlibs.bootstrap3=h.AbstractIconLib.extend({mapping:{collapse:"chevron-down",expand:"chevron-right","delete":"remove",edit:"pencil",add:"plus",cancel:"floppy-remove",save:"floppy-saved",moveup:"arrow-up",movedown:"arrow-down",clear:"remove-circle",time:"time",calendar:"calendar"},icon_prefix:"glyphicon glyphicon-"}),h.defaults.iconlibs.fontawesome3=h.AbstractIconLib.extend({mapping:{collapse:"chevron-down",expand:"chevron-right","delete":"remove",edit:"pencil",add:"plus",cancel:"ban-circle",save:"save",moveup:"arrow-up",movedown:"arrow-down",clear:"remove-circle",time:"time",calendar:"calendar"},icon_prefix:"icon-"}),h.defaults.iconlibs.fontawesome4=h.AbstractIconLib.extend({mapping:{collapse:"caret-square-o-down",expand:"caret-square-o-right","delete":"times",edit:"pencil",add:"plus",cancel:"ban",save:"save",moveup:"arrow-up",movedown:"arrow-down",copy:"files-o",clear:"times-circle-o",time:"clock-o",calendar:"calendar"},icon_prefix:"fa fa-"}),h.defaults.iconlibs.fontawesome5=h.AbstractIconLib.extend({mapping:{collapse:"caret-down",expand:"caret-right","delete":"times",edit:"pen",add:"plus",cancel:"ban",save:"save",moveup:"arrow-up",movedown:"arrow-down",copy:"copy",clear:"times-circle",time:"clock",calendar:"calendar"},icon_prefix:"fas fa-"}),h.defaults.iconlibs.foundation2=h.AbstractIconLib.extend({mapping:{collapse:"minus",expand:"plus","delete":"remove",edit:"edit",add:"add-doc",cancel:"error",save:"checkmark",moveup:"up-arrow",movedown:"down-arrow",clear:"remove",time:"clock",calendar:"calendar"},icon_prefix:"foundicon-"}),h.defaults.iconlibs.foundation3=h.AbstractIconLib.extend({mapping:{collapse:"minus",expand:"plus","delete":"x",edit:"pencil",add:"page-add",cancel:"x-circle",save:"save",moveup:"arrow-up",movedown:"arrow-down",clear:"x-circle",time:"clock",calendar:"calendar"},icon_prefix:"fi-"}),h.defaults.iconlibs.jqueryui=h.AbstractIconLib.extend({mapping:{collapse:"triangle-1-s",expand:"triangle-1-e","delete":"trash",edit:"pencil",add:"plusthick",cancel:"closethick",save:"disk",moveup:"arrowthick-1-n",movedown:"arrowthick-1-s",clear:"circle-close",time:"time",calendar:"calendar"},icon_prefix:"ui-icon ui-icon-"}),h.defaults.iconlibs.materialicons=h.AbstractIconLib.extend({mapping:{collapse:"arrow_drop_up",expand:"arrow_drop_down","delete":"delete",edit:"edit",add:"add",cancel:"cancel",save:"save",moveup:"arrow_upward",movedown:"arrow_downward",copy:"content_copy",clear:"highlight_off",time:"access_time",calendar:"calendar_today",upload:"cloud_upload"},icon_class:"material-icons",icon_prefix:"",getIconClass:function(a){return this.icon_class},getIcon:function(a){var b=this.mapping[a];if(!b)return null;var c=document.createElement("i");c.classList.add(this.icon_class);var d=document.createTextNode(b);return c.appendChild(d),c}}),h.defaults.templates["default"]=function(){return{compile:function(a){var b=a.match(/{{\s*([a-zA-Z0-9\-_ \.]+)\s*}}/g),c=b&&b.length;if(!c)return function(){return a};for(var d=[],e=function(a){var c,e=b[a].replace(/[{}]+/g,"").trim().split("."),f=e.length;if(f>1){var g;c=function(b){for(g=b,a=0;a<f&&(g=g[e[a]],g);a++);return g}}else e=e[0],c=function(a){return a[e]};d.push({s:b[a],r:c})},f=0;f<c;f++)e(f);return function(b){var e,g=a+"";for(f=0;f<c;f++)e=d[f],g=g.replace(e.s,e.r(b));return g}}}},h.defaults.templates.ejs=function(){return!!window.EJS&&{compile:function(a){var b=new window.EJS({text:a});return function(a){return b.render(a)}}}},h.defaults.templates.handlebars=function(){return window.Handlebars},h.defaults.templates.hogan=function(){return!!window.Hogan&&{compile:function(a){var b=window.Hogan.compile(a);return function(a){return b.render(a)}}}},h.defaults.templates.lodash=function(){return!!window._&&{compile:function(a){return function(b){return window._.template(a)(b)}}}},h.defaults.templates.markup=function(){return!(!window.Mark||!window.Mark.up)&&{compile:function(a){return function(b){return window.Mark.up(a,b)}}}},h.defaults.templates.mustache=function(){return!!window.Mustache&&{compile:function(a){return function(b){return window.Mustache.render(a,b)}}}},h.defaults.templates.swig=function(){return window.swig},h.defaults.templates.underscore=function(){
          +
          20 return!!window._&&{compile:function(a){return function(b){return window._.template(a,b)}}}},h.defaults.theme="html",h.defaults.template="default",h.defaults.options={},h.defaults.options.prompt_before_delete=!0,h.defaults.options.upload=function(a,b,c){console.log("Upload handler required for upload editor")},h.defaults.translate=function(a,b){var c=h.defaults.languages[h.defaults.language];if(!c)throw"Unknown language "+h.defaults.language;var d=c[a]||h.defaults.languages[h.defaults.default_language][a];if("undefined"==typeof d)throw"Unknown translate string "+a;if(b)for(var e=0;e<b.length;e++)d=d.replace(new RegExp("\\{\\{"+e+"}}","g"),b[e]);return d},h.defaults.default_language="en",h.defaults.language=h.defaults.default_language,h.defaults.languages.en={error_notset:"Property must be set",error_notempty:"Value required",error_enum:"Value must be one of the enumerated values",error_anyOf:"Value must validate against at least one of the provided schemas",error_oneOf:"Value must validate against exactly one of the provided schemas. It currently validates against {{0}} of the schemas.",error_not:"Value must not validate against the provided schema",error_type_union:"Value must be one of the provided types",error_type:"Value must be of type {{0}}",error_disallow_union:"Value must not be one of the provided disallowed types",error_disallow:"Value must not be of type {{0}}",error_multipleOf:"Value must be a multiple of {{0}}",error_maximum_excl:"Value must be less than {{0}}",error_maximum_incl:"Value must be at most {{0}}",error_minimum_excl:"Value must be greater than {{0}}",error_minimum_incl:"Value must be at least {{0}}",error_maxLength:"Value must be at most {{0}} characters long",error_minLength:"Value must be at least {{0}} characters long",error_pattern:"Value must match the pattern {{0}}",error_additionalItems:"No additional items allowed in this array",error_maxItems:"Value must have at most {{0}} items",error_minItems:"Value must have at least {{0}} items",error_uniqueItems:"Array must have unique items",error_maxProperties:"Object must have at most {{0}} properties",error_minProperties:"Object must have at least {{0}} properties",error_required:"Object is missing the required property '{{0}}'",error_additional_properties:"No additional properties allowed, but property {{0}} is set",error_dependency:"Must have property {{0}}",error_date:"Date must be in the format {{0}}",error_time:"Time must be in the format {{0}}",error_datetime_local:"Datetime must be in the format {{0}}",error_invalid_epoch:"Date must be greater than 1 January 1970",button_delete_all:"All",button_delete_all_title:"Delete All",button_delete_last:"Last {{0}}",button_delete_last_title:"Delete Last {{0}}",button_add_row_title:"Add {{0}}",button_move_down_title:"Move down",button_move_up_title:"Move up",button_delete_row_title:"Delete {{0}}",button_delete_row_title_short:"Delete",button_collapse:"Collapse",button_expand:"Expand",flatpickr_toggle_button:"Toggle",flatpickr_clear_button:"Clear"},h.plugins={ace:{theme:""},SimpleMDE:{},sceditor:{},select2:{},selectize:{}},f(h.defaults.editors,function(a,b){h.defaults.editors[a].options=b.options||{}}),h.defaults.resolvers.unshift(function(a){if("string"!=typeof a.type)return"multiple"}),h.defaults.resolvers.unshift(function(a){if(!a.type&&a.properties)return"object"}),h.defaults.resolvers.unshift(function(a){if("string"==typeof a.type)return a.type}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&"signature"===a.format)return"signature"}),h.defaults.resolvers.unshift(function(a){if("integer"===a.type&&"rating"===a.format)return"rating"}),h.defaults.resolvers.unshift(function(a){if("boolean"===a.type)return"checkbox"===a.format||a.options&&a.options.checkbox?"checkbox":h.plugins.selectize.enable?"selectize":"select"}),h.defaults.resolvers.unshift(function(a){if("any"===a.type)return"multiple"}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&a.media&&"base64"===a.media.binaryEncoding)return"base64"}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&"url"===a.format&&a.options&&a.options.upload===!0&&window.FileReader)return"upload"}),h.defaults.resolvers.unshift(function(a){if("array"===a.type&&"table"===a.format)return"table"}),h.defaults.resolvers.unshift(function(a){if(a.enumSource)return h.plugins.selectize.enable?"selectize":"select"}),h.defaults.resolvers.unshift(function(a){if(a["enum"]){if("array"===a.type||"object"===a.type)return"enum";if("number"===a.type||"integer"===a.type||"string"===a.type)return h.plugins.selectize.enable?"selectize":"select"}}),h.defaults.resolvers.unshift(function(a){if("array"===a.type&&a.items&&!Array.isArray(a.items)&&a.uniqueItems&&["string","number","integer"].indexOf(a.items.type)>=0){if(a.items["enum"])return"multiselect";if(h.plugins.selectize.enable&&"string"===a.items.type)return"arraySelectize"}}),h.defaults.resolvers.unshift(function(a){if(a.oneOf||a.anyOf)return"multiple"}),h.defaults.resolvers.unshift(function(a){if(["string","integer"].indexOf(a.type)!==-1&&["date","time","datetime-local"].indexOf(a.format)!==-1)return"datetime"}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&"starrating"===a.format)return"starrating"}),function(){if(window.jQuery||window.Zepto){var a=window.jQuery||window.Zepto;a.jsoneditor=h.defaults,a.fn.jsoneditor=function(a){var b=this,c=this.data("jsoneditor");if("value"===a){if(!c)throw"Must initialize jsoneditor before getting/setting the value";if(!(arguments.length>1))return c.getValue();c.setValue(arguments[1])}else{if("validate"===a){if(!c)throw"Must initialize jsoneditor before validating";return arguments.length>1?c.validate(arguments[1]):c.validate()}"destroy"===a?c&&(c.destroy(),this.data("jsoneditor",null)):(c&&c.destroy(),c=new h(this.get(0),a),this.data("jsoneditor",c),c.on("change",function(){b.trigger("change")}),c.on("ready",function(){b.trigger("ready")}))}return this}}}(),h});
          +
          21 //# sourceMappingURL=jsoneditor.min.js.map
          +
          22 )=====";
          +
          +
          +
          const char PAGE_js_jsoneditor[] PROGMEM
          Definition: js_jsoneditor.h:2
          + + + + diff --git a/docs/generated/docs/js__sensesp_8h.html b/docs/generated/docs/js__sensesp_8h.html new file mode 100644 index 000000000..3009b993e --- /dev/null +++ b/docs/generated/docs/js__sensesp_8h.html @@ -0,0 +1,149 @@ + + + + + + + +SensESP: src/net/web/js_sensesp.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          js_sensesp.h File Reference
          +
          +
          +
          #include <pgmspace.h>
          +
          +Include dependency graph for js_sensesp.h:
          +
          +
          + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Variables

          const char PAGE_js_sensesp[] PROGMEM
           
          +

          Variable Documentation

          + +

          ◆ PROGMEM

          + +
          +
          + + + + +
          const char PAGE_js_sensesp [] PROGMEM
          +
          +Initial value:
          = R"=====(
          +
          function ajax(method,url,data,contentType){return new Promise((function(resolve,reject){var request=new XMLHttpRequest;request.open(method,url,!0),request.onload=function(){200===request.status?resolve(request.response):reject(Error(request.statusText))},request.onerror=function(){reject(Error("Network Error"))},contentType&&request.setRequestHeader("Content-Type",contentType),request.send(data)}))}class TreeList{constructor(main,pathList){this.main=main,this.main.appendChild(document.createElement("div")),this.root=document.createElement("ul"),this.root.id="tree",this.main.appendChild(this.root);for(var i=0;i<pathList.length;i++){var entry=pathList[i],fullPath=entry,parts=entry.split("/"),nodeName=parts.pop(),section=this.main;for(parts.shift();parts.length>0;){var sectionName=parts.shift();section=this.findNode(section,sectionName)}this.addEntry(section,nodeName,fullPath)}var toggler=document.getElementsByClassName("caret");for(i=0;i<toggler.length;i++)toggler[i].addEventListener("click",(function(){this.parentElement.querySelector(".nested").classList.toggle("active"),this.classList.toggle("caret-down")}))}makeSectionNode(name){var section=document.createElement("li"),caret=document.createElement("span");caret.className="caret",caret.innerHTML=name,section.appendChild(caret);var ul=document.createElement("ul");return ul.className="nested",section.appendChild(ul),section}addEntry(section,name,fullPath){var entry=document.createElement("li");entry.innerHTML=name,section.children[1].appendChild(entry),entry.className="selectable",entry.addEventListener("click",(function(){editConfig(fullPath)}))}findNode(sectionRoot,nodeName){if(""!=nodeName){var i,nextEntry,searchChildren=sectionRoot.children[1].childNodes;for(i=0;i<searchChildren.length;i++)if((nextEntry=searchChildren[i]).childNodes[0].textContent==nodeName)return nextEntry;return nextEntry=this.makeSectionNode(nodeName),sectionRoot.children[1].appendChild(nextEntry),nextEntry}return sectionRoot}}var globalEditor=null;function getEmptyMountDiv(){var main=document.getElementById("mountNode");return main.empty(),globalEditor=null,main}function editConfig(config_path){var main=getEmptyMountDiv();ajax("GET","/config"+config_path).then((response=>{var json=JSON.parse(response),config=json.config,schema=json.schema;if(0==Object.keys(schema).length)return alert("No schema available for "+config_path),void showConfigTree();schema.title||(schema.title="Configuration for "+config_path),main.innerHTML="\n <div class='row'>\n <div id='editor_holder' class='medium-12 columns'></div> \n </div>\n <div class='row'>\n <div class='medium-12-columns'>\n <button id='submit' class='tiny'>Save</button>\n <button id='cancel' class='tiny'>Cancel</button>\n <span id='valid_indicator' class='label'></span>\n </div>\n </div>\n ",globalEditor=new JSONEditor(document.getElementById("editor_holder"),{schema:schema,startval:config,no_additional_properties:!0,disable_collapse:!0,disable_properties:!0,disable_edit_json:!0,show_opt_in:!0}),document.getElementById("submit").addEventListener("click",(function(){saveConfig(config_path,globalEditor.getValue())})),document.getElementById("cancel").addEventListener("click",(function(){showConfigTree()})),globalEditor.on("change",(function(){var errors=globalEditor.validate(),indicator=document.getElementById("valid_indicator");errors.length?(indicator.className="label alert",indicator.textContent="not valid"):(indicator.className="label success",indicator.textContent="valid")}))})).catch((err=>{alert(`Error retrieving configuration ${config_path}: ${err.message}`),showConfigTree()}))}function saveConfig(config_path,values){ajax("PUT","/config"+config_path,JSON.stringify(values),"application/json").then((response=>{showConfigTree()})).catch((err=>{alert(`Error saving configuration ${config_path}: ${err.message}`),showConfigTree()}))}function showConfigTree(){var main=getEmptyMountDiv();ajax("GET","/config").then((response=>{var configList=JSON.parse(response).keys;return configList.sort(),configList})).then((configList=>{new TreeList(main,configList)})).catch((err=>{alert("Error: "+err.statusText)}))}Element.prototype.empty=function(){for(var child=this.lastElementChild;child;)this.removeChild(child),child=this.lastElementChild};
          +
          )====="
          +
          +

          Definition at line 2 of file js_sensesp.h.

          + +
          +
          +
          +
          + + + + diff --git a/docs/js__sensesp_8h.js b/docs/generated/docs/js__sensesp_8h.js similarity index 100% rename from docs/js__sensesp_8h.js rename to docs/generated/docs/js__sensesp_8h.js diff --git a/docs/generated/docs/js__sensesp_8h__dep__incl.map b/docs/generated/docs/js__sensesp_8h__dep__incl.map new file mode 100644 index 000000000..00d7ea011 --- /dev/null +++ b/docs/generated/docs/js__sensesp_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/js__sensesp_8h__dep__incl.md5 b/docs/generated/docs/js__sensesp_8h__dep__incl.md5 new file mode 100644 index 000000000..8243e75c1 --- /dev/null +++ b/docs/generated/docs/js__sensesp_8h__dep__incl.md5 @@ -0,0 +1 @@ +a70bd822af765e61080ea3700b0a20a4 \ No newline at end of file diff --git a/docs/generated/docs/js__sensesp_8h__dep__incl.png b/docs/generated/docs/js__sensesp_8h__dep__incl.png new file mode 100644 index 000000000..9fa2a13dd Binary files /dev/null and b/docs/generated/docs/js__sensesp_8h__dep__incl.png differ diff --git a/docs/js__sensesp_8h__incl.map b/docs/generated/docs/js__sensesp_8h__incl.map similarity index 100% rename from docs/js__sensesp_8h__incl.map rename to docs/generated/docs/js__sensesp_8h__incl.map diff --git a/docs/generated/docs/js__sensesp_8h__incl.md5 b/docs/generated/docs/js__sensesp_8h__incl.md5 new file mode 100644 index 000000000..06ef7f282 --- /dev/null +++ b/docs/generated/docs/js__sensesp_8h__incl.md5 @@ -0,0 +1 @@ +5b594b5af07e9483236e093fbb75c003 \ No newline at end of file diff --git a/docs/generated/docs/js__sensesp_8h__incl.png b/docs/generated/docs/js__sensesp_8h__incl.png new file mode 100644 index 000000000..a76867170 Binary files /dev/null and b/docs/generated/docs/js__sensesp_8h__incl.png differ diff --git a/docs/generated/docs/js__sensesp_8h_source.html b/docs/generated/docs/js__sensesp_8h_source.html new file mode 100644 index 000000000..eee0d9114 --- /dev/null +++ b/docs/generated/docs/js__sensesp_8h_source.html @@ -0,0 +1,105 @@ + + + + + + + +SensESP: src/net/web/js_sensesp.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          js_sensesp.h
          +
          +
          +Go to the documentation of this file.
          1 #include <pgmspace.h>
          +
          2 const char PAGE_js_sensesp[] PROGMEM = R"=====(
          +
          3 function ajax(method,url,data,contentType){return new Promise((function(resolve,reject){var request=new XMLHttpRequest;request.open(method,url,!0),request.onload=function(){200===request.status?resolve(request.response):reject(Error(request.statusText))},request.onerror=function(){reject(Error("Network Error"))},contentType&&request.setRequestHeader("Content-Type",contentType),request.send(data)}))}class TreeList{constructor(main,pathList){this.main=main,this.main.appendChild(document.createElement("div")),this.root=document.createElement("ul"),this.root.id="tree",this.main.appendChild(this.root);for(var i=0;i<pathList.length;i++){var entry=pathList[i],fullPath=entry,parts=entry.split("/"),nodeName=parts.pop(),section=this.main;for(parts.shift();parts.length>0;){var sectionName=parts.shift();section=this.findNode(section,sectionName)}this.addEntry(section,nodeName,fullPath)}var toggler=document.getElementsByClassName("caret");for(i=0;i<toggler.length;i++)toggler[i].addEventListener("click",(function(){this.parentElement.querySelector(".nested").classList.toggle("active"),this.classList.toggle("caret-down")}))}makeSectionNode(name){var section=document.createElement("li"),caret=document.createElement("span");caret.className="caret",caret.innerHTML=name,section.appendChild(caret);var ul=document.createElement("ul");return ul.className="nested",section.appendChild(ul),section}addEntry(section,name,fullPath){var entry=document.createElement("li");entry.innerHTML=name,section.children[1].appendChild(entry),entry.className="selectable",entry.addEventListener("click",(function(){editConfig(fullPath)}))}findNode(sectionRoot,nodeName){if(""!=nodeName){var i,nextEntry,searchChildren=sectionRoot.children[1].childNodes;for(i=0;i<searchChildren.length;i++)if((nextEntry=searchChildren[i]).childNodes[0].textContent==nodeName)return nextEntry;return nextEntry=this.makeSectionNode(nodeName),sectionRoot.children[1].appendChild(nextEntry),nextEntry}return sectionRoot}}var globalEditor=null;function getEmptyMountDiv(){var main=document.getElementById("mountNode");return main.empty(),globalEditor=null,main}function editConfig(config_path){var main=getEmptyMountDiv();ajax("GET","/config"+config_path).then((response=>{var json=JSON.parse(response),config=json.config,schema=json.schema;if(0==Object.keys(schema).length)return alert("No schema available for "+config_path),void showConfigTree();schema.title||(schema.title="Configuration for "+config_path),main.innerHTML="\n <div class='row'>\n <div id='editor_holder' class='medium-12 columns'></div> \n </div>\n <div class='row'>\n <div class='medium-12-columns'>\n <button id='submit' class='tiny'>Save</button>\n <button id='cancel' class='tiny'>Cancel</button>\n <span id='valid_indicator' class='label'></span>\n </div>\n </div>\n ",globalEditor=new JSONEditor(document.getElementById("editor_holder"),{schema:schema,startval:config,no_additional_properties:!0,disable_collapse:!0,disable_properties:!0,disable_edit_json:!0,show_opt_in:!0}),document.getElementById("submit").addEventListener("click",(function(){saveConfig(config_path,globalEditor.getValue())})),document.getElementById("cancel").addEventListener("click",(function(){showConfigTree()})),globalEditor.on("change",(function(){var errors=globalEditor.validate(),indicator=document.getElementById("valid_indicator");errors.length?(indicator.className="label alert",indicator.textContent="not valid"):(indicator.className="label success",indicator.textContent="valid")}))})).catch((err=>{alert(`Error retrieving configuration ${config_path}: ${err.message}`),showConfigTree()}))}function saveConfig(config_path,values){ajax("PUT","/config"+config_path,JSON.stringify(values),"application/json").then((response=>{showConfigTree()})).catch((err=>{alert(`Error saving configuration ${config_path}: ${err.message}`),showConfigTree()}))}function showConfigTree(){var main=getEmptyMountDiv();ajax("GET","/config").then((response=>{var configList=JSON.parse(response).keys;return configList.sort(),configList})).then((configList=>{new TreeList(main,configList)})).catch((err=>{alert("Error: "+err.statusText)}))}Element.prototype.empty=function(){for(var child=this.lastElementChild;child;)this.removeChild(child),child=this.lastElementChild};
          +
          4 )=====";
          +
          +
          +
          const char PAGE_js_sensesp[] PROGMEM
          Definition: js_sensesp.h:2
          + + + + diff --git a/docs/generated/docs/lambda__transform_8cpp.html b/docs/generated/docs/lambda__transform_8cpp.html new file mode 100644 index 000000000..6a612bb39 --- /dev/null +++ b/docs/generated/docs/lambda__transform_8cpp.html @@ -0,0 +1,272 @@ + + + + + + + +SensESP: src/transforms/lambda_transform.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          lambda_transform.cpp File Reference
          +
          +
          +
          #include "lambda_transform.h"
          +
          +Include dependency graph for lambda_transform.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + + + + + + + + + + + + + + +

          +Functions

          template<class T >
          const char * get_schema_type_string (const T dummy)
           
          template<>
          const char * get_schema_type_string (const int dummy)
           
          template<>
          const char * get_schema_type_string (const float dummy)
           
          template<>
          const char * get_schema_type_string (const String dummy)
           
          template<>
          const char * get_schema_type_string (const bool dummy)
           
          +

          Function Documentation

          + +

          ◆ get_schema_type_string() [1/5]

          + +
          +
          +
          +template<>
          + + + + + + + + +
          const char* get_schema_type_string (const bool dummy)
          +
          + +

          Definition at line 24 of file lambda_transform.cpp.

          + +
          +
          + +

          ◆ get_schema_type_string() [2/5]

          + +
          +
          +
          +template<>
          + + + + + + + + +
          const char* get_schema_type_string (const float dummy)
          +
          + +

          Definition at line 14 of file lambda_transform.cpp.

          + +
          +
          + +

          ◆ get_schema_type_string() [3/5]

          + +
          +
          +
          +template<>
          + + + + + + + + +
          const char* get_schema_type_string (const int dummy)
          +
          + +

          Definition at line 9 of file lambda_transform.cpp.

          + +
          +
          + +

          ◆ get_schema_type_string() [4/5]

          + +
          +
          +
          +template<>
          + + + + + + + + +
          const char* get_schema_type_string (const String dummy)
          +
          + +

          Definition at line 19 of file lambda_transform.cpp.

          + +
          +
          + +

          ◆ get_schema_type_string() [5/5]

          + +
          +
          +
          +template<class T >
          + + + + + + + + +
          const char* get_schema_type_string (const T dummy)
          +
          +

          Convert the variable type to a string representation of the type using template specializations.

          + +

          Definition at line 4 of file lambda_transform.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + +
          + +
          +
          +
          +
          + + + + diff --git a/docs/generated/docs/lambda__transform_8cpp.js b/docs/generated/docs/lambda__transform_8cpp.js new file mode 100644 index 000000000..5757bb5d7 --- /dev/null +++ b/docs/generated/docs/lambda__transform_8cpp.js @@ -0,0 +1,8 @@ +var lambda__transform_8cpp = +[ + [ "get_schema_type_string", "lambda__transform_8cpp.html#aeff670170ffe32f04eaecd5f5135c7ce", null ], + [ "get_schema_type_string", "lambda__transform_8cpp.html#a1ba339fb0c0884b466ff07c096632b6c", null ], + [ "get_schema_type_string", "lambda__transform_8cpp.html#ab2b46faeee0a0a89516c536f0b3fb7c7", null ], + [ "get_schema_type_string", "lambda__transform_8cpp.html#a088917acfc20b1694a87b1bac518676b", null ], + [ "get_schema_type_string", "lambda__transform_8cpp.html#ad157c07ea0943b787f0fb03fa11669bf", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/lambda__transform_8cpp__incl.map b/docs/generated/docs/lambda__transform_8cpp__incl.map new file mode 100644 index 000000000..2e4549ac9 --- /dev/null +++ b/docs/generated/docs/lambda__transform_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/lambda__transform_8cpp__incl.md5 b/docs/generated/docs/lambda__transform_8cpp__incl.md5 new file mode 100644 index 000000000..b4840ddc9 --- /dev/null +++ b/docs/generated/docs/lambda__transform_8cpp__incl.md5 @@ -0,0 +1 @@ +c99055891e12dfb8ae153b4b239cfa22 \ No newline at end of file diff --git a/docs/generated/docs/lambda__transform_8cpp__incl.png b/docs/generated/docs/lambda__transform_8cpp__incl.png new file mode 100644 index 000000000..67140147d Binary files /dev/null and b/docs/generated/docs/lambda__transform_8cpp__incl.png differ diff --git a/docs/generated/docs/lambda__transform_8cpp_ad157c07ea0943b787f0fb03fa11669bf_icgraph.map b/docs/generated/docs/lambda__transform_8cpp_ad157c07ea0943b787f0fb03fa11669bf_icgraph.map new file mode 100644 index 000000000..08fa7558a --- /dev/null +++ b/docs/generated/docs/lambda__transform_8cpp_ad157c07ea0943b787f0fb03fa11669bf_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/lambda__transform_8cpp_ad157c07ea0943b787f0fb03fa11669bf_icgraph.md5 b/docs/generated/docs/lambda__transform_8cpp_ad157c07ea0943b787f0fb03fa11669bf_icgraph.md5 new file mode 100644 index 000000000..5d448d01f --- /dev/null +++ b/docs/generated/docs/lambda__transform_8cpp_ad157c07ea0943b787f0fb03fa11669bf_icgraph.md5 @@ -0,0 +1 @@ +34f208c3362484007e82493bd8ab4dc6 \ No newline at end of file diff --git a/docs/generated/docs/lambda__transform_8cpp_ad157c07ea0943b787f0fb03fa11669bf_icgraph.png b/docs/generated/docs/lambda__transform_8cpp_ad157c07ea0943b787f0fb03fa11669bf_icgraph.png new file mode 100644 index 000000000..bdb2dac82 Binary files /dev/null and b/docs/generated/docs/lambda__transform_8cpp_ad157c07ea0943b787f0fb03fa11669bf_icgraph.png differ diff --git a/docs/generated/docs/lambda__transform_8cpp_source.html b/docs/generated/docs/lambda__transform_8cpp_source.html new file mode 100644 index 000000000..5cb1fb40c --- /dev/null +++ b/docs/generated/docs/lambda__transform_8cpp_source.html @@ -0,0 +1,128 @@ + + + + + + + +SensESP: src/transforms/lambda_transform.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          lambda_transform.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "lambda_transform.h"
          +
          2 
          +
          3 template <class T>
          +
          4 const char* get_schema_type_string(const T dummy) {
          +
          5  return "string";
          +
          6 }
          +
          7 
          +
          8 template <>
          +
          9 const char* get_schema_type_string(const int dummy) {
          +
          10  return "number";
          +
          11 }
          +
          12 
          +
          13 template <>
          +
          14 const char* get_schema_type_string(const float dummy) {
          +
          15  return "number";
          +
          16 }
          +
          17 
          +
          18 template <>
          +
          19 const char* get_schema_type_string(const String dummy) {
          +
          20  return "string";
          +
          21 }
          +
          22 
          +
          23 template <>
          +
          24 const char* get_schema_type_string(const bool dummy) {
          +
          25  return "boolean";
          +
          26 }
          +
          +
          + +
          const char * get_schema_type_string(const T dummy)
          + + + + diff --git a/docs/generated/docs/lambda__transform_8h.html b/docs/generated/docs/lambda__transform_8h.html new file mode 100644 index 000000000..24e74f5bb --- /dev/null +++ b/docs/generated/docs/lambda__transform_8h.html @@ -0,0 +1,295 @@ + + + + + + + +SensESP: src/transforms/lambda_transform.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          lambda_transform.h File Reference
          +
          +
          +
          #include "transform.h"
          +
          +Include dependency graph for lambda_transform.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + + + + +

          +Classes

          struct  ParamInfo
           
          class  LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >
           Construct a new transform based on a single function. More...
           
          + + + + + + + + + + + + + + + + +

          +Functions

          template<class T >
          const char * get_schema_type_string (const T dummy)
           
          template<>
          const char * get_schema_type_string (const int dummy)
           
          template<>
          const char * get_schema_type_string (const float dummy)
           
          template<>
          const char * get_schema_type_string (const String dummy)
           
          template<>
          const char * get_schema_type_string (const bool dummy)
           
          +

          Function Documentation

          + +

          ◆ get_schema_type_string() [1/5]

          + +
          +
          +
          +template<>
          + + + + + + + + +
          const char* get_schema_type_string (const bool dummy)
          +
          + +

          Definition at line 24 of file lambda_transform.cpp.

          + +
          +
          + +

          ◆ get_schema_type_string() [2/5]

          + +
          +
          +
          +template<>
          + + + + + + + + +
          const char* get_schema_type_string (const float dummy)
          +
          + +

          Definition at line 14 of file lambda_transform.cpp.

          + +
          +
          + +

          ◆ get_schema_type_string() [3/5]

          + +
          +
          +
          +template<>
          + + + + + + + + +
          const char* get_schema_type_string (const int dummy)
          +
          + +

          Definition at line 9 of file lambda_transform.cpp.

          + +
          +
          + +

          ◆ get_schema_type_string() [4/5]

          + +
          +
          +
          +template<>
          + + + + + + + + +
          const char* get_schema_type_string (const String dummy)
          +
          + +

          Definition at line 19 of file lambda_transform.cpp.

          + +
          +
          + +

          ◆ get_schema_type_string() [5/5]

          + +
          +
          +
          +template<class T >
          + + + + + + + + +
          const char* get_schema_type_string (const T dummy)
          +
          +

          Convert the variable type to a string representation of the type using template specializations.

          + +

          Definition at line 4 of file lambda_transform.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + +
          + +
          +
          +
          +
          + + + + diff --git a/docs/generated/docs/lambda__transform_8h.js b/docs/generated/docs/lambda__transform_8h.js new file mode 100644 index 000000000..174f8d548 --- /dev/null +++ b/docs/generated/docs/lambda__transform_8h.js @@ -0,0 +1,10 @@ +var lambda__transform_8h = +[ + [ "ParamInfo", "struct_param_info.html", "struct_param_info" ], + [ "LambdaTransform", "class_lambda_transform.html", "class_lambda_transform" ], + [ "get_schema_type_string", "lambda__transform_8h.html#aeff670170ffe32f04eaecd5f5135c7ce", null ], + [ "get_schema_type_string", "lambda__transform_8h.html#a1ba339fb0c0884b466ff07c096632b6c", null ], + [ "get_schema_type_string", "lambda__transform_8h.html#ab2b46faeee0a0a89516c536f0b3fb7c7", null ], + [ "get_schema_type_string", "lambda__transform_8h.html#a088917acfc20b1694a87b1bac518676b", null ], + [ "get_schema_type_string", "lambda__transform_8h.html#ad157c07ea0943b787f0fb03fa11669bf", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/lambda__transform_8h__dep__incl.map b/docs/generated/docs/lambda__transform_8h__dep__incl.map new file mode 100644 index 000000000..b4f36f3b9 --- /dev/null +++ b/docs/generated/docs/lambda__transform_8h__dep__incl.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/docs/generated/docs/lambda__transform_8h__dep__incl.md5 b/docs/generated/docs/lambda__transform_8h__dep__incl.md5 new file mode 100644 index 000000000..87b8930e1 --- /dev/null +++ b/docs/generated/docs/lambda__transform_8h__dep__incl.md5 @@ -0,0 +1 @@ +57b450935b22ad2aa7fd13102ca8f331 \ No newline at end of file diff --git a/docs/generated/docs/lambda__transform_8h__dep__incl.png b/docs/generated/docs/lambda__transform_8h__dep__incl.png new file mode 100644 index 000000000..da46abaff Binary files /dev/null and b/docs/generated/docs/lambda__transform_8h__dep__incl.png differ diff --git a/docs/generated/docs/lambda__transform_8h__incl.map b/docs/generated/docs/lambda__transform_8h__incl.map new file mode 100644 index 000000000..0def56310 --- /dev/null +++ b/docs/generated/docs/lambda__transform_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/lambda__transform_8h__incl.md5 b/docs/generated/docs/lambda__transform_8h__incl.md5 new file mode 100644 index 000000000..1d14a9ebc --- /dev/null +++ b/docs/generated/docs/lambda__transform_8h__incl.md5 @@ -0,0 +1 @@ +aa8dcdff210122a6c882daec8ce2d7c3 \ No newline at end of file diff --git a/docs/generated/docs/lambda__transform_8h__incl.png b/docs/generated/docs/lambda__transform_8h__incl.png new file mode 100644 index 000000000..c6aa74d7e Binary files /dev/null and b/docs/generated/docs/lambda__transform_8h__incl.png differ diff --git a/docs/generated/docs/lambda__transform_8h_ad157c07ea0943b787f0fb03fa11669bf_icgraph.map b/docs/generated/docs/lambda__transform_8h_ad157c07ea0943b787f0fb03fa11669bf_icgraph.map new file mode 100644 index 000000000..08fa7558a --- /dev/null +++ b/docs/generated/docs/lambda__transform_8h_ad157c07ea0943b787f0fb03fa11669bf_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/lambda__transform_8h_ad157c07ea0943b787f0fb03fa11669bf_icgraph.md5 b/docs/generated/docs/lambda__transform_8h_ad157c07ea0943b787f0fb03fa11669bf_icgraph.md5 new file mode 100644 index 000000000..5d448d01f --- /dev/null +++ b/docs/generated/docs/lambda__transform_8h_ad157c07ea0943b787f0fb03fa11669bf_icgraph.md5 @@ -0,0 +1 @@ +34f208c3362484007e82493bd8ab4dc6 \ No newline at end of file diff --git a/docs/generated/docs/lambda__transform_8h_ad157c07ea0943b787f0fb03fa11669bf_icgraph.png b/docs/generated/docs/lambda__transform_8h_ad157c07ea0943b787f0fb03fa11669bf_icgraph.png new file mode 100644 index 000000000..bdb2dac82 Binary files /dev/null and b/docs/generated/docs/lambda__transform_8h_ad157c07ea0943b787f0fb03fa11669bf_icgraph.png differ diff --git a/docs/generated/docs/lambda__transform_8h_source.html b/docs/generated/docs/lambda__transform_8h_source.html new file mode 100644 index 000000000..95d44e41a --- /dev/null +++ b/docs/generated/docs/lambda__transform_8h_source.html @@ -0,0 +1,437 @@ + + + + + + + +SensESP: src/transforms/lambda_transform.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          lambda_transform.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _lambda_transform_H_
          +
          2 #define _lambda_transform_H_
          +
          3 
          +
          4 #include "transform.h"
          +
          5 
          +
          6 // template snippets for configuration schema
          +
          7 
          +
          8 static const char kLambdaTransformSchemaHead[] PROGMEM = R"({
          +
          9  "type": "object",
          +
          10  "properties": {
          +
          11  )";
          +
          12 
          +
          13 static const char kLambdaTransformSchemaTail[] PROGMEM = R"(
          +
          14  }
          +
          15  })";
          +
          16 
          +
          21 template <class T>
          +
          22 const char* get_schema_type_string(const T dummy);
          +
          23 
          +
          24 template <>
          +
          25 const char* get_schema_type_string(const int dummy);
          +
          26 
          +
          27 template <>
          +
          28 const char* get_schema_type_string(const float dummy);
          +
          29 
          +
          30 template <>
          +
          31 const char* get_schema_type_string(const String dummy);
          +
          32 
          +
          33 template <>
          +
          34 const char* get_schema_type_string(const bool dummy);
          +
          35 
          +
          39 struct ParamInfo {
          +
          40  const char* key;
          +
          41  const char* description;
          +
          42 };
          +
          43 
          +
          44 // FIXME: This whole implementation should be written with variadic template
          +
          45 // parameters once the SDK gets updated past GCC 5.2.
          +
          46 
          +
          65 template <class IN, class OUT, class P1 = bool, class P2 = bool,
          +
          66  class P3 = bool, class P4 = bool, class P5 = bool,
          +
          67  class P6 = bool>
          +
          68 class LambdaTransform : public Transform<IN, OUT> {
          +
          69  public:
          +
          70  LambdaTransform(OUT (*function)(IN input), String config_path = "")
          +
          71  : Transform<IN, OUT>(config_path), function0{function}, num_params{0} {
          +
          72  this->load_configuration();
          +
          73  }
          +
          74 
          +
          75  LambdaTransform(OUT (*function)(IN input), const ParamInfo* param_info,
          +
          76  String config_path = "")
          +
          77  : Transform<IN, OUT>(config_path),
          +
          78  function0{function},
          +
          79  num_params{0},
          +
          80  param_info{param_info} {
          +
          81  this->load_configuration();
          +
          82  }
          +
          83 
          +
          84  LambdaTransform(OUT (*function)(IN input, P1 param1), P1 param1,
          +
          85  const ParamInfo* param_info, String config_path = "")
          +
          86  : Transform<IN, OUT>(config_path),
          +
          87  function1{function},
          +
          88  param1{param1},
          +
          89  num_params{1},
          +
          90  param_info{param_info} {
          +
          91  this->load_configuration();
          +
          92  }
          +
          93 
          +
          107  LambdaTransform(OUT (*function)(IN input, P1 param1, P2 param2), P1 param1,
          +
          108  P2 param2, const ParamInfo* param_info,
          +
          109  String config_path = "")
          +
          110  : Transform<IN, OUT>(config_path),
          +
          111  function2{function},
          +
          112  param1{param1},
          +
          113  param2{param2},
          +
          114  num_params{2},
          +
          115  param_info{param_info} {
          +
          116  this->load_configuration();
          +
          117  }
          +
          118 
          +
          119  LambdaTransform(OUT (*function)(IN input, P1 param1, P2 param2, P3 param3),
          +
          120  P1 param1, P2 param2, P3 param3, const ParamInfo* param_info,
          +
          121  String config_path = "")
          +
          122  : Transform<IN, OUT>(config_path),
          +
          123  function3{function},
          +
          124  param1{param1},
          +
          125  param2{param2},
          +
          126  param3{param3},
          +
          127  num_params{3},
          +
          128  param_info{param_info} {
          +
          129  this->load_configuration();
          +
          130  }
          +
          131 
          +
          132  LambdaTransform(OUT (*function)(IN input, P1 param1, P2 param2, P3 param3,
          +
          133  P4 param4),
          +
          134  P1 param1, P2 param2, P3 param3, P4 param4,
          +
          135  const ParamInfo* param_info, String config_path = "")
          +
          136  : Transform<IN, OUT>(config_path),
          +
          137  function4{function},
          +
          138  param1{param1},
          +
          139  param2{param2},
          +
          140  param3{param3},
          +
          141  param4{param4},
          +
          142  num_params{4},
          +
          143  param_info{param_info} {
          +
          144  this->load_configuration();
          +
          145  }
          +
          146 
          +
          147  LambdaTransform(OUT (*function)(IN input, P1 param1, P2 param2, P3 param3,
          +
          148  P4 param4, P5 param5),
          +
          149  P1 param1, P2 param2, P3 param3, P4 param4, P5 param5,
          +
          150  const ParamInfo* param_info, String config_path = "")
          +
          151  : Transform<IN, OUT>(config_path),
          +
          152  function4{function},
          +
          153  param1{param1},
          +
          154  param2{param2},
          +
          155  param3{param3},
          +
          156  param4{param4},
          +
          157  param5{param5},
          +
          158  num_params{5},
          +
          159  param_info{param_info} {
          +
          160  this->load_configuration();
          +
          161  }
          +
          162 
          +
          163  LambdaTransform(OUT (*function)(IN input, P1 param1, P2 param2, P3 param3,
          +
          164  P4 param4, P5 param5, P6 param6),
          +
          165  P1 param1, P2 param2, P3 param3, P4 param4, P5 param5,
          +
          166  P6 param6, const ParamInfo* param_info,
          +
          167  String config_path = "")
          +
          168  : Transform<IN, OUT>(config_path),
          +
          169  function4{function},
          +
          170  param1{param1},
          +
          171  param2{param2},
          +
          172  param3{param3},
          +
          173  param4{param4},
          +
          174  param5{param5},
          +
          175  param6{param6},
          +
          176  num_params{6},
          +
          177  param_info{param_info} {
          +
          178  this->load_configuration();
          +
          179  }
          +
          180 
          +
          181  void set_input(IN input, uint8_t input_channel = 0) override {
          +
          182  switch (num_params) {
          +
          183  case 0:
          +
          184  this->output = (*function0)(input);
          +
          185  break;
          +
          186  case 1:
          +
          187  this->output = (*function1)(input, param1);
          +
          188  break;
          +
          189  case 2:
          +
          190  this->output = (*function2)(input, param1, param2);
          +
          191  break;
          +
          192  case 3:
          +
          193  this->output = (*function3)(input, param1, param2, param3);
          +
          194  break;
          +
          195  case 4:
          +
          196  this->output = (*function4)(input, param1, param2, param3, param4);
          +
          197  break;
          +
          198  case 5:
          +
          199  this->output =
          +
          200  (*function5)(input, param1, param2, param3, param4, param5);
          +
          201  break;
          +
          202  case 6:
          +
          203  this->output =
          +
          204  (*function6)(input, param1, param2, param3, param4, param5, param6);
          +
          205  break;
          +
          206  default:
          +
          207  break;
          +
          208  }
          + +
          210  }
          +
          211 
          +
          212  void get_configuration(JsonObject& doc) override {
          +
          213  switch (num_params) {
          +
          214  case 6:
          +
          215  doc[param_info[5].key] = param6;
          +
          216  case 5:
          +
          217  doc[param_info[4].key] = param5;
          +
          218  case 4:
          +
          219  doc[param_info[3].key] = param4;
          +
          220  case 3:
          +
          221  doc[param_info[2].key] = param3;
          +
          222  case 2:
          +
          223  doc[param_info[1].key] = param2;
          +
          224  case 1:
          +
          225  doc[param_info[0].key] = param1;
          +
          226  default:
          +
          227  break;
          +
          228  }
          +
          229  doc["value"] = this->output;
          +
          230  }
          +
          231 
          +
          232  bool set_configuration(const JsonObject& config) override {
          +
          233  // test that each argument key (as defined by param_info)
          +
          234  // exists in the received Json object
          +
          235  debugD("Preparing to restore configuration from FS.");
          +
          236  for (int i = 0; i < num_params; i++) {
          +
          237  const char* expected = param_info[i].key;
          +
          238  if (!config.containsKey(expected)) {
          +
          239  debugD("Didn't find all keys.");
          +
          240  return false;
          +
          241  }
          +
          242  }
          +
          243  switch (num_params) {
          +
          244  case 6:
          +
          245  param6 = config[param_info[5].key];
          +
          246  case 5:
          +
          247  param5 = config[param_info[4].key];
          +
          248  case 4:
          +
          249  param4 = config[param_info[3].key];
          +
          250  case 3:
          +
          251  param3 = config[param_info[2].key];
          +
          252  case 2:
          +
          253  param2 = config[param_info[1].key];
          +
          254  case 1:
          +
          255  param1 = config[param_info[0].key];
          +
          256  default:
          +
          257  break;
          +
          258  }
          +
          259  debugD("Restored configuration");
          +
          260  return true;
          +
          261  }
          +
          262 
          +
          263  String get_config_schema() override {
          +
          264  // FIXME: The heavy use of Strings puts a lot of faith in that class's
          +
          265  // ability to not leak or corrupt memory. Would be better to receive
          +
          266  // a character array pointer as an argument for writing the output to.
          +
          267  String output = "";
          +
          268 
          +
          269  debugD("Preparing config schema");
          +
          270 
          +
          271  output.concat(FPSTR(kLambdaTransformSchemaHead));
          +
          272  if (num_params > 0) {
          +
          273  debugD("getting param_info:");
          +
          274  debugD("%s -> %s", param_info[0].key, param_info[0].description);
          +
          275  output.concat(format_schema_row(param_info[0].key,
          +
          276  param_info[0].description,
          +
          277  get_schema_type_string(param1), false));
          +
          278  output.concat(",");
          +
          279  }
          +
          280  if (num_params > 1) {
          +
          281  output.concat(format_schema_row(param_info[1].key,
          +
          282  param_info[1].description,
          +
          283  get_schema_type_string(param2), false));
          +
          284  output.concat(",");
          +
          285  }
          +
          286  if (num_params > 2) {
          +
          287  output.concat(format_schema_row(param_info[2].key,
          +
          288  param_info[2].description,
          +
          289  get_schema_type_string(param3), false));
          +
          290  output.concat(",");
          +
          291  }
          +
          292  if (num_params > 3) {
          +
          293  output.concat(format_schema_row(param_info[3].key,
          +
          294  param_info[3].description,
          +
          295  get_schema_type_string(param4), false));
          +
          296  output.concat(",");
          +
          297  }
          +
          298  if (num_params > 4) {
          +
          299  output.concat(format_schema_row(param_info[4].key,
          +
          300  param_info[4].description,
          +
          301  get_schema_type_string(param5), false));
          +
          302  output.concat(",");
          +
          303  }
          +
          304  if (num_params > 5) {
          +
          305  output.concat(format_schema_row(param_info[5].key,
          +
          306  param_info[5].description,
          +
          307  get_schema_type_string(param6), false));
          +
          308  output.concat(",");
          +
          309  }
          +
          310  output.concat(format_schema_row(
          +
          311  "value", "Last value", get_schema_type_string(this->output), true));
          +
          312  output.concat(FPSTR(kLambdaTransformSchemaTail));
          +
          313 
          +
          314  debugD("Prepared config schema.");
          +
          315 
          +
          316  return output;
          +
          317  }
          +
          318 
          +
          319  private:
          +
          320  P1 param1;
          +
          321  P2 param2;
          +
          322  P3 param3;
          +
          323  P4 param4;
          +
          324  P5 param5;
          +
          325  P6 param6;
          +
          326  int num_params;
          +
          327  const ParamInfo* param_info;
          +
          328 
          +
          329  OUT (*function0)(IN input);
          +
          330  OUT (*function1)(IN input, P1 param1);
          +
          331  OUT (*function2)(IN input, P1 param1, P2 param2);
          +
          332  OUT (*function3)(IN input, P1 param1, P2 param2, P3 param3);
          +
          333  OUT (*function4)(IN input, P1 param1, P2 param2, P3 param3, P4 param4);
          +
          334  OUT(*function5)
          +
          335  (IN input, P1 param1, P2 param2, P3 param3, P4 param4, P5 param5);
          +
          336  OUT(*function6)
          +
          337  (IN input, P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, P6 param6);
          +
          338 
          +
          339  static String format_schema_row(const char key[], const char title[],
          +
          340  const char type[], const bool read_only) {
          +
          341  char row[100] = "";
          +
          342  const char* read_only_str = read_only ? "true" : "false";
          +
          343 
          +
          344  static const char schema_row[] = R"(
          +
          345  "%s": { "title": "%s", "type": "%s", "readOnly": %s }
          +
          346  )";
          +
          347 
          +
          348  sprintf(row, schema_row, key, title, type, read_only_str);
          +
          349 
          +
          350  return String(row);
          +
          351  }
          +
          352 };
          +
          353 
          +
          354 #endif
          +
          +
          +
          String get_config_schema() override
          +
          void set_input(IN input, uint8_t input_channel=0) override
          +
          void notify()
          Definition: observable.cpp:3
          +
          LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4, P5 param5), P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, const ParamInfo *param_info, String config_path="")
          +
          const char * description
          +
          LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, P6 param6), P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, P6 param6, const ParamInfo *param_info, String config_path="")
          +
          LambdaTransform(OUT(*function)(IN input), const ParamInfo *param_info, String config_path="")
          +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          +
          const char * get_schema_type_string(const T dummy)
          +
          LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3), P1 param1, P2 param2, P3 param3, const ParamInfo *param_info, String config_path="")
          +
          LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4), P1 param1, P2 param2, P3 param3, P4 param4, const ParamInfo *param_info, String config_path="")
          +
          Construct a new transform based on a single function.
          +
          LambdaTransform(OUT(*function)(IN input, P1 param1), P1 param1, const ParamInfo *param_info, String config_path="")
          +
          LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2), P1 param1, P2 param2, const ParamInfo *param_info, String config_path="")
          LambdaTransform constructor for two-parameter function.
          +
          const char * key
          + +
          LambdaTransform(OUT(*function)(IN input), String config_path="")
          +
          void get_configuration(JsonObject &doc) override
          + + +
          bool set_configuration(const JsonObject &config) override
          + + + + diff --git a/docs/generated/docs/led__blinker_8cpp.html b/docs/generated/docs/led__blinker_8cpp.html new file mode 100644 index 000000000..8b33d060d --- /dev/null +++ b/docs/generated/docs/led__blinker_8cpp.html @@ -0,0 +1,142 @@ + + + + + + + +SensESP: src/system/led_blinker.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          led_blinker.cpp File Reference
          +
          +
          +
          #include "led_blinker.h"
          +#include "sensesp.h"
          +#include "sensesp_app.h"
          +
          +Include dependency graph for led_blinker.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/led__blinker_8cpp__incl.map b/docs/generated/docs/led__blinker_8cpp__incl.map new file mode 100644 index 000000000..969bc84a5 --- /dev/null +++ b/docs/generated/docs/led__blinker_8cpp__incl.map @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/led__blinker_8cpp__incl.md5 b/docs/generated/docs/led__blinker_8cpp__incl.md5 new file mode 100644 index 000000000..254b1b54a --- /dev/null +++ b/docs/generated/docs/led__blinker_8cpp__incl.md5 @@ -0,0 +1 @@ +6d576d3d047cec5933ade2d114106e79 \ No newline at end of file diff --git a/docs/generated/docs/led__blinker_8cpp__incl.png b/docs/generated/docs/led__blinker_8cpp__incl.png new file mode 100644 index 000000000..9470a53b4 Binary files /dev/null and b/docs/generated/docs/led__blinker_8cpp__incl.png differ diff --git a/docs/generated/docs/led__blinker_8cpp_source.html b/docs/generated/docs/led__blinker_8cpp_source.html new file mode 100644 index 000000000..78cc93a6b --- /dev/null +++ b/docs/generated/docs/led__blinker_8cpp_source.html @@ -0,0 +1,171 @@ + + + + + + + +SensESP: src/system/led_blinker.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          led_blinker.cpp
          +
          +
          +Go to the documentation of this file.
          1 
          +
          2 #include "led_blinker.h"
          +
          3 
          +
          4 #include "sensesp.h"
          +
          5 #include "sensesp_app.h"
          +
          6 
          +
          7 LedBlinker::LedBlinker(int pin, bool enabled, int ws_connected_interval,
          +
          8  int wifi_connected_interval, int offline_interval) {
          +
          9  this->pin = pin;
          +
          10  this->enabled = enabled;
          +
          11  this->ws_connected_interval = ws_connected_interval;
          +
          12  this->wifi_connected_interval = wifi_connected_interval;
          +
          13  this->offline_interval = offline_interval;
          +
          14 
          +
          15  if (enabled) {
          +
          16  pinMode(pin, OUTPUT);
          +
          17  this->set_state(0);
          +
          18  }
          +
          19 }
          +
          20 
          +
          21 void LedBlinker::remove_blinker() {
          +
          22  if (this->blinker != nullptr) {
          +
          23  this->blinker->remove();
          +
          24  }
          +
          25 }
          +
          26 
          +
          27 void LedBlinker::set_state(int new_state) {
          +
          28  if (enabled) {
          +
          29  this->current_state = new_state;
          +
          30  digitalWrite(pin, !new_state);
          +
          31  }
          +
          32 }
          +
          33 
          + +
          35  if (enabled) {
          +
          36  this->set_state(!this->current_state);
          +
          37  }
          +
          38 }
          +
          39 
          + +
          41  this->remove_blinker();
          +
          42 
          +
          43  if (offline_interval > 0) {
          +
          44  this->blinker = app.onRepeat(offline_interval, [this]() {
          +
          45  this->set_state(1);
          +
          46  app.onDelay(100, [this]() { this->set_state(0); });
          +
          47  });
          +
          48  }
          +
          49 }
          +
          50 
          + +
          52  this->remove_blinker();
          +
          53  this->blinker =
          +
          54  app.onRepeat(wifi_connected_interval, [this]() { this->flip(); });
          +
          55 }
          +
          56 
          + +
          58  this->remove_blinker();
          +
          59  this->blinker =
          +
          60  app.onRepeat(ws_connected_interval, [this]() { this->flip(); });
          +
          61 }
          +
          +
          +
          void set_server_connected()
          Definition: led_blinker.cpp:57
          + +
          void flip()
          Definition: led_blinker.cpp:34
          +
          LedBlinker(int pin, bool enabled, int ws_connected_interval=100, int wifi_connected_interval=1000, int offline_interval=2000)
          Definition: led_blinker.cpp:7
          + +
          void set_state(int new_state)
          Definition: led_blinker.cpp:27
          +
          ReactESP app
          +
          void set_wifi_connected()
          Definition: led_blinker.cpp:51
          + +
          void set_wifi_disconnected()
          Definition: led_blinker.cpp:40
          + + + + diff --git a/docs/generated/docs/led__blinker_8h.html b/docs/generated/docs/led__blinker_8h.html new file mode 100644 index 000000000..ce2206dda --- /dev/null +++ b/docs/generated/docs/led__blinker_8h.html @@ -0,0 +1,140 @@ + + + + + + + +SensESP: src/system/led_blinker.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          led_blinker.h File Reference
          +
          +
          +
          #include <ReactESP.h>
          +
          +Include dependency graph for led_blinker.h:
          +
          +
          + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  LedBlinker
           
          +
          +
          + + + + diff --git a/docs/generated/docs/led__blinker_8h__dep__incl.map b/docs/generated/docs/led__blinker_8h__dep__incl.map new file mode 100644 index 000000000..9fac329d2 --- /dev/null +++ b/docs/generated/docs/led__blinker_8h__dep__incl.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/led__blinker_8h__dep__incl.md5 b/docs/generated/docs/led__blinker_8h__dep__incl.md5 new file mode 100644 index 000000000..9f5911c94 --- /dev/null +++ b/docs/generated/docs/led__blinker_8h__dep__incl.md5 @@ -0,0 +1 @@ +933067b4c29fbbd6ee49eadd35c2e3c2 \ No newline at end of file diff --git a/docs/generated/docs/led__blinker_8h__dep__incl.png b/docs/generated/docs/led__blinker_8h__dep__incl.png new file mode 100644 index 000000000..1e6d760c0 Binary files /dev/null and b/docs/generated/docs/led__blinker_8h__dep__incl.png differ diff --git a/docs/led__blinker_8h__incl.map b/docs/generated/docs/led__blinker_8h__incl.map similarity index 100% rename from docs/led__blinker_8h__incl.map rename to docs/generated/docs/led__blinker_8h__incl.map diff --git a/docs/generated/docs/led__blinker_8h__incl.md5 b/docs/generated/docs/led__blinker_8h__incl.md5 new file mode 100644 index 000000000..8c943e9ed --- /dev/null +++ b/docs/generated/docs/led__blinker_8h__incl.md5 @@ -0,0 +1 @@ +686605acec5b796181035f01e01c8353 \ No newline at end of file diff --git a/docs/generated/docs/led__blinker_8h__incl.png b/docs/generated/docs/led__blinker_8h__incl.png new file mode 100644 index 000000000..930e35c1a Binary files /dev/null and b/docs/generated/docs/led__blinker_8h__incl.png differ diff --git a/docs/generated/docs/led__blinker_8h_source.html b/docs/generated/docs/led__blinker_8h_source.html new file mode 100644 index 000000000..225f70608 --- /dev/null +++ b/docs/generated/docs/led__blinker_8h_source.html @@ -0,0 +1,138 @@ + + + + + + + +SensESP: src/system/led_blinker.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          led_blinker.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _led_blinker_H_
          +
          2 #define _led_blinker_H_
          +
          3 
          +
          4 #include <ReactESP.h>
          +
          5 
          +
          6 class LedBlinker {
          +
          7  private:
          +
          8  int current_state = 0;
          +
          9  int pin = 0;
          +
          10  bool enabled = true;
          +
          11  int ws_connected_interval;
          +
          12  int wifi_connected_interval;
          +
          13  int offline_interval;
          +
          14  RepeatReaction* blinker = nullptr;
          +
          15  void remove_blinker();
          +
          16 
          +
          17  protected:
          +
          18  void set_state(int new_state);
          +
          19 
          +
          20  public:
          +
          21  void set_wifi_connected();
          +
          22  void set_wifi_disconnected();
          +
          23  void set_server_connected();
          + +
          25  void flip();
          +
          26  LedBlinker(int pin, bool enabled, int ws_connected_interval = 100,
          +
          27  int wifi_connected_interval = 1000, int offline_interval = 2000);
          +
          28 };
          +
          29 
          +
          30 #endif
          +
          +
          +
          void set_server_connected()
          Definition: led_blinker.cpp:57
          +
          void set_server_disconnected()
          Definition: led_blinker.h:24
          + +
          void flip()
          Definition: led_blinker.cpp:34
          +
          LedBlinker(int pin, bool enabled, int ws_connected_interval=100, int wifi_connected_interval=1000, int offline_interval=2000)
          Definition: led_blinker.cpp:7
          +
          void set_state(int new_state)
          Definition: led_blinker.cpp:27
          +
          void set_wifi_connected()
          Definition: led_blinker.cpp:51
          +
          void set_wifi_disconnected()
          Definition: led_blinker.cpp:40
          + + + + diff --git a/docs/generated/docs/linear_8cpp.html b/docs/generated/docs/linear_8cpp.html new file mode 100644 index 000000000..3fd584e94 --- /dev/null +++ b/docs/generated/docs/linear_8cpp.html @@ -0,0 +1,131 @@ + + + + + + + +SensESP: src/transforms/linear.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          linear.cpp File Reference
          +
          +
          +
          #include "linear.h"
          +
          +Include dependency graph for linear.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/linear_8cpp__incl.map b/docs/generated/docs/linear_8cpp__incl.map new file mode 100644 index 000000000..e2552f26e --- /dev/null +++ b/docs/generated/docs/linear_8cpp__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/linear_8cpp__incl.md5 b/docs/generated/docs/linear_8cpp__incl.md5 new file mode 100644 index 000000000..987836761 --- /dev/null +++ b/docs/generated/docs/linear_8cpp__incl.md5 @@ -0,0 +1 @@ +d8545540e03f800623e8bec4889e8793 \ No newline at end of file diff --git a/docs/generated/docs/linear_8cpp__incl.png b/docs/generated/docs/linear_8cpp__incl.png new file mode 100644 index 000000000..6929126aa Binary files /dev/null and b/docs/generated/docs/linear_8cpp__incl.png differ diff --git a/docs/generated/docs/linear_8cpp_source.html b/docs/generated/docs/linear_8cpp_source.html new file mode 100644 index 000000000..826895854 --- /dev/null +++ b/docs/generated/docs/linear_8cpp_source.html @@ -0,0 +1,121 @@ + + + + + + + +SensESP: src/transforms/linear.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          linear.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "linear.h"
          +
          2 
          +
          3 // Keys and descriptions of constant parameters
          +
          4 
          +
          5 const ParamInfo Linear::param_info[] = {{"k", "Multiplier"},
          +
          6  {"c", "Constant offset"}};
          +
          7 
          +
          8 // Function implementing the linear transform
          +
          9 
          +
          10 float (*Linear::function)(float, float, float) =
          +
          11  [](float input, float k, float c) { return k * input + c; };
          +
          12 
          +
          13 // Constructor definition
          +
          14 
          +
          15 Linear::Linear(float k, float c, String config_path)
          +
          16  : LambdaTransform<float, float, float, float>(function, k, c, param_info,
          +
          17  config_path) {}
          +
          +
          + +
          Construct a new transform based on a single function.
          +
          Linear(float k, float c, String config_path="")
          Definition: linear.cpp:15
          + + + + + diff --git a/docs/generated/docs/linear_8h.html b/docs/generated/docs/linear_8h.html new file mode 100644 index 000000000..22c14cae8 --- /dev/null +++ b/docs/generated/docs/linear_8h.html @@ -0,0 +1,149 @@ + + + + + + + +SensESP: src/transforms/linear.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          linear.h File Reference
          +
          +
          +
          #include "lambda_transform.h"
          +
          +Include dependency graph for linear.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  Linear
           
          +
          +
          + + + + diff --git a/docs/generated/docs/linear_8h__dep__incl.map b/docs/generated/docs/linear_8h__dep__incl.map new file mode 100644 index 000000000..1c9a135fa --- /dev/null +++ b/docs/generated/docs/linear_8h__dep__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/linear_8h__dep__incl.md5 b/docs/generated/docs/linear_8h__dep__incl.md5 new file mode 100644 index 000000000..1f0fbf991 --- /dev/null +++ b/docs/generated/docs/linear_8h__dep__incl.md5 @@ -0,0 +1 @@ +4065e249bfa4a3b1ee9f0b3e40aaf7a2 \ No newline at end of file diff --git a/docs/generated/docs/linear_8h__dep__incl.png b/docs/generated/docs/linear_8h__dep__incl.png new file mode 100644 index 000000000..4ad8ef4b2 Binary files /dev/null and b/docs/generated/docs/linear_8h__dep__incl.png differ diff --git a/docs/generated/docs/linear_8h__incl.map b/docs/generated/docs/linear_8h__incl.map new file mode 100644 index 000000000..745647322 --- /dev/null +++ b/docs/generated/docs/linear_8h__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/linear_8h__incl.md5 b/docs/generated/docs/linear_8h__incl.md5 new file mode 100644 index 000000000..0e2c2ef3d --- /dev/null +++ b/docs/generated/docs/linear_8h__incl.md5 @@ -0,0 +1 @@ +52423de738c8943da0988cd597b55466 \ No newline at end of file diff --git a/docs/generated/docs/linear_8h__incl.png b/docs/generated/docs/linear_8h__incl.png new file mode 100644 index 000000000..a8bd9c578 Binary files /dev/null and b/docs/generated/docs/linear_8h__incl.png differ diff --git a/docs/generated/docs/linear_8h_source.html b/docs/generated/docs/linear_8h_source.html new file mode 100644 index 000000000..8b0987dc2 --- /dev/null +++ b/docs/generated/docs/linear_8h_source.html @@ -0,0 +1,120 @@ + + + + + + + +SensESP: src/transforms/linear.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          linear.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _linear_H_
          +
          2 #define _linear_H_
          +
          3 
          +
          4 #include "lambda_transform.h"
          +
          5 
          +
          11 class Linear : public LambdaTransform<float, float, float, float> {
          +
          12  public:
          +
          13  Linear(float k, float c, String config_path = "");
          +
          14 
          +
          15  private:
          +
          16  static float (*function)(float, float, float);
          +
          17  static const ParamInfo param_info[];
          +
          18 };
          +
          19 
          +
          20 #endif
          +
          +
          + +
          Definition: linear.h:11
          +
          Construct a new transform based on a single function.
          +
          Linear(float k, float c, String config_path="")
          Definition: linear.cpp:15
          + + + + + diff --git a/docs/generated/docs/main_8cpp.html b/docs/generated/docs/main_8cpp.html new file mode 100644 index 000000000..72054da17 --- /dev/null +++ b/docs/generated/docs/main_8cpp.html @@ -0,0 +1,215 @@ + + + + + + + +SensESP: src/main.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          main.cpp File Reference
          +
          +
          +
          #include <Arduino.h>
          +#include "math.h"
          +#include "sensesp_app.h"
          +#include "sensors/analog_input.h"
          +#include "signalk/signalk_output.h"
          +#include "transforms/hysteresis.h"
          +
          +Include dependency graph for main.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Functions

          ReactESP app ([]() { SetupSerialDebug(115200);sensesp_app=new SensESPApp("sensesp-hysteresis-example", "My WiFi SSID", "my_wifi_password", "skserver.lan", 80, NONE);const char *sk_path="indoor.illumination";const char *analog_in_config_path="/indoor_illumination/analog_in";uint read_delay=500;float output_scale=3.3;auto *analog_input=new AnalogInput(pin, read_delay, analog_in_config_path, output_scale);analog_input ->connect_to(new Hysteresis< float, bool >(0.3, 0.5, false, true, "/transforms/hysteresis")) ->connect_to(new SKOutputBool(sk_path));analog_input ->connect_to(new Hysteresis< float, bool >(0.6, 1.0, false, true, "/transforms/hysteresis2")) ->connect_to(new SKOutputBool(sk_path));sensesp_app->enable();})
           
          +

          Function Documentation

          + +

          ◆ app()

          + +
          +
          + + + + + + + + +
          ReactESP app ([] () { SetupSerialDebug(115200);sensesp_app=new SensESPApp("sensesp-hysteresis-example", "My WiFi SSID", "my_wifi_password", "skserver.lan", 80, NONE);const char *sk_path="indoor.illumination";const char *analog_in_config_path="/indoor_illumination/analog_in";uint read_delay=500;float output_scale=3.3;auto *analog_input=new AnalogInput(pin, read_delay, analog_in_config_path, output_scale);analog_input ->connect_to(new Hysteresis< float, bool >(0.3, 0.5, false, true, "/transforms/hysteresis")) ->connect_to(new SKOutputBool(sk_path));analog_input ->connect_to(new Hysteresis< float, bool >(0.6, 1.0, false, true, "/transforms/hysteresis2")) ->connect_to(new SKOutputBool(sk_path));sensesp_app->enable();} )
          +
          +
          +Here is the call graph for this function:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          + +
          +
          +
          +
          + + + + diff --git a/docs/generated/docs/main_8cpp.js b/docs/generated/docs/main_8cpp.js new file mode 100644 index 000000000..1518bfecb --- /dev/null +++ b/docs/generated/docs/main_8cpp.js @@ -0,0 +1,4 @@ +var main_8cpp = +[ + [ "app", "main_8cpp.html#a6d9293a0861bd0a401705876575bf2d1", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp__incl.map b/docs/generated/docs/main_8cpp__incl.map new file mode 100644 index 000000000..91e3f4bc1 --- /dev/null +++ b/docs/generated/docs/main_8cpp__incl.map @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp__incl.md5 b/docs/generated/docs/main_8cpp__incl.md5 new file mode 100644 index 000000000..899bb26c7 --- /dev/null +++ b/docs/generated/docs/main_8cpp__incl.md5 @@ -0,0 +1 @@ +d28b5e0032688f58a1282c1e704cbf54 \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp__incl.png b/docs/generated/docs/main_8cpp__incl.png new file mode 100644 index 000000000..23ddb2ecb Binary files /dev/null and b/docs/generated/docs/main_8cpp__incl.png differ diff --git a/docs/generated/docs/main_8cpp_a6d9293a0861bd0a401705876575bf2d1_cgraph.map b/docs/generated/docs/main_8cpp_a6d9293a0861bd0a401705876575bf2d1_cgraph.map new file mode 100644 index 000000000..c9568f5cf --- /dev/null +++ b/docs/generated/docs/main_8cpp_a6d9293a0861bd0a401705876575bf2d1_cgraph.map @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a6d9293a0861bd0a401705876575bf2d1_cgraph.md5 b/docs/generated/docs/main_8cpp_a6d9293a0861bd0a401705876575bf2d1_cgraph.md5 new file mode 100644 index 000000000..3e3090662 --- /dev/null +++ b/docs/generated/docs/main_8cpp_a6d9293a0861bd0a401705876575bf2d1_cgraph.md5 @@ -0,0 +1 @@ +fde4e54a46a89d80b4a24cc84ea2f33d \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_a6d9293a0861bd0a401705876575bf2d1_cgraph.png b/docs/generated/docs/main_8cpp_a6d9293a0861bd0a401705876575bf2d1_cgraph.png new file mode 100644 index 000000000..46214ce83 Binary files /dev/null and b/docs/generated/docs/main_8cpp_a6d9293a0861bd0a401705876575bf2d1_cgraph.png differ diff --git a/docs/generated/docs/main_8cpp_source.html b/docs/generated/docs/main_8cpp_source.html new file mode 100644 index 000000000..d7b1f3c60 --- /dev/null +++ b/docs/generated/docs/main_8cpp_source.html @@ -0,0 +1,164 @@ + + + + + + + +SensESP: src/main.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          main.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include <Arduino.h>
          +
          2 
          +
          3 #include "math.h"
          +
          4 #include "sensesp_app.h"
          +
          5 #include "sensors/analog_input.h"
          + + +
          8 
          +
          9 ReactESP app([]() {
          +
          10  SetupSerialDebug(115200);
          +
          11 
          +
          12  sensesp_app = new SensESPApp("sensesp-hysteresis-example", "My WiFi SSID",
          +
          13  "my_wifi_password", "skserver.lan", 80, NONE);
          +
          14 
          +
          15  const char* sk_path = "indoor.illumination";
          +
          16  const char* analog_in_config_path = "/indoor_illumination/analog_in";
          +
          17 
          +
          18  uint read_delay = 500;
          +
          19 
          +
          20 #ifdef ESP8266
          +
          21  uint8_t pin = A0;
          +
          22 #elif defined(ESP32)
          +
          23  uint8_t pin = 32;
          +
          24 #endif
          +
          25 
          +
          26  float output_scale = 3.3;
          +
          27 
          +
          28  // Use AnalogInput as an example sensor. Connect it e.g. to a photoresistor
          +
          29  // or a potentiometer with a voltage divider to get an illustrative test
          +
          30  // input.
          +
          31 
          +
          32  auto* analog_input =
          +
          33  new AnalogInput(pin, read_delay, analog_in_config_path, output_scale);
          +
          34 
          +
          35  // Connect the analog input via a hysteresis transform
          +
          36  // to an SKOutputBool object. The hysteresis function has arbitrary voltage
          +
          37  // limits that trigger the function when moving one's hand over a
          +
          38  // particular photoresistor test setup.
          +
          39 
          +
          40  analog_input
          +
          41  ->connect_to(new Hysteresis<float, bool>(0.3, 0.5, false, true,
          +
          42  "/transforms/hysteresis"))
          +
          43  ->connect_to(new SKOutputBool(sk_path));
          +
          44 
          +
          45  analog_input
          +
          46  ->connect_to(new Hysteresis<float, bool>(0.6, 1.0, false, true,
          +
          47  "/transforms/hysteresis2"))
          +
          48  ->connect_to(new SKOutputBool(sk_path));
          +
          49 
          + +
          51 });
          +
          +
          +
          ReactESP app([]() { SetupSerialDebug(115200);sensesp_app=new SensESPApp("sensesp-hysteresis-example", "My WiFi SSID", "my_wifi_password", "skserver.lan", 80, NONE);const char *sk_path="indoor.illumination";const char *analog_in_config_path="/indoor_illumination/analog_in";uint read_delay=500;float output_scale=3.3;auto *analog_input=new AnalogInput(pin, read_delay, analog_in_config_path, output_scale);analog_input ->connect_to(new Hysteresis< float, bool >(0.3, 0.5, false, true, "/transforms/hysteresis")) ->connect_to(new SKOutputBool(sk_path));analog_input ->connect_to(new Hysteresis< float, bool >(0.6, 1.0, false, true, "/transforms/hysteresis2")) ->connect_to(new SKOutputBool(sk_path));sensesp_app->enable();})
          +
          void enable()
          +
          void SetupSerialDebug(uint32_t baudrate)
          Definition: sensesp_app.cpp:26
          +
          @ NONE
          Definition: sensesp_app.h:27
          +
          SKOutput< bool > SKOutputBool
          + +
          SensESPApp * sensesp_app
          +
          Hysteresis function.
          Definition: hysteresis.h:31
          + + + + + + + + + diff --git a/docs/generated/docs/max31856__thermocouple_8cpp.html b/docs/generated/docs/max31856__thermocouple_8cpp.html new file mode 100644 index 000000000..6a424610d --- /dev/null +++ b/docs/generated/docs/max31856__thermocouple_8cpp.html @@ -0,0 +1,133 @@ + + + + + + + +SensESP: src/sensors/max31856_thermocouple.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          max31856_thermocouple.cpp File Reference
          +
          +
          +
          #include "max31856_thermocouple.h"
          +#include "Arduino.h"
          +#include "sensesp.h"
          +
          +Include dependency graph for max31856_thermocouple.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/max31856__thermocouple_8cpp__incl.map b/docs/generated/docs/max31856__thermocouple_8cpp__incl.map new file mode 100644 index 000000000..ac9681cf0 --- /dev/null +++ b/docs/generated/docs/max31856__thermocouple_8cpp__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/max31856__thermocouple_8cpp__incl.md5 b/docs/generated/docs/max31856__thermocouple_8cpp__incl.md5 new file mode 100644 index 000000000..3f5989d60 --- /dev/null +++ b/docs/generated/docs/max31856__thermocouple_8cpp__incl.md5 @@ -0,0 +1 @@ +55b94dcb28b424bd9228384e07dcf7f7 \ No newline at end of file diff --git a/docs/generated/docs/max31856__thermocouple_8cpp__incl.png b/docs/generated/docs/max31856__thermocouple_8cpp__incl.png new file mode 100644 index 000000000..feed5eacc Binary files /dev/null and b/docs/generated/docs/max31856__thermocouple_8cpp__incl.png differ diff --git a/docs/generated/docs/max31856__thermocouple_8cpp_source.html b/docs/generated/docs/max31856__thermocouple_8cpp_source.html new file mode 100644 index 000000000..51e0587f0 --- /dev/null +++ b/docs/generated/docs/max31856__thermocouple_8cpp_source.html @@ -0,0 +1,168 @@ + + + + + + + +SensESP: src/sensors/max31856_thermocouple.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          max31856_thermocouple.cpp
          +
          +
          +Go to the documentation of this file.
          +
          2 
          +
          3 #include "Arduino.h"
          +
          4 #include "sensesp.h"
          +
          5 
          +
          6 MAX31856Thermocouple::MAX31856Thermocouple(int8_t cs_pin, int8_t mosi_pin,
          +
          7  int8_t miso_pin, int8_t clk_pin,
          +
          8  int8_t drdy_pin,
          +
          9  max31856_thermocoupletype_t tc_type,
          +
          10  uint read_delay, String config_path)
          +
          11  : NumericSensor(config_path),
          +
          12  data_ready_pin{drdy_pin},
          +
          13  read_delay{read_delay} {
          +
          14  load_configuration();
          +
          15  max31856 = new Adafruit_MAX31856(cs_pin, mosi_pin, miso_pin, clk_pin);
          +
          16  if (!max31856->begin()) {
          +
          17  while (1) delay(10);
          +
          18  }
          +
          19  max31856->setThermocoupleType(tc_type);
          +
          20  max31856->setConversionMode(MAX31856_CONTINUOUS);
          +
          21 }
          +
          22 
          + +
          24  app.onRepeat(read_delay, [this]() {
          +
          25  while (digitalRead(data_ready_pin)) {
          +
          26  delay(25);
          +
          27  }
          +
          28  float temp = max31856->readThermocoupleTemperature();
          +
          29  output = temp;
          +
          30  this->notify();
          +
          31  });
          +
          32 }
          +
          33 
          +
          34 void MAX31856Thermocouple::get_configuration(JsonObject& root) {
          +
          35  root["read_delay"] = read_delay;
          +
          36  root["value"] = output;
          +
          37 };
          +
          38 
          +
          39 static const char SCHEMA[] PROGMEM = R"###({
          +
          40  "type": "object",
          +
          41  "properties": {
          +
          42  "read_delay": { "title": "Read delay", "type": "number", "description": "Number of milliseconds between each thermocouple read " },
          +
          43  "value": { "title": "Last value", "type" : "number", "readOnly": true }
          +
          44  }
          +
          45  })###";
          +
          46 
          +
          47 String MAX31856Thermocouple::get_config_schema() { return FPSTR(SCHEMA); }
          +
          48 
          +
          49 bool MAX31856Thermocouple::set_configuration(const JsonObject& config) {
          +
          50  String expected[] = {"read_delay"};
          +
          51  for (auto str : expected) {
          +
          52  if (!config.containsKey(str)) {
          +
          53  return false;
          +
          54  }
          +
          55  }
          +
          56  read_delay = config["read_delay"];
          +
          57  return true;
          +
          58 }
          +
          +
          +
          void notify()
          Definition: observable.cpp:3
          + +
          MAX31856Thermocouple(int8_t cs_pin, int8_t mosi_pin, int8_t miso_pin, int8_t clk_pin, int8_t drdy_pin, max31856_thermocoupletype_t tc_type, uint read_delay, String config_path="")
          +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          + +
          void enable() override final
          + + +
          ReactESP app
          +
          Adafruit_MAX31856 * max31856
          + + + + diff --git a/docs/generated/docs/max31856__thermocouple_8h.html b/docs/generated/docs/max31856__thermocouple_8h.html new file mode 100644 index 000000000..8ebbcefa6 --- /dev/null +++ b/docs/generated/docs/max31856__thermocouple_8h.html @@ -0,0 +1,148 @@ + + + + + + + +SensESP: src/sensors/max31856_thermocouple.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          max31856_thermocouple.h File Reference
          +
          +
          +
          #include "Adafruit_MAX31856.h"
          +#include "sensor.h"
          +
          +Include dependency graph for max31856_thermocouple.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  MAX31856Thermocouple
           
          +
          +
          + + + + diff --git a/docs/generated/docs/max31856__thermocouple_8h__dep__incl.map b/docs/generated/docs/max31856__thermocouple_8h__dep__incl.map new file mode 100644 index 000000000..1450cf77a --- /dev/null +++ b/docs/generated/docs/max31856__thermocouple_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/max31856__thermocouple_8h__dep__incl.md5 b/docs/generated/docs/max31856__thermocouple_8h__dep__incl.md5 new file mode 100644 index 000000000..662dcb554 --- /dev/null +++ b/docs/generated/docs/max31856__thermocouple_8h__dep__incl.md5 @@ -0,0 +1 @@ +3d6897a2e40c3d10cdc72e3daabd44d9 \ No newline at end of file diff --git a/docs/generated/docs/max31856__thermocouple_8h__dep__incl.png b/docs/generated/docs/max31856__thermocouple_8h__dep__incl.png new file mode 100644 index 000000000..b9965e31a Binary files /dev/null and b/docs/generated/docs/max31856__thermocouple_8h__dep__incl.png differ diff --git a/docs/generated/docs/max31856__thermocouple_8h__incl.map b/docs/generated/docs/max31856__thermocouple_8h__incl.map new file mode 100644 index 000000000..560c36a5a --- /dev/null +++ b/docs/generated/docs/max31856__thermocouple_8h__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/max31856__thermocouple_8h__incl.md5 b/docs/generated/docs/max31856__thermocouple_8h__incl.md5 new file mode 100644 index 000000000..fdda87ea2 --- /dev/null +++ b/docs/generated/docs/max31856__thermocouple_8h__incl.md5 @@ -0,0 +1 @@ +68f1e86265475182f21c3d4cff3deac6 \ No newline at end of file diff --git a/docs/generated/docs/max31856__thermocouple_8h__incl.png b/docs/generated/docs/max31856__thermocouple_8h__incl.png new file mode 100644 index 000000000..4a4e22047 Binary files /dev/null and b/docs/generated/docs/max31856__thermocouple_8h__incl.png differ diff --git a/docs/generated/docs/max31856__thermocouple_8h_source.html b/docs/generated/docs/max31856__thermocouple_8h_source.html new file mode 100644 index 000000000..b697cb9c8 --- /dev/null +++ b/docs/generated/docs/max31856__thermocouple_8h_source.html @@ -0,0 +1,130 @@ + + + + + + + +SensESP: src/sensors/max31856_thermocouple.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          max31856_thermocouple.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _MAX31856_thermocouple_H_
          +
          2 #define _MAX31856_thermocouple_H_
          +
          3 #include "Adafruit_MAX31856.h"
          +
          4 #include "sensor.h"
          +
          5 
          + +
          7  public:
          +
          8  MAX31856Thermocouple(int8_t cs_pin, int8_t mosi_pin, int8_t miso_pin,
          +
          9  int8_t clk_pin, int8_t drdy_pin,
          +
          10  max31856_thermocoupletype_t tc_type, uint read_delay,
          +
          11  String config_path = "");
          +
          12  Adafruit_MAX31856* max31856;
          +
          13  void enable() override final;
          +
          14 
          +
          15  private:
          +
          16  int8_t data_ready_pin;
          +
          17  uint read_delay;
          +
          18  virtual void get_configuration(JsonObject& doc) override;
          +
          19  virtual bool set_configuration(const JsonObject& config) override;
          +
          20  virtual String get_config_schema() override;
          +
          21 };
          +
          22 
          +
          23 #endif
          +
          +
          + +
          MAX31856Thermocouple(int8_t cs_pin, int8_t mosi_pin, int8_t miso_pin, int8_t clk_pin, int8_t drdy_pin, max31856_thermocoupletype_t tc_type, uint read_delay, String config_path="")
          + +
          void enable() override final
          + +
          const String config_path
          Definition: configurable.h:31
          +
          Adafruit_MAX31856 * max31856
          + + + + diff --git a/docs/generated/docs/median_8cpp.html b/docs/generated/docs/median_8cpp.html new file mode 100644 index 000000000..6cbd749b0 --- /dev/null +++ b/docs/generated/docs/median_8cpp.html @@ -0,0 +1,130 @@ + + + + + + + +SensESP: src/transforms/median.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          median.cpp File Reference
          +
          +
          +
          #include "median.h"
          +
          +Include dependency graph for median.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/median_8cpp__incl.map b/docs/generated/docs/median_8cpp__incl.map new file mode 100644 index 000000000..989fe07fc --- /dev/null +++ b/docs/generated/docs/median_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/median_8cpp__incl.md5 b/docs/generated/docs/median_8cpp__incl.md5 new file mode 100644 index 000000000..7b1daee0f --- /dev/null +++ b/docs/generated/docs/median_8cpp__incl.md5 @@ -0,0 +1 @@ +e79db056f95ba2e0d6d3bd30327d1e64 \ No newline at end of file diff --git a/docs/generated/docs/median_8cpp__incl.png b/docs/generated/docs/median_8cpp__incl.png new file mode 100644 index 000000000..c243da9ef Binary files /dev/null and b/docs/generated/docs/median_8cpp__incl.png differ diff --git a/docs/generated/docs/median_8cpp_source.html b/docs/generated/docs/median_8cpp_source.html new file mode 100644 index 000000000..801c55edd --- /dev/null +++ b/docs/generated/docs/median_8cpp_source.html @@ -0,0 +1,157 @@ + + + + + + + +SensESP: src/transforms/median.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          median.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "median.h"
          +
          2 
          +
          3 Median::Median(unsigned int sample_size, String config_path)
          +
          4  : NumericTransform(config_path), sample_size{sample_size} {
          +
          5  load_configuration();
          +
          6  buf.reserve(sample_size);
          +
          7  buf.clear();
          +
          8 }
          +
          9 
          +
          10 void Median::set_input(float input, uint8_t inputChannel) {
          +
          11  buf.push_back(input);
          +
          12  if (buf.size() >= sample_size) {
          +
          13  // Its time to output a value
          +
          14  sort(buf.begin(), buf.end());
          +
          15  int mid = sample_size / 2;
          +
          16  output = buf[mid];
          +
          17  buf.clear();
          +
          18  notify();
          +
          19  }
          +
          20 }
          +
          21 
          +
          22 void Median::get_configuration(JsonObject& root) {
          +
          23  root["sample_size"] = sample_size;
          +
          24 }
          +
          25 
          +
          26 static const char SCHEMA[] PROGMEM = R"({
          +
          27  "type": "object",
          +
          28  "properties": {
          +
          29  "sample_size": { "title": "Sample size", "description": "Number of samples to take before outputing a value", "type": "integer" }
          +
          30  }
          +
          31  })";
          +
          32 
          +
          33 String Median::get_config_schema() { return FPSTR(SCHEMA); }
          +
          34 
          +
          35 bool Median::set_configuration(const JsonObject& config) {
          +
          36  String expected[] = {"sample_size"};
          +
          37  for (auto str : expected) {
          +
          38  if (!config.containsKey(str)) {
          +
          39  return false;
          +
          40  }
          +
          41  }
          +
          42  unsigned int sample_size_new = config["sample_size"];
          +
          43  if (sample_size != sample_size_new) {
          +
          44  sample_size = sample_size_new;
          +
          45  buf.reserve(sample_size);
          +
          46  buf.clear();
          +
          47  }
          +
          48  return true;
          +
          49 }
          +
          +
          + + +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          +
          virtual bool set_configuration(const JsonObject &config) override
          Definition: median.cpp:35
          +
          virtual void get_configuration(JsonObject &doc) override
          Definition: median.cpp:22
          +
          Median(unsigned int sample_size=10, String config_path="")
          Definition: median.cpp:3
          +
          virtual void set_input(float input, uint8_t input_channel=0) override
          Definition: median.cpp:10
          +
          virtual String get_config_schema() override
          Definition: median.cpp:33
          + + + + diff --git a/docs/generated/docs/median_8h.html b/docs/generated/docs/median_8h.html new file mode 100644 index 000000000..c434c3e7c --- /dev/null +++ b/docs/generated/docs/median_8h.html @@ -0,0 +1,147 @@ + + + + + + + +SensESP: src/transforms/median.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          median.h File Reference
          +
          +
          +
          #include <vector>
          +#include "transforms/transform.h"
          +
          +Include dependency graph for median.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  Median
           
          +
          +
          + + + + diff --git a/docs/median_8h__dep__incl.map b/docs/generated/docs/median_8h__dep__incl.map similarity index 100% rename from docs/median_8h__dep__incl.map rename to docs/generated/docs/median_8h__dep__incl.map diff --git a/docs/generated/docs/median_8h__dep__incl.md5 b/docs/generated/docs/median_8h__dep__incl.md5 new file mode 100644 index 000000000..9657b1d3d --- /dev/null +++ b/docs/generated/docs/median_8h__dep__incl.md5 @@ -0,0 +1 @@ +e2a1456d67940be81d428416996a171c \ No newline at end of file diff --git a/docs/generated/docs/median_8h__dep__incl.png b/docs/generated/docs/median_8h__dep__incl.png new file mode 100644 index 000000000..b36b2f78e Binary files /dev/null and b/docs/generated/docs/median_8h__dep__incl.png differ diff --git a/docs/generated/docs/median_8h__incl.map b/docs/generated/docs/median_8h__incl.map new file mode 100644 index 000000000..97396935c --- /dev/null +++ b/docs/generated/docs/median_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/median_8h__incl.md5 b/docs/generated/docs/median_8h__incl.md5 new file mode 100644 index 000000000..6ee621b08 --- /dev/null +++ b/docs/generated/docs/median_8h__incl.md5 @@ -0,0 +1 @@ +4e352dbb570c52d9e92eb99d0c826a7e \ No newline at end of file diff --git a/docs/generated/docs/median_8h__incl.png b/docs/generated/docs/median_8h__incl.png new file mode 100644 index 000000000..9f8b599a4 Binary files /dev/null and b/docs/generated/docs/median_8h__incl.png differ diff --git a/docs/generated/docs/median_8h_source.html b/docs/generated/docs/median_8h_source.html new file mode 100644 index 000000000..8189aa389 --- /dev/null +++ b/docs/generated/docs/median_8h_source.html @@ -0,0 +1,129 @@ + + + + + + + +SensESP: src/transforms/median.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          median.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _median_H_
          +
          2 #define _median_H_
          +
          3 
          +
          4 #include <vector>
          +
          5 
          +
          6 #include "transforms/transform.h"
          +
          7 
          +
          13 class Median : public NumericTransform {
          +
          14  public:
          +
          15  Median(unsigned int sample_size = 10, String config_path = "");
          +
          16  virtual void set_input(float input, uint8_t input_channel = 0) override;
          +
          17  virtual void get_configuration(JsonObject& doc) override;
          +
          18  virtual bool set_configuration(const JsonObject& config) override;
          +
          19  virtual String get_config_schema() override;
          +
          20 
          +
          21  private:
          +
          22  std::vector<float> buf;
          +
          23  unsigned int sample_size;
          +
          24 };
          +
          25 
          +
          26 #endif
          +
          +
          +
          Definition: median.h:13
          + +
          virtual bool set_configuration(const JsonObject &config) override
          Definition: median.cpp:35
          +
          virtual void get_configuration(JsonObject &doc) override
          Definition: median.cpp:22
          +
          Median(unsigned int sample_size=10, String config_path="")
          Definition: median.cpp:3
          +
          virtual void set_input(float input, uint8_t input_channel=0) override
          Definition: median.cpp:10
          +
          virtual String get_config_schema() override
          Definition: median.cpp:33
          + + + + + diff --git a/docs/generated/docs/menu.js b/docs/generated/docs/menu.js new file mode 100644 index 000000000..2fe2214f2 --- /dev/null +++ b/docs/generated/docs/menu.js @@ -0,0 +1,51 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
        • '); + } else { + $('#main-menu').append('
        • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/docs/generated/docs/menudata.js b/docs/generated/docs/menudata.js new file mode 100644 index 000000000..c8508ff68 --- /dev/null +++ b/docs/generated/docs/menudata.js @@ -0,0 +1,161 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"inherits.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions_b.html#index_b"}, +{text:"c",url:"functions_c.html#index_c"}, +{text:"d",url:"functions_d.html#index_d"}, +{text:"e",url:"functions_e.html#index_e"}, +{text:"f",url:"functions_f.html#index_f"}, +{text:"g",url:"functions_g.html#index_g"}, +{text:"h",url:"functions_h.html#index_h"}, +{text:"i",url:"functions_i.html#index_i"}, +{text:"k",url:"functions_k.html#index_k"}, +{text:"l",url:"functions_l.html#index_l"}, +{text:"m",url:"functions_m.html#index_m"}, +{text:"n",url:"functions_n.html#index_n"}, +{text:"o",url:"functions_o.html#index_o"}, +{text:"p",url:"functions_p.html#index_p"}, +{text:"r",url:"functions_r.html#index_r"}, +{text:"s",url:"functions_s.html#index_s"}, +{text:"t",url:"functions_t.html#index_t"}, +{text:"u",url:"functions_u.html#index_u"}, +{text:"v",url:"functions_v.html#index_v"}, +{text:"w",url:"functions_w.html#index_w"}, +{text:"~",url:"functions_~.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"b",url:"functions_func_b.html#index_b"}, +{text:"c",url:"functions_func_c.html#index_c"}, +{text:"d",url:"functions_func_d.html#index_d"}, +{text:"e",url:"functions_func_e.html#index_e"}, +{text:"f",url:"functions_func_f.html#index_f"}, +{text:"g",url:"functions_func_g.html#index_g"}, +{text:"h",url:"functions_func_h.html#index_h"}, +{text:"i",url:"functions_func_i.html#index_i"}, +{text:"l",url:"functions_func_l.html#index_l"}, +{text:"m",url:"functions_func_m.html#index_m"}, +{text:"n",url:"functions_func_n.html#index_n"}, +{text:"o",url:"functions_func_o.html#index_o"}, +{text:"p",url:"functions_func_p.html#index_p"}, +{text:"r",url:"functions_func_r.html#index_r"}, +{text:"s",url:"functions_func_s.html#index_s"}, +{text:"t",url:"functions_func_t.html#index_t"}, +{text:"u",url:"functions_func_u.html#index_u"}, +{text:"v",url:"functions_func_v.html#index_v"}, +{text:"w",url:"functions_func_w.html#index_w"}, +{text:"~",url:"functions_func_~.html#index__7E"}]}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"a",url:"functions_vars.html#index_a"}, +{text:"b",url:"functions_vars.html#index_b"}, +{text:"c",url:"functions_vars.html#index_c"}, +{text:"d",url:"functions_vars.html#index_d"}, +{text:"e",url:"functions_vars.html#index_e"}, +{text:"g",url:"functions_vars.html#index_g"}, +{text:"h",url:"functions_vars.html#index_h"}, +{text:"i",url:"functions_vars.html#index_i"}, +{text:"k",url:"functions_vars.html#index_k"}, +{text:"l",url:"functions_vars.html#index_l"}, +{text:"m",url:"functions_vars.html#index_m"}, +{text:"n",url:"functions_vars.html#index_n"}, +{text:"o",url:"functions_vars.html#index_o"}, +{text:"p",url:"functions_vars.html#index_p"}, +{text:"r",url:"functions_vars.html#index_r"}, +{text:"s",url:"functions_vars.html#index_s"}, +{text:"t",url:"functions_vars.html#index_t"}, +{text:"u",url:"functions_vars.html#index_u"}, +{text:"v",url:"functions_vars.html#index_v"}]}, +{text:"Related Functions",url:"functions_rela.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"File Members",url:"globals.html",children:[ +{text:"All",url:"globals.html",children:[ +{text:"a",url:"globals.html#index_a"}, +{text:"b",url:"globals.html#index_b"}, +{text:"c",url:"globals.html#index_c"}, +{text:"d",url:"globals.html#index_d"}, +{text:"e",url:"globals.html#index_e"}, +{text:"f",url:"globals.html#index_f"}, +{text:"g",url:"globals.html#index_g"}, +{text:"h",url:"globals.html#index_h"}, +{text:"i",url:"globals.html#index_i"}, +{text:"l",url:"globals.html#index_l"}, +{text:"m",url:"globals.html#index_m"}, +{text:"n",url:"globals.html#index_n"}, +{text:"o",url:"globals.html#index_o"}, +{text:"p",url:"globals.html#index_p"}, +{text:"r",url:"globals.html#index_r"}, +{text:"s",url:"globals.html#index_s"}, +{text:"t",url:"globals.html#index_t"}, +{text:"u",url:"globals.html#index_u"}, +{text:"v",url:"globals.html#index_v"}, +{text:"w",url:"globals.html#index_w"}]}, +{text:"Functions",url:"globals_func.html",children:[ +{text:"a",url:"globals_func.html#index_a"}, +{text:"g",url:"globals_func.html#index_g"}, +{text:"h",url:"globals_func.html#index_h"}, +{text:"o",url:"globals_func.html#index_o"}, +{text:"p",url:"globals_func.html#index_p"}, +{text:"r",url:"globals_func.html#index_r"}, +{text:"s",url:"globals_func.html#index_s"}, +{text:"w",url:"globals_func.html#index_w"}]}, +{text:"Variables",url:"globals_vars.html"}, +{text:"Typedefs",url:"globals_type.html",children:[ +{text:"a",url:"globals_type.html#index_a"}, +{text:"b",url:"globals_type.html#index_b"}, +{text:"i",url:"globals_type.html#index_i"}, +{text:"n",url:"globals_type.html#index_n"}, +{text:"o",url:"globals_type.html#index_o"}, +{text:"s",url:"globals_type.html#index_s"}, +{text:"u",url:"globals_type.html#index_u"}, +{text:"v",url:"globals_type.html#index_v"}]}, +{text:"Enumerations",url:"globals_enum.html"}, +{text:"Enumerator",url:"globals_eval.html",children:[ +{text:"a",url:"globals_eval.html#index_a"}, +{text:"b",url:"globals_eval.html#index_b"}, +{text:"c",url:"globals_eval.html#index_c"}, +{text:"d",url:"globals_eval.html#index_d"}, +{text:"e",url:"globals_eval.html#index_e"}, +{text:"f",url:"globals_eval.html#index_f"}, +{text:"g",url:"globals_eval.html#index_g"}, +{text:"h",url:"globals_eval.html#index_h"}, +{text:"i",url:"globals_eval.html#index_i"}, +{text:"l",url:"globals_eval.html#index_l"}, +{text:"m",url:"globals_eval.html#index_m"}, +{text:"n",url:"globals_eval.html#index_n"}, +{text:"p",url:"globals_eval.html#index_p"}, +{text:"r",url:"globals_eval.html#index_r"}, +{text:"s",url:"globals_eval.html#index_s"}, +{text:"t",url:"globals_eval.html#index_t"}, +{text:"u",url:"globals_eval.html#index_u"}, +{text:"w",url:"globals_eval.html#index_w"}]}, +{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/docs/generated/docs/moving__average_8cpp.html b/docs/generated/docs/moving__average_8cpp.html new file mode 100644 index 000000000..cbe77b664 --- /dev/null +++ b/docs/generated/docs/moving__average_8cpp.html @@ -0,0 +1,130 @@ + + + + + + + +SensESP: src/transforms/moving_average.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          moving_average.cpp File Reference
          +
          +
          +
          #include "moving_average.h"
          +
          +Include dependency graph for moving_average.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/moving__average_8cpp__incl.map b/docs/generated/docs/moving__average_8cpp__incl.map new file mode 100644 index 000000000..d89a5073a --- /dev/null +++ b/docs/generated/docs/moving__average_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/moving__average_8cpp__incl.md5 b/docs/generated/docs/moving__average_8cpp__incl.md5 new file mode 100644 index 000000000..4fa5789fc --- /dev/null +++ b/docs/generated/docs/moving__average_8cpp__incl.md5 @@ -0,0 +1 @@ +fe6ed268cee85e8e7b0c4b8cedb951fa \ No newline at end of file diff --git a/docs/generated/docs/moving__average_8cpp__incl.png b/docs/generated/docs/moving__average_8cpp__incl.png new file mode 100644 index 000000000..8b72ce8c8 Binary files /dev/null and b/docs/generated/docs/moving__average_8cpp__incl.png differ diff --git a/docs/generated/docs/moving__average_8cpp_source.html b/docs/generated/docs/moving__average_8cpp_source.html new file mode 100644 index 000000000..4f2e59f33 --- /dev/null +++ b/docs/generated/docs/moving__average_8cpp_source.html @@ -0,0 +1,173 @@ + + + + + + + +SensESP: src/transforms/moving_average.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          moving_average.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "moving_average.h"
          +
          2 
          +
          3 // MovingAverage
          +
          4 
          +
          5 MovingAverage::MovingAverage(int n, float k, String config_path)
          +
          6  : NumericTransform(config_path), n{n}, k{k} {
          +
          7  buf.resize(n, 0);
          +
          8  initialized = false;
          +
          9  load_configuration();
          +
          10 }
          +
          11 
          +
          12 void MovingAverage::set_input(float input, uint8_t inputChannel) {
          +
          13  // So the first value to be included in the average doesn't default to 0.0
          +
          14  if (!initialized) {
          +
          15  buf.assign(n, input);
          +
          16  output = input;
          +
          17  initialized = true;
          +
          18  } else {
          +
          19  // Subtract 1/nth of the oldest value and add 1/nth of the newest value
          +
          20  output += -k * buf[ptr] / n;
          +
          21  output += k * input / n;
          +
          22 
          +
          23  // Save the most recent input, then advance to the next storage location.
          +
          24  // When storage location n is reached, start over again at 0.
          +
          25  buf[ptr] = input;
          +
          26  ptr = (ptr + 1) % n;
          +
          27  }
          +
          28  notify();
          +
          29 }
          +
          30 
          +
          31 void MovingAverage::get_configuration(JsonObject& root) {
          +
          32  root["k"] = k;
          +
          33  root["n"] = n;
          +
          34  root["value"] = output;
          +
          35 }
          +
          36 
          +
          37 static const char SCHEMA[] PROGMEM = R"({
          +
          38  "type": "object",
          +
          39  "properties": {
          +
          40  "n": { "title": "Number of samples in average", "type": "integer" },
          +
          41  "k": { "title": "Multiplier", "type": "number" },
          +
          42  "value": { "title": "Last value", "type" : "number", "readOnly": true }
          +
          43  }
          +
          44  })";
          +
          45 
          +
          46 String MovingAverage::get_config_schema() { return FPSTR(SCHEMA); }
          +
          47 
          +
          48 bool MovingAverage::set_configuration(const JsonObject& config) {
          +
          49  String expected[] = {"k", "n"};
          +
          50  for (auto str : expected) {
          +
          51  if (!config.containsKey(str)) {
          +
          52  return false;
          +
          53  }
          +
          54  }
          +
          55  k = config["k"];
          +
          56  int n_new = config["n"];
          +
          57  // need to reset the ring buffer if size changes
          +
          58  if (n != n_new) {
          +
          59  buf.assign(n, 0);
          +
          60  ptr = 0;
          +
          61  initialized = false;
          +
          62  n = n_new;
          +
          63  }
          +
          64  return true;
          +
          65 }
          +
          +
          + +
          MovingAverage(int n, float k=1., String config_path="")
          +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          +
          virtual void set_input(float input, uint8_t inputChannel=0) override
          +
          virtual String get_config_schema() override
          +
          virtual bool set_configuration(const JsonObject &config) override
          + +
          virtual void get_configuration(JsonObject &doc) override
          + + + + diff --git a/docs/generated/docs/moving__average_8h.html b/docs/generated/docs/moving__average_8h.html new file mode 100644 index 000000000..3b7afcd4d --- /dev/null +++ b/docs/generated/docs/moving__average_8h.html @@ -0,0 +1,148 @@ + + + + + + + +SensESP: src/transforms/moving_average.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          moving_average.h File Reference
          +
          +
          +
          #include <vector>
          +#include "transform.h"
          +
          +Include dependency graph for moving_average.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  MovingAverage
           
          +
          +
          + + + + diff --git a/docs/moving__average_8h__dep__incl.map b/docs/generated/docs/moving__average_8h__dep__incl.map similarity index 100% rename from docs/moving__average_8h__dep__incl.map rename to docs/generated/docs/moving__average_8h__dep__incl.map diff --git a/docs/generated/docs/moving__average_8h__dep__incl.md5 b/docs/generated/docs/moving__average_8h__dep__incl.md5 new file mode 100644 index 000000000..6e7fa4d73 --- /dev/null +++ b/docs/generated/docs/moving__average_8h__dep__incl.md5 @@ -0,0 +1 @@ +1e09264ada382f656e19c8e241de345f \ No newline at end of file diff --git a/docs/generated/docs/moving__average_8h__dep__incl.png b/docs/generated/docs/moving__average_8h__dep__incl.png new file mode 100644 index 000000000..4031f872f Binary files /dev/null and b/docs/generated/docs/moving__average_8h__dep__incl.png differ diff --git a/docs/generated/docs/moving__average_8h__incl.map b/docs/generated/docs/moving__average_8h__incl.map new file mode 100644 index 000000000..b8ab9691f --- /dev/null +++ b/docs/generated/docs/moving__average_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/moving__average_8h__incl.md5 b/docs/generated/docs/moving__average_8h__incl.md5 new file mode 100644 index 000000000..edca6d785 --- /dev/null +++ b/docs/generated/docs/moving__average_8h__incl.md5 @@ -0,0 +1 @@ +aab2ca74b7b51754222595c5519e2386 \ No newline at end of file diff --git a/docs/generated/docs/moving__average_8h__incl.png b/docs/generated/docs/moving__average_8h__incl.png new file mode 100644 index 000000000..8550211df Binary files /dev/null and b/docs/generated/docs/moving__average_8h__incl.png differ diff --git a/docs/generated/docs/moving__average_8h_source.html b/docs/generated/docs/moving__average_8h_source.html new file mode 100644 index 000000000..74494d47e --- /dev/null +++ b/docs/generated/docs/moving__average_8h_source.html @@ -0,0 +1,133 @@ + + + + + + + +SensESP: src/transforms/moving_average.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          moving_average.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _moving_average_H_
          +
          2 #define _moving_average_H_
          +
          3 
          +
          4 #include <vector>
          +
          5 
          +
          6 #include "transform.h"
          +
          7 
          +
          17 // y = k * 1/n * \sum_k=1^n(x_k)
          + +
          19  public:
          +
          29  MovingAverage(int n, float k = 1., String config_path = "");
          +
          30  virtual void set_input(float input, uint8_t inputChannel = 0) override;
          +
          31  virtual void get_configuration(JsonObject& doc) override;
          +
          32  virtual bool set_configuration(const JsonObject& config) override;
          +
          33  virtual String get_config_schema() override;
          +
          34 
          +
          35  private:
          +
          36  std::vector<float> buf;
          +
          37  int ptr = 0;
          +
          38  int n;
          +
          39  float k;
          +
          40  bool initialized;
          +
          41 };
          +
          42 
          +
          43 #endif
          +
          +
          + +
          MovingAverage(int n, float k=1., String config_path="")
          + +
          virtual void set_input(float input, uint8_t inputChannel=0) override
          +
          virtual String get_config_schema() override
          +
          virtual bool set_configuration(const JsonObject &config) override
          + +
          virtual void get_configuration(JsonObject &doc) override
          + + + + diff --git a/docs/nav_f.png b/docs/generated/docs/nav_f.png similarity index 100% rename from docs/nav_f.png rename to docs/generated/docs/nav_f.png diff --git a/docs/nav_g.png b/docs/generated/docs/nav_g.png similarity index 100% rename from docs/nav_g.png rename to docs/generated/docs/nav_g.png diff --git a/docs/nav_h.png b/docs/generated/docs/nav_h.png similarity index 100% rename from docs/nav_h.png rename to docs/generated/docs/nav_h.png diff --git a/docs/navtree.css b/docs/generated/docs/navtree.css similarity index 100% rename from docs/navtree.css rename to docs/generated/docs/navtree.css diff --git a/docs/navtree.js b/docs/generated/docs/navtree.js similarity index 87% rename from docs/navtree.js rename to docs/generated/docs/navtree.js index 7ce293523..1e272d31d 100644 --- a/docs/navtree.js +++ b/docs/generated/docs/navtree.js @@ -1,25 +1,26 @@ /* - @licstart The following is the entire license notice for the - JavaScript code in this file. + @licstart The following is the entire license notice for the JavaScript code in this file. - Copyright (C) 1997-2017 by Dimitri van Heesch + The MIT License (MIT) - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. + Copyright (C) 1997-2020 by Dimitri van Heesch - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. - @licend The above is the entire license notice - for the JavaScript code in this file + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file */ var navTreeSubIndices = new Array(); var arrowDown = '▼'; @@ -70,7 +71,6 @@ function localStorageSupported() } } - function storeLink(link) { if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { @@ -102,14 +102,6 @@ function getScript(scriptName,func,show) script.type = 'text/javascript'; script.onload = func; script.src = scriptName+'.js'; - if ($.browser.msie && $.browser.version<=8) { - // script.onload does not work with older versions of IE - script.onreadystatechange = function() { - if (script.readyState=='complete' || script.readyState=='loaded') { - func(); if (show) showRoot(); - } - } - } head.appendChild(script); } @@ -153,6 +145,7 @@ function gotoAnchor(anchor,aname,updateLocation) var pos, docContent = $('#doc-content'); var ancParent = $(anchor.parent()); if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || ancParent.hasClass('fieldname') || ancParent.hasClass('fieldtype') || ancParent.is(':header')) @@ -265,7 +258,7 @@ function showRoot() (function (){ // retry until we can scroll to the selected item try { var navtree=$('#nav-tree'); - navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); } catch (err) { setTimeout(arguments.callee, 0); } @@ -284,12 +277,8 @@ function expandNode(o, node, imm, showRoot) } else { if (!node.childrenVisited) { getNode(o, node); - } if (imm || ($.browser.msie && $.browser.version>8)) { - // somehow slideDown jumps to the start of tree for IE9 :-( - $(node.getChildrenUL()).show(); - } else { - $(node.getChildrenUL()).slideDown("fast"); } + $(node.getChildrenUL()).slideDown("fast"); node.plus_img.innerHTML = arrowDown; node.expanded = true; } @@ -319,7 +308,6 @@ function highlightAnchor() } else { glowEffect(anchor.next(),1000); // normal member } - gotoAnchor(anchor,aname,false); } function selectAndHighlight(hash,n) @@ -481,6 +469,18 @@ function toggleSyncButton(relpath) } } +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + function initNavTree(toroot,relpath) { var o = new Object(); @@ -511,10 +511,16 @@ function initNavTree(toroot,relpath) navSync.click(function(){ toggleSyncButton(relpath); }); } - $(window).load(function(){ + if (loadTriggered) { // load before ready navTo(o,toroot,hashUrl(),relpath); showRoot(); - }); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } $(window).bind('hashchange', function(){ if (window.location.hash && window.location.hash.length>1){ diff --git a/docs/generated/docs/navtreedata.js b/docs/generated/docs/navtreedata.js new file mode 100644 index 000000000..181769409 --- /dev/null +++ b/docs/generated/docs/navtreedata.js @@ -0,0 +1,63 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var NAVTREE = +[ + [ "SensESP", "index.html", [ + [ "Classes", "annotated.html", [ + [ "Class List", "annotated.html", "annotated_dup" ], + [ "Class Index", "classes.html", null ], + [ "Class Hierarchy", "hierarchy.html", "hierarchy" ], + [ "Class Members", "functions.html", [ + [ "All", "functions.html", "functions_dup" ], + [ "Functions", "functions_func.html", "functions_func" ], + [ "Variables", "functions_vars.html", null ], + [ "Related Functions", "functions_rela.html", null ] + ] ] + ] ], + [ "Files", "files.html", [ + [ "File List", "files.html", "files_dup" ], + [ "File Members", "globals.html", [ + [ "All", "globals.html", null ], + [ "Functions", "globals_func.html", null ], + [ "Variables", "globals_vars.html", null ], + [ "Typedefs", "globals_type.html", null ], + [ "Enumerations", "globals_enum.html", null ], + [ "Enumerator", "globals_eval.html", null ], + [ "Macros", "globals_defs.html", null ] + ] ] + ] ] + ] ] +]; + +var NAVTREEINDEX = +[ +"ads1x15_8cpp.html", +"class_led_blinker.html#a9c0b4f9aaacc14ab555df6abb43e8ae5", +"configurable_8cpp.html#a19ac563e52fea3af6b643155f9d258b6", +"ota_8cpp.html#afe226f1d9a9fde6f6a37a1bf42d76f03" +]; + +var SYNCONMSG = 'click to disable panel synchronisation'; +var SYNCOFFMSG = 'click to enable panel synchronisation'; \ No newline at end of file diff --git a/docs/generated/docs/navtreeindex0.js b/docs/generated/docs/navtreeindex0.js new file mode 100644 index 000000000..b9f180d42 --- /dev/null +++ b/docs/generated/docs/navtreeindex0.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX0 = +{ +"ads1x15_8cpp.html":[1,0,0,1,0], +"ads1x15_8cpp_source.html":[1,0,0,1,0], +"ads1x15_8h.html":[1,0,0,1,1], +"ads1x15_8h.html#a56503424baf16a9e1fe8bca2f21e26d2":[1,0,0,1,1,3], +"ads1x15_8h.html#a6f6b131100a4dd4ca22e4152b2180db8":[1,0,0,1,1,2], +"ads1x15_8h.html#ac815741ef15e8fd16c37e7ceebe61b04":[1,0,0,1,1,4], +"ads1x15_8h.html#ae1571805b29318a59c364332d228f319":[1,0,0,1,1,6], +"ads1x15_8h.html#aef84aad5457f448a1e9c488503ff60f3":[1,0,0,1,1,7], +"ads1x15_8h.html#aff5c694cee53802680653a7a64ea1910":[1,0,0,1,1,5], +"ads1x15_8h_source.html":[1,0,0,1,1], +"ads1x15__voltage_8cpp.html":[1,0,0,4,0], +"ads1x15__voltage_8cpp_source.html":[1,0,0,4,0], +"ads1x15__voltage_8h.html":[1,0,0,4,1], +"ads1x15__voltage_8h.html#a287de91a50d45b83ad2b999a32f96846":[1,0,0,4,1,1], +"ads1x15__voltage_8h.html#a287de91a50d45b83ad2b999a32f96846a1efc5b453be0b8efe9d2827c22c94669":[1,0,0,4,1,1,0], +"ads1x15__voltage_8h.html#a287de91a50d45b83ad2b999a32f96846a8d7ed005368ca618b3f7022dc1cb5c32":[1,0,0,4,1,1,1], +"ads1x15__voltage_8h_source.html":[1,0,0,4,1], +"analog__input_8cpp.html":[1,0,0,1,2], +"analog__input_8cpp_source.html":[1,0,0,1,2], +"analog__input_8h.html":[1,0,0,1,3], +"analog__input_8h_source.html":[1,0,0,1,3], +"analog__reader_8h.html":[1,0,0,1,4], +"analog__reader_8h_source.html":[1,0,0,1,4], +"analogvoltage_8cpp.html":[1,0,0,4,2], +"analogvoltage_8cpp_source.html":[1,0,0,4,2], +"analogvoltage_8h.html":[1,0,0,4,3], +"analogvoltage_8h.html#acd21751cadfe75b41534fa2d356d29a3":[1,0,0,4,3,1], +"analogvoltage_8h_source.html":[1,0,0,4,3], +"angle__correction_8cpp.html":[1,0,0,4,4], +"angle__correction_8cpp.html#ae71449b1cc6e6250b91f539153a7a0d3":[1,0,0,4,4,0], +"angle__correction_8cpp_source.html":[1,0,0,4,4], +"angle__correction_8h.html":[1,0,0,4,5], +"angle__correction_8h_source.html":[1,0,0,4,5], +"annotated.html":[0,0], +"bme280_8cpp.html":[1,0,0,1,5], +"bme280_8cpp_source.html":[1,0,0,1,5], +"bme280_8h.html":[1,0,0,1,6], +"bme280_8h.html#acce372cdae7772cfadaa815858c0956d":[1,0,0,1,6,3], +"bme280_8h.html#acce372cdae7772cfadaa815858c0956da8e7f8389b914e827058d694b31468b3a":[1,0,0,1,6,3,1], +"bme280_8h.html#acce372cdae7772cfadaa815858c0956da9922a43d37bee3212593f77ce4ec82f3":[1,0,0,1,6,3,0], +"bme280_8h.html#acce372cdae7772cfadaa815858c0956daf78a0094726cca324b69464b475ed069":[1,0,0,1,6,3,2], +"bme280_8h.html#af37089b3d8f44826d66821c4a89498bc":[1,0,0,1,6,2], +"bme280_8h_source.html":[1,0,0,1,6], +"bmp280_8cpp.html":[1,0,0,1,7], +"bmp280_8cpp_source.html":[1,0,0,1,7], +"bmp280_8h.html":[1,0,0,1,8], +"bmp280_8h.html#ab9dfceb0d5985ce5ae28521c2ddb5bf4":[1,0,0,1,8,3], +"bmp280_8h.html#ab9dfceb0d5985ce5ae28521c2ddb5bf4a8e7f8389b914e827058d694b31468b3a":[1,0,0,1,8,3,1], +"bmp280_8h.html#ab9dfceb0d5985ce5ae28521c2ddb5bf4a9922a43d37bee3212593f77ce4ec82f3":[1,0,0,1,8,3,0], +"bmp280_8h.html#adc2b0c1f8c770323d86e72b706958989":[1,0,0,1,8,2], +"bmp280_8h_source.html":[1,0,0,1,8], +"change__filter_8cpp.html":[1,0,0,4,6], +"change__filter_8cpp_source.html":[1,0,0,4,6], +"change__filter_8h.html":[1,0,0,4,7], +"change__filter_8h_source.html":[1,0,0,4,7], +"class_a_d_s1x15.html":[0,0,0], +"class_a_d_s1x15.html#a222eece7162f1774e5970fc9f14dd6a2":[0,0,0,0], +"class_a_d_s1x15.html#a86230f10cfa6fcccbb189d91fbcbb6d8":[0,0,0,1], +"class_a_d_s1x15.html#ace2a95dc18d4c043c4c4122a5508c576":[0,0,0,2], +"class_a_d_s1x15_value.html":[0,0,1], +"class_a_d_s1x15_value.html#ab6f5ad81976b4a0f2ac8e43432b9a247":[0,0,1,0], +"class_a_d_s1x15_value.html#ae0ee6cebb76815406ef8d9ee816e33ec":[0,0,1,1], +"class_a_d_s1x15_voltage.html":[0,0,2], +"class_a_d_s1x15_voltage.html#a240ceea4ec8b5c29d26a3d856ae73690":[0,0,2,3], +"class_a_d_s1x15_voltage.html#a48d2d14becbbe8147a166cf9ac24adbb":[0,0,2,2], +"class_a_d_s1x15_voltage.html#a923d54c2370d71f3eff5fa82214e3590":[0,0,2,0], +"class_a_d_s1x15_voltage.html#aee56be05b6373547f7b9a228c8234227":[0,0,2,1], +"class_analog_input.html":[0,0,3], +"class_analog_input.html#a34942eae263f68e8f44fa3f405d057fb":[0,0,3,1], +"class_analog_input.html#a63db2d6f83b69573a4739466a6e429e6":[0,0,3,0], +"class_analog_voltage.html":[0,0,4], +"class_analog_voltage.html#a2b3422b5f6712829e5c093c80f986183":[0,0,4,2], +"class_analog_voltage.html#a37e88929680d2cf431f2da3ee38c140f":[0,0,4,3], +"class_analog_voltage.html#a86c85f6bae3f7e478a48475a7d69b5c8":[0,0,4,4], +"class_analog_voltage.html#aa702f3b91648bbffa9cd86b5c0200a25":[0,0,4,0], +"class_analog_voltage.html#ae9dcab3d6891a5e53c99746b476c6f72":[0,0,4,1], +"class_angle_correction.html":[0,0,5], +"class_angle_correction.html#a53b1594b6161feff6f218a2aa7a05ad3":[0,0,5,3], +"class_angle_correction.html#a6a023df6e49e8ada977738dc8cbe150c":[0,0,5,0], +"class_angle_correction.html#aaef0a4f1bd578470a12d046cd745df3b":[0,0,5,2], +"class_angle_correction.html#ad31bbb6a8fd400879eceba5f0b2880fe":[0,0,5,1], +"class_angle_correction.html#afd9a559ce1218e9b78137ff1a9c6d77d":[0,0,5,4], +"class_b_m_e280.html":[0,0,7], +"class_b_m_e280.html#a7eb425e9c7b1eebc6bad4288de80dcab":[0,0,7,0], +"class_b_m_e280.html#ac977ead8ac47915501544b240fee22fc":[0,0,7,1], +"class_b_m_e280_value.html":[0,0,8], +"class_b_m_e280_value.html#a333a82519078ad9ec9b3d5828b42bc2b":[0,0,8,2], +"class_b_m_e280_value.html#a59605de196c5141aac67b51522902183":[0,0,8,0], +"class_b_m_e280_value.html#afac9027689bc79c15e329bebec201c1b":[0,0,8,1], +"class_b_m_p280.html":[0,0,9], +"class_b_m_p280.html#a70a4ccddabb11d3da232a4b0339d4851":[0,0,9,0], +"class_b_m_p280.html#ac3e52141522ed5f9d96f184c55e31a99":[0,0,9,1], +"class_b_m_p280_value.html":[0,0,10], +"class_b_m_p280_value.html#a29c3968e8ceb876e9e5731d1df863b63":[0,0,10,1], +"class_b_m_p280_value.html#a93dfd7d1bb90299ba31505749b482aae":[0,0,10,2], +"class_b_m_p280_value.html#a9862d2cc3be55366831f97613a805973":[0,0,10,0], +"class_base_analog_reader.html":[0,0,6], +"class_base_analog_reader.html#a47be844ead62b7e39e44b00587b756e7":[0,0,6,1], +"class_base_analog_reader.html#a4967330c789c7bce878ceeeb2108ea65":[0,0,6,0], +"class_change_filter.html":[0,0,11], +"class_change_filter.html#a0bbe692080d7ee9a41fcd77a3f581ca9":[0,0,11,3], +"class_change_filter.html#a3cac91e9ec0a56ae72ad4e0e27fef205":[0,0,11,6], +"class_change_filter.html#a48249b125e44834d6641484b49f3a877":[0,0,11,4], +"class_change_filter.html#a769403176db0e4a619811bbba603d597":[0,0,11,1], +"class_change_filter.html#a92d946de57540d88deb54364a8827f7d":[0,0,11,2], +"class_change_filter.html#a95afe5f733a86231157059b272b4295a":[0,0,11,5], +"class_change_filter.html#ae51076f79fdfc36e34b8383a0e13e700":[0,0,11,8], +"class_change_filter.html#ae7e753c0391e335c7b6cc4ec14bad7c9":[0,0,11,0], +"class_change_filter.html#af9585e67bbf9636617127ef86f4ada81":[0,0,11,7], +"class_configurable.html":[0,0,12], +"class_configurable.html#a20b0c34bc7386994b6f24863c58a39e7":[0,0,12,2], +"class_configurable.html#a657419f13060caa20c45a41935b9d53a":[0,0,12,4], +"class_configurable.html#a6e0281fe25cfbdf024bdb05147ffb52b":[0,0,12,5], +"class_configurable.html#a73131c4e7dd8134f23a93de861e1c0e4":[0,0,12,1], +"class_configurable.html#a8972a439fb9b734ff68d27c699640f78":[0,0,12,0], +"class_configurable.html#aaa54fa6156d9c7f5848d670bd9b18aa9":[0,0,12,6], +"class_configurable.html#ac2ba4044c81acc2fc6bf95cce411f6a4":[0,0,12,3], +"class_curve_interpolator.html":[0,0,13], +"class_curve_interpolator.html#a09bdf144307f1264c36d5afaea5c96a3":[0,0,13,1], +"class_curve_interpolator.html#a263eaf111e6b5f47e72c6e13d77dea99":[0,0,13,3], +"class_curve_interpolator.html#a6f9c593782d05c95ba92810b8f70f287":[0,0,13,6], +"class_curve_interpolator.html#a89d37139f9b601e8a1c74335811c2af2":[0,0,13,4], +"class_curve_interpolator.html#a938e1bdc8256ef255c27ffc65c8360b7":[0,0,13,2], +"class_curve_interpolator.html#ab375c3b1d191900f1c5561d87ad634cb":[0,0,13,7], +"class_curve_interpolator.html#acfda195c475a261d2e2a3af365fd6c19":[0,0,13,8], +"class_curve_interpolator.html#af2ce224bb3f29245ea8d90cee0c5bdb6":[0,0,13,9], +"class_curve_interpolator.html#afb1dbb8e85015e2909dff8495875f8f5":[0,0,13,5], +"class_curve_interpolator_1_1_sample.html":[0,0,13,0], +"class_curve_interpolator_1_1_sample.html#a1cf03a106b3a98056fdb448df6fb9c17":[0,0,13,0,3], +"class_curve_interpolator_1_1_sample.html#a43dd7cc1fd950a03a6674056194e935b":[0,0,13,0,4], +"class_curve_interpolator_1_1_sample.html#a5f69567a227e29b795b68e4310a9da40":[0,0,13,0,2], +"class_curve_interpolator_1_1_sample.html#a7ad23733bf31c9a8ccbe9689b55f6d67":[0,0,13,0,0], +"class_curve_interpolator_1_1_sample.html#aa2ed35560a823ced306ef02a50d95cac":[0,0,13,0,1], +"class_curve_interpolator_1_1_sample.html#ada14a8de02c7cc737db52aa3a54a330b":[0,0,13,0,5], +"class_dallas_temperature_sensors.html":[0,0,14], +"class_dallas_temperature_sensors.html#a020ae149bf4372f926d4414ac5c67f5a":[0,0,14,3], +"class_dallas_temperature_sensors.html#a1e1b9cd3dd2bde0d51ef657a490881eb":[0,0,14,2], +"class_dallas_temperature_sensors.html#a778aa28e0e329028f2811c5ed71cb11d":[0,0,14,0], +"class_dallas_temperature_sensors.html#abd79995496fd66d416e6d9cd1ff56342":[0,0,14,4], +"class_dallas_temperature_sensors.html#ae30b8206143d488a4d887b4294da6bb2":[0,0,14,1], +"class_debounce.html":[0,0,15], +"class_debounce.html#a4101506b2f5c17184e976f2fb43b1b1b":[0,0,15,1], +"class_debounce.html#a446259f6501c61e5188dda23f420dbfe":[0,0,15,3], +"class_debounce.html#a9d6da3eb69ba8fe8ef73a564cfad2e21":[0,0,15,2], +"class_debounce.html#ade9ea26c6050fc08d43e0758c2a572b2":[0,0,15,0], +"class_difference.html":[0,0,16], +"class_difference.html#a432ef87751c6bee8e5dadc610dfcb4ff":[0,0,16,4], +"class_difference.html#a57e134a00cd6688d147f93c662520040":[0,0,16,3], +"class_difference.html#ab37fbe4fe6592f7591a124c1b90f8f48":[0,0,16,0], +"class_difference.html#ac5b6559e3820f2f58bed5d120a440a55":[0,0,16,1], +"class_difference.html#ae36f623e39d0dceb670ae023e3ce1f52":[0,0,16,2], +"class_digital_input.html":[0,0,17], +"class_digital_input.html#a92b46ff35c6b0fcf13644727c0a6b61f":[0,0,17,2], +"class_digital_input.html#aa4e30fc0836ce2d0934b9eb5d507f116":[0,0,17,1], +"class_digital_input.html#ac87da1c4d7b53427d71d71b34d25c6eb":[0,0,17,0], +"class_digital_input_counter.html":[0,0,18], +"class_digital_input_counter.html#a9848278592225d90ff71b99ce940771e":[0,0,18,1], +"class_digital_input_counter.html#adde82c1aeae1f8f452b3bbb31a3114a5":[0,0,18,0], +"class_digital_input_value.html":[0,0,19], +"class_digital_input_value.html#a504c6c9ad6578156df7eb524f9635912":[0,0,19,1], +"class_digital_input_value.html#ad7195dc579200d7e8b04fb00fff3ea35":[0,0,19,0], +"class_digital_output.html":[0,0,20], +"class_digital_output.html#a49b9011baf6e4280e6a4f8be0177bc1b":[0,0,20,0], +"class_digital_output.html#a565a9c57af6dbc61d4895c4b35fe3a6a":[0,0,20,1], +"class_enable.html":[0,0,21], +"class_enable.html#a52c13a29b7cdd574f65e8dffa5c24470":[0,0,21,2], +"class_enable.html#a5e6385aea4a61b890368ce0b411f690c":[0,0,21,4], +"class_enable.html#a62d0a37863086502e168bfa8ab94ebc0":[0,0,21,0], +"class_enable.html#a62ea021bf8d986150be346977a8eede3":[0,0,21,1], +"class_enable.html#affdeaa165e0c553dd3490487a65432c8":[0,0,21,3], +"class_free_mem.html":[0,0,23], +"class_free_mem.html#a114359cfbb1cffce40e545bf00889757":[0,0,23,2], +"class_free_mem.html#aa3487ef2dff96a33778881da391b2129":[0,0,23,1], +"class_free_mem.html#aa8b5f3ef10c4148f75d6dc531a3d46c3":[0,0,23,0], +"class_frequency.html":[0,0,24], +"class_frequency.html#a0d6846952b3295809421ac18633e397e":[0,0,24,1], +"class_frequency.html#a35901f2d996c2e598e1ca0f95ea0e62b":[0,0,24,3], +"class_frequency.html#a87d16c67ce064b9b0f671747808c3963":[0,0,24,4], +"class_frequency.html#a93e3f28917f7faa7411b95745171f6af":[0,0,24,2], +"class_frequency.html#a99df388f446a8aa46f465fe464023f55":[0,0,24,5], +"class_frequency.html#abbaff61b74433bb8a990685be24c3c8b":[0,0,24,0], +"class_g_p_g_g_a_sentence_parser.html":[0,0,25], +"class_g_p_g_g_a_sentence_parser.html#a1a3a77042194bd6ef59b7960c0f35fd1":[0,0,25,0], +"class_g_p_g_g_a_sentence_parser.html#a6bce986c2fb84af7c54477cd7d43f1b1":[0,0,25,1], +"class_g_p_g_g_a_sentence_parser.html#ac70d60b587cd0e48479c397bb30983a3":[0,0,25,2], +"class_g_p_g_l_l_sentence_parser.html":[0,0,26], +"class_g_p_g_l_l_sentence_parser.html#ab1583e721b24183fcc59f2b2826b8c52":[0,0,26,1], +"class_g_p_g_l_l_sentence_parser.html#acbee347184ae22343a9af2515ae57c98":[0,0,26,2], +"class_g_p_g_l_l_sentence_parser.html#af4335548b0e919cb23ec9149bc2e8012":[0,0,26,0], +"class_g_p_r_m_c_sentence_parser.html":[0,0,27], +"class_g_p_r_m_c_sentence_parser.html#a67589bcbddabbe32aac949c3ca9f4a75":[0,0,27,1], +"class_g_p_r_m_c_sentence_parser.html#a75afdae2ce4e8a27676d86ef2f5cbf9f":[0,0,27,2], +"class_g_p_r_m_c_sentence_parser.html#a8ea0212728334cc4b6fa4aa650fa2e58":[0,0,27,0], +"class_g_p_s_input.html":[0,0,28], +"class_g_p_s_input.html#ac434000c2641c7ef06badb2d51f79520":[0,0,28,0], +"class_g_p_s_input.html#ae31d915c7701418b950dcbba4f87f72a":[0,0,28,2], +"class_g_p_s_input.html#af94497b920d346ed5ccad18bd4dbfd9c":[0,0,28,1], +"class_h_t_t_p_server.html":[0,0,29], +"class_h_t_t_p_server.html#a3b7406f8ac0cb9b90e86513acee23542":[0,0,29,3], +"class_h_t_t_p_server.html#a6f5600d8187ec82cb83e84252a387c38":[0,0,29,2], +"class_h_t_t_p_server.html#a8b03465f1ad5631d0e20cc67e5419562":[0,0,29,5], +"class_h_t_t_p_server.html#aafce79dc976b69b318f8fe69f45542be":[0,0,29,7], +"class_h_t_t_p_server.html#ab088a2530794acb9db8a8e1910729c35":[0,0,29,4], +"class_h_t_t_p_server.html#ac854fa80c31eba36ad3f2dd5f02d4a14":[0,0,29,6], +"class_h_t_t_p_server.html#adacba9a090d5b0465da86dd6c82953a9":[0,0,29,0], +"class_h_t_t_p_server.html#af09066b05417f9a9ce9f1cd8e5ad9e18":[0,0,29,1], +"class_hysteresis.html":[0,0,30], +"class_hysteresis.html#aa3f2f59d852e7ab8d8ee0b9cb799a04d":[0,0,30,0], +"class_i_n_a219.html":[0,0,31], +"class_i_n_a219.html#a3bdfe18ddb1ca53b53f48ac8672a94d0":[0,0,31,1], +"class_i_n_a219.html#adc0300a6f6fa99ee85786a354614e343":[0,0,31,0], +"class_i_n_a219_value.html":[0,0,32], +"class_i_n_a219_value.html#a25ba9003cc31670bbcf36d5b8cd0a3f4":[0,0,32,1], +"class_i_n_a219_value.html#a929d4abc76063b697a4836da30d1d5c6":[0,0,32,0], +"class_i_n_a219_value.html#afbc6bf7ce37f6c243d0f944bfa9cfef3":[0,0,32,2], +"class_i_p_addr_dev.html":[0,0,36], +"class_i_p_addr_dev.html#aad770ae7db264bfc4bc33d3d1dca71fb":[0,0,36,2], +"class_i_p_addr_dev.html#ae5d89601ff69fb635850bbaacdd61664":[0,0,36,0], +"class_i_p_addr_dev.html#afd8dec59375d39cf785819f8ea3685a1":[0,0,36,1], +"class_integer_sensor.html":[0,0,33], +"class_integer_sensor.html#a2214ecc518fbbb314be8ca987aa0e730":[0,0,33,0], +"class_integer_threshold.html":[0,0,34], +"class_integer_threshold.html#a23437fadcb2212cadb7d25724d2fd90c":[0,0,34,1], +"class_integer_threshold.html#a63bb646505b2c51b0d57b0799d062d86":[0,0,34,0], +"class_integer_threshold.html#a87724e11f2fade5b245f4099a9f0323c":[0,0,34,2], +"class_integer_threshold.html#a92097f9bf12f55f4ccea4c44e63b1ff2":[0,0,34,3], +"class_integrator.html":[0,0,35], +"class_integrator.html#a15cc585266b8a2308fa3cc9467693384":[0,0,35,3], +"class_integrator.html#a513afaf30460fee68abd295780527d05":[0,0,35,2], +"class_integrator.html#a787de1dd45b1ced5607e6209f0e01dd0":[0,0,35,0], +"class_integrator.html#a7fb38d2d19aa3e918dbee34b9096f7a6":[0,0,35,5], +"class_integrator.html#aa53205d3211635dad0a035adf5d511a6":[0,0,35,4], +"class_integrator.html#ad52503a30ef9abf171209988d256ec22":[0,0,35,1], +"class_lambda_transform.html":[0,0,37], +"class_lambda_transform.html#a508f3eda704b68427d60ed4c00fc8d5d":[0,0,37,9], +"class_lambda_transform.html#a51a052896ce2249e89e3f4309d91dba6":[0,0,37,3], +"class_lambda_transform.html#a5e427944d82efb35a67d4c2328a5cf0f":[0,0,37,5], +"class_lambda_transform.html#a842321e8581af77178e2cd9016f27c28":[0,0,37,11], +"class_lambda_transform.html#a89c2e0c71f2b07f38e457c9c4b02787c":[0,0,37,6], +"class_lambda_transform.html#a939ffd37ee47ac29939718a7bd7454c8":[0,0,37,1], +"class_lambda_transform.html#a94d320a35eee5177c8d85b4c0c21948a":[0,0,37,10], +"class_lambda_transform.html#aaac239466264ed93d07c40d407f6feec":[0,0,37,7], +"class_lambda_transform.html#ac3925c430e7e61d7444ed8964c757129":[0,0,37,2], +"class_lambda_transform.html#adc6dbf53cef06623010cae1cbd1cdbd0":[0,0,37,8], +"class_lambda_transform.html#aefd5de0dfb1b4275e8fc558d7fb684b3":[0,0,37,4], +"class_lambda_transform.html#af6d167a7ea4ba47ae7cb4bd3432e253d":[0,0,37,0], +"class_led_blinker.html":[0,0,38], +"class_led_blinker.html#a0cdd9d7e8cc453edd234ce2785ce28ea":[0,0,38,2], +"class_led_blinker.html#a394a529a52a7ee1e0321498de017f788":[0,0,38,5], +"class_led_blinker.html#a89ec1ec8b1fa698c58f95227a8fc9d3c":[0,0,38,0] +}; diff --git a/docs/generated/docs/navtreeindex1.js b/docs/generated/docs/navtreeindex1.js new file mode 100644 index 000000000..22500bdd0 --- /dev/null +++ b/docs/generated/docs/navtreeindex1.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX1 = +{ +"class_led_blinker.html#a9c0b4f9aaacc14ab555df6abb43e8ae5":[0,0,38,6], +"class_led_blinker.html#aa9870e4cb1a35a175edcd710142b8595":[0,0,38,4], +"class_led_blinker.html#ab0f765b76f30406a7b53d4360c897d64":[0,0,38,3], +"class_led_blinker.html#af00270a463b74c855dfc95d98c7bfd7e":[0,0,38,1], +"class_linear.html":[0,0,39], +"class_linear.html#ad9477f54820b5a234339d342836e9869":[0,0,39,0], +"class_m_a_x31856_thermocouple.html":[0,0,40], +"class_m_a_x31856_thermocouple.html#a2e8fb0d3c58fe34f9d49554b418596a8":[0,0,40,0], +"class_m_a_x31856_thermocouple.html#a37980d9b2f2682da48c16cc60b3b6565":[0,0,40,1], +"class_m_a_x31856_thermocouple.html#ab5bf3c1660f17374bcb02f65b6cd6e94":[0,0,40,2], +"class_median.html":[0,0,41], +"class_median.html#a14ee18d6419bc212b33fd1d96d6cca2b":[0,0,41,0], +"class_median.html#a658c5210822133ab9f7b8eab173e0edb":[0,0,41,2], +"class_median.html#aa8515edf3b34ee8439bd77dcfc69a93f":[0,0,41,1], +"class_median.html#ac06073c22b922aceee9f01ddaccfb54a":[0,0,41,3], +"class_median.html#ad20ab4e65d66330c5fa1e1cf0f16036c":[0,0,41,4], +"class_moving_average.html":[0,0,42], +"class_moving_average.html#a22a08de98351ed805b49beecb234ab0b":[0,0,42,4], +"class_moving_average.html#a803ba927db89306b62ebff4375e25ada":[0,0,42,2], +"class_moving_average.html#a9f02a3c253c6456e4d5c063ea5f6d364":[0,0,42,3], +"class_moving_average.html#ad6f06b147a017e528e3d8b991cec2763":[0,0,42,1], +"class_moving_average.html#adda127d69bc5441a3f4ca98d51c87f4b":[0,0,42,0], +"class_n_m_e_a_parser.html":[0,0,45], +"class_n_m_e_a_parser.html#a438b3fd8f8587b55a3785656651f73a6":[0,0,45,1], +"class_n_m_e_a_parser.html#a8687b75207c6df0c049721fe5a586913":[0,0,45,2], +"class_n_m_e_a_parser.html#acf7b68ddc8fc466324abede2dd592ad0":[0,0,45,0], +"class_networking.html":[0,0,43], +"class_networking.html#a082fa99914f8f6f277b640667877c85e":[0,0,43,9], +"class_networking.html#a207f306c10b8f65ca0904cc26a9ef15c":[0,0,43,5], +"class_networking.html#a253025ed2a3c36eb998e7b900155359e":[0,0,43,2], +"class_networking.html#a4071208242243ae91f48884294a18429":[0,0,43,3], +"class_networking.html#a59d475a2f12b88ef8334274a9a0b1cee":[0,0,43,6], +"class_networking.html#a7a3cac2e878aa2c513451f235c70aff7":[0,0,43,4], +"class_networking.html#a91507b52fbc31dd34d143c8a5634027e":[0,0,43,8], +"class_networking.html#a94815dd34af734e9fc3839cbe6279355":[0,0,43,7], +"class_networking.html#abffdf8c391f0e371da4ff59a05b1c085":[0,0,43,0], +"class_networking.html#ae4b12924970227730df3377144301a7c":[0,0,43,1], +"class_numeric_sensor.html":[0,0,46], +"class_numeric_sensor.html#a456c5509bf2af2007bd9ee1703e8315f":[0,0,46,0], +"class_numeric_threshold.html":[0,0,47], +"class_numeric_threshold.html#a230334ae33c4f4803edea06bcf9ea2f6":[0,0,47,1], +"class_numeric_threshold.html#a3b5472c133ce858cf575716bb682cabe":[0,0,47,2], +"class_numeric_threshold.html#a60e21bb34053c5b97d14d654f083b17c":[0,0,47,0], +"class_numeric_threshold.html#a714de271f5489664146ac9090a0dc14b":[0,0,47,3], +"class_observable.html":[0,0,48], +"class_observable.html#a099bf851e05bb8c1a25e83f2a1389e58":[0,0,48,1], +"class_observable.html#af72ed9c9cf7157a33caad4b930232e69":[0,0,48,0], +"class_observable_value.html":[0,0,49], +"class_observable_value.html#a51cf25d4951d3214021da0c25985838d":[0,0,49,3], +"class_observable_value.html#a900b99ef37a8d31e84c48a97b8eff10d":[0,0,49,2], +"class_observable_value.html#a92bc2f2646592dc209717bb546d86a2c":[0,0,49,0], +"class_observable_value.html#adaf97ca440787ba883915603056f002b":[0,0,49,1], +"class_one_wire_temperature.html":[0,0,50], +"class_one_wire_temperature.html#a00867083ea90878580cc2cc7d3502bda":[0,0,50,3], +"class_one_wire_temperature.html#a1058bb2484427bbf21f7f9e4ea9751f9":[0,0,50,0], +"class_one_wire_temperature.html#a4331b2b91d6c7d000454e741cdce9d0a":[0,0,50,2], +"class_one_wire_temperature.html#a83bce20a52e396dbd97a43a6e72b2824":[0,0,50,4], +"class_one_wire_temperature.html#a86817f083dfb5e9373b48d8fd1f8d165":[0,0,50,1], +"class_orientation9_d_o_f.html":[0,0,51], +"class_orientation9_d_o_f.html#a4631c8cdba0a0e3cb174ce508c30950f":[0,0,51,1], +"class_orientation9_d_o_f.html#ad27863d8df7610c8e6c74c874a91fbba":[0,0,51,0], +"class_p_s_t_i030_sentence_parser.html":[0,0,54], +"class_p_s_t_i030_sentence_parser.html#aa368abaa7d559a9a0893d3846a01fdb7":[0,0,54,0], +"class_p_s_t_i030_sentence_parser.html#adf5b386bffd76b1055d70aa59615d493":[0,0,54,2], +"class_p_s_t_i030_sentence_parser.html#aee500dadf0a5ff089d8281c642cdb9bc":[0,0,54,1], +"class_p_s_t_i032_sentence_parser.html":[0,0,55], +"class_p_s_t_i032_sentence_parser.html#ac25a7c9f31987ce7a01ce499f045a6a9":[0,0,55,1], +"class_p_s_t_i032_sentence_parser.html#acbe297f07ea6729d870ec8222535b1ce":[0,0,55,2], +"class_p_s_t_i032_sentence_parser.html#af44c303ec78c3a24a18eacb265cee013":[0,0,55,0], +"class_p_s_t_i_sentence_parser.html":[0,0,56], +"class_p_s_t_i_sentence_parser.html#a308af730f992717a0d1e84416396ae38":[0,0,56,1], +"class_p_s_t_i_sentence_parser.html#a4bb2246e947c443d5bca3706e2853cd0":[0,0,56,0], +"class_p_s_t_i_sentence_parser.html#a94f6b75ee9ad9965c4a5cf27e44a12e5":[0,0,56,2], +"class_p_s_t_i_sentence_parser.html#add6764d7c0579101840b82a86f6bd2ef":[0,0,56,3], +"class_read9_d_o_f.html":[0,0,57], +"class_read9_d_o_f.html#a15c1bf2b7dc82f06a72d259f0d804977":[0,0,57,2], +"class_read9_d_o_f.html#a3b193507742276276121243b8c280c72":[0,0,57,1], +"class_read9_d_o_f.html#ae2faf1080765ed56709e63f4bfa58289":[0,0,57,0], +"class_s_h_t31.html":[0,0,63], +"class_s_h_t31.html#a01363a697cf87524b3afdd62bd9c103f":[0,0,63,0], +"class_s_h_t31.html#ada57336159f2495b9a3ab318818e16aa":[0,0,63,1], +"class_s_h_t31_value.html":[0,0,64], +"class_s_h_t31_value.html#a0104d033db3ee61af842bf4c320d0602":[0,0,64,1], +"class_s_h_t31_value.html#a2407a923743f358ee2a566de926fa69f":[0,0,64,0], +"class_s_h_t31_value.html#af5cb2bc533abf1fb620473d581dab56a":[0,0,64,2], +"class_s_k_delta.html":[0,0,65], +"class_s_k_delta.html#a3d4825fc72903feaebe635dc643d2b16":[0,0,65,0], +"class_s_k_delta.html#a74ab20a661a4f80a336b50fccc4bd9bc":[0,0,65,2], +"class_s_k_delta.html#ab1592b494b343964703102a4797d3bbc":[0,0,65,3], +"class_s_k_delta.html#acd3c98ae0fe75f92d5d9c1e6a216a8dd":[0,0,65,4], +"class_s_k_delta.html#afacfa3952be6179d0e96960575f393a8":[0,0,65,1], +"class_s_k_emitter.html":[0,0,66], +"class_s_k_emitter.html#a06dbe70e930074437b12b86ac4e2464c":[0,0,66,4], +"class_s_k_emitter.html#a670348fb1ef1bf3d5e1ba49660fc15d9":[0,0,66,3], +"class_s_k_emitter.html#ab25ae819460f8a07fee381cc06332f95":[0,0,66,1], +"class_s_k_emitter.html#ab619d4a66c7683bf06350809e8c2153f":[0,0,66,2], +"class_s_k_emitter.html#aeba0ccd27a8b6bad1e2ddbf2603a5d8d":[0,0,66,0], +"class_s_k_listener.html":[0,0,67], +"class_s_k_listener.html#a68a944ab34d3179f0bd0fab320d47a59":[0,0,67,3], +"class_s_k_listener.html#acd3c93850871a4ef30d01e3ed08c3fe1":[0,0,67,2], +"class_s_k_listener.html#ad0b2ccb89c8551552b293b337d1ecdf8":[0,0,67,1], +"class_s_k_listener.html#ad72197ab8a7a24d83152df74477527b1":[0,0,67,0], +"class_s_k_listener.html#aea949b68b41530f13cf565a0398880f5":[0,0,67,4], +"class_s_k_output.html":[0,0,68], +"class_s_k_output.html#a0f29018517bcb51943dae1dd7bbace0a":[0,0,68,5], +"class_s_k_output.html#a1cfe49843fc8745ffefa59d36df67bb4":[0,0,68,2], +"class_s_k_output.html#a1cfe49843fc8745ffefa59d36df67bb4":[0,0,68,3], +"class_s_k_output.html#a406e7e56220dd41bd567c56c0e6b9a4d":[0,0,68,7], +"class_s_k_output.html#a58191f013e06068ca13ca85365fd0957":[0,0,68,8], +"class_s_k_output.html#a638cad044b186372707c776fcd9a69bd":[0,0,68,4], +"class_s_k_output.html#a811a99c30626b6840000b0c152aa1f37":[0,0,68,1], +"class_s_k_output.html#a88f9638dd4779818b41a62738ba44876":[0,0,68,0], +"class_s_k_output.html#a9151c5f1c00b08a5b68dcb2ec7a2ed45":[0,0,68,6], +"class_s_k_output_time.html":[0,0,69], +"class_s_k_output_time.html#a41ad61c700a444916873e908612eca63":[0,0,69,4], +"class_s_k_output_time.html#a90ec92a794a311e97b0d89c2941de921":[0,0,69,3], +"class_s_k_output_time.html#aa283f508ef59103626c835cd37b9bfb3":[0,0,69,2], +"class_s_k_output_time.html#aaf792b14c69ced31c6a3c2bd0d1a32e4":[0,0,69,1], +"class_s_k_output_time.html#ab77e9bdfeb69fd37c6fc87ac247146e4":[0,0,69,0], +"class_s_k_value_listener.html":[0,0,70], +"class_s_k_value_listener.html#a1ececa80ce9841cc5cbef88797148484":[0,0,70,1], +"class_s_k_value_listener.html#ad8b01da288238c75b8f4e2f119e5e136":[0,0,70,0], +"class_sens_e_s_p_app.html":[0,0,58], +"class_sens_e_s_p_app.html#a0f7605a2c63a3ed250e1c742608956b2":[0,0,58,7], +"class_sens_e_s_p_app.html#a15f6e0569533b417e9724540d758c884":[0,0,58,6], +"class_sens_e_s_p_app.html#a1c94b1836273e4d6f132f5e2c29ba648":[0,0,58,9], +"class_sens_e_s_p_app.html#a3d70c22bfd1bf842f6daa83ab2f50f79":[0,0,58,3], +"class_sens_e_s_p_app.html#aa41795cde59d1bb57906dff6102ee7dc":[0,0,58,1], +"class_sens_e_s_p_app.html#aa6e3bc4bb1c696cc0bef02835ce0f7bf":[0,0,58,2], +"class_sens_e_s_p_app.html#ac068882b9e9f6092da0818c5e42b48b8":[0,0,58,4], +"class_sens_e_s_p_app.html#ad50404ad55ffff730011c74a2bac8334":[0,0,58,0], +"class_sens_e_s_p_app.html#adb5f6061831be202d2cc58ebdffa44d5":[0,0,58,8], +"class_sens_e_s_p_app.html#adee3f53bc75ae6d5d73a8707dd75600e":[0,0,58,5], +"class_sens_e_s_p_app_builder.html":[0,0,59], +"class_sens_e_s_p_app_builder.html#a154893dfbbca4f214b733f3a0d147b76":[0,0,59,2], +"class_sens_e_s_p_app_builder.html#a2a1b039efc3345f1d909b7adea3342ee":[0,0,59,5], +"class_sens_e_s_p_app_builder.html#a4a6855b053816852d61fd7012ea46e1f":[0,0,59,1], +"class_sens_e_s_p_app_builder.html#a81a82a604d3720c50b1bbe7d7c649172":[0,0,59,7], +"class_sens_e_s_p_app_builder.html#a820e3351c223431dd5ace3020eae7c12":[0,0,59,0], +"class_sens_e_s_p_app_builder.html#aa00b3826099409cd15defce2cba7ce71":[0,0,59,4], +"class_sens_e_s_p_app_builder.html#aa17d9342f404c76087f27bd6d34729e0":[0,0,59,6], +"class_sens_e_s_p_app_builder.html#afcbebdfc6392d7bca08371fdffed2779":[0,0,59,3], +"class_sensor.html":[0,0,60], +"class_sensor.html#a921d5f94f7f77fa42b5950a807a8e79c":[0,0,60,0], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html":[0,0,61], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a00127c0fb0aa12d05fbaa1887552d074":[0,0,61,1], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a0a5315f9c1d7bd39f0a50adebd6cd23d":[0,0,61,5], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a265caeca219432e14d561f15047b51b1":[0,0,61,9], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a3f54d150ff5159eeec3fd4188c8766ba":[0,0,61,10], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a410876582b8246975d97655b6288cee5":[0,0,61,6], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a41a2d8f8e7f6fc97039f074498f1b9f7":[0,0,61,11], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a681937828c756188c18330a7aacd1ecb":[0,0,61,0], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a68de3c26ea9715291dcaee9d1260c149":[0,0,61,13], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a715cdbdb39e3f12ef813ce3b4c624853":[0,0,61,4], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a85ab2b1718a9e1bc39759ecd9b97730c":[0,0,61,14], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#aa1db3fbf356c73d64797aed9fa18efa7":[0,0,61,7], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#aaef033f4cd54969b7057aeed0c8803d8":[0,0,61,8], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#ab3532ac68215da8b09b1004766175024":[0,0,61,2], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#ae1c06e8c4f18bfaaf4bb094a973c70d9":[0,0,61,12], +"class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#afad8509ff38a0b8cc9415c1d17193259":[0,0,61,3], +"class_sentence_parser.html":[0,0,62], +"class_sentence_parser.html#a20be85c734aab87cf783aaa6a999a29a":[0,0,62,0], +"class_sentence_parser.html#a74ed90a9386887e9ff2c13dbb12a556e":[0,0,62,2], +"class_sentence_parser.html#a77a87f5f20ac471591d2110856e8232b":[0,0,62,4], +"class_sentence_parser.html#aa079d8ee1b96e2f03a9c7a1f2ddf7519":[0,0,62,3], +"class_sentence_parser.html#ad92490af20d92f942b2e52abfc26007f":[0,0,62,1], +"class_string_sensor.html":[0,0,71], +"class_string_sensor.html#a8ed16d934bf90314e4f00dba25b1d202":[0,0,71,0], +"class_symmetric_transform.html":[0,0,72], +"class_symmetric_transform.html#a77383aeb8a2dc0e27a2fbc24b451bc90":[0,0,72,0], +"class_system_hz.html":[0,0,73], +"class_system_hz.html#a2f2337dcbe45cce879392f28579e233d":[0,0,73,1], +"class_system_hz.html#a72aa9d59ca93c864b3c4bba55fdd4ec6":[0,0,73,0], +"class_system_hz.html#aafe9250142a6c4b234f3d8e64771ce95":[0,0,73,2], +"class_threshold_transform.html":[0,0,74], +"class_threshold_transform.html#a4c948e2da55fdff4efdd479f93523866":[0,0,74,0], +"class_threshold_transform.html#a874992f571166f58cd7ef73856d30509":[0,0,74,2], +"class_threshold_transform.html#aa38bf7e3031c7946e5b0bf6b0d9ccd7e":[0,0,74,4], +"class_threshold_transform.html#ac83f16930cb638bb7995a89bada5da8d":[0,0,74,1], +"class_threshold_transform.html#af5ba3ee8aefbc3c4cd81890e781511f3":[0,0,74,3], +"class_threshold_transform.html#af5e848363d0046d8688c2f7da432aac9":[0,0,74,5], +"class_time_string.html":[0,0,75], +"class_time_string.html#adc18ed47c4b6d88acceec81741aab5c3":[0,0,75,0], +"class_time_string.html#adde406ecfdeea029a07c54c87f29580f":[0,0,75,1], +"class_transform.html":[0,0,76], +"class_transform.html#a145d0f289f0e63caf31f0f728d63f97e":[0,0,76,1], +"class_transform.html#a764037842596e71f15621e3732dac75a":[0,0,76,0], +"class_transform_base.html":[0,0,77], +"class_transform_base.html#a4f28a4ec27046ac3ef1546eda4b5b43b":[0,0,77,0], +"class_ultrasonic_distance.html":[0,0,78], +"class_ultrasonic_distance.html#a03aafa94461f81daefa1bdaf8186a7b2":[0,0,78,1], +"class_ultrasonic_distance.html#a5aaf744be7d7be1fbb3a96cbda8e1cbd":[0,0,78,0], +"class_uptime.html":[0,0,79], +"class_uptime.html#a3723d5d7c5b11879065dc3defb6e171f":[0,0,79,0], +"class_uptime.html#a43cdcac661b684e1c746fcdf7224e68f":[0,0,79,2], +"class_uptime.html#a677ab855187348527ccdb0725552e02a":[0,0,79,1], +"class_value_consumer.html":[0,0,80], +"class_value_consumer.html#a0a2ab6f7c8bfb460d8778f6ae727cde7":[0,0,80,2], +"class_value_consumer.html#a236eaf49e25b8cab99845a76dd1fb73e":[0,0,80,1], +"class_value_consumer.html#a913d68690f22e5829fd8fca4f893adf5":[0,0,80,0], +"class_value_producer.html":[0,0,81], +"class_value_producer.html#a0ef05992883120f7202c14fd8e577103":[0,0,81,0], +"class_value_producer.html#a3156eb097154b0a64227b0c8ef36aefd":[0,0,81,1], +"class_value_producer.html#a567a7940bdda6bace2c50704242f1d96":[0,0,81,4], +"class_value_producer.html#a5920fda501e9eb4328f4a7d14d02fa39":[0,0,81,2], +"class_value_producer.html#a9d3882f6de7ef8b05e78947cf9df2697":[0,0,81,6], +"class_value_producer.html#adaf30ea1027efa0c83c75dfe3afc0c1a":[0,0,81,5], +"class_value_producer.html#ae22489a1be8fbee367e4ef21f73abfb3":[0,0,81,3], +"class_voltage_divider_r1.html":[0,0,82], +"class_voltage_divider_r1.html#a0431451b00c45c89d3ac5bf4fec692c3":[0,0,82,6], +"class_voltage_divider_r1.html#a0945340bdc351b89a43dcf46ed073fe0":[0,0,82,1], +"class_voltage_divider_r1.html#a559bd31c65cb8a407e7e28d968d97678":[0,0,82,0], +"class_voltage_divider_r1.html#a629323d44b24dabe6e54c06a80dfe280":[0,0,82,3], +"class_voltage_divider_r1.html#ac076d517bc3fb64717457a07f477d740":[0,0,82,2], +"class_voltage_divider_r1.html#ad00c68d3e756cdb88d099ac0c0eadd1e":[0,0,82,5], +"class_voltage_divider_r1.html#ad9cb0660e2c1e82a6740739fcfc2a360":[0,0,82,4], +"class_voltage_divider_r2.html":[0,0,83], +"class_voltage_divider_r2.html#a43fa7bb9dc49c50de247aac272d7f697":[0,0,83,4], +"class_voltage_divider_r2.html#a482239a7e4031b16091886109efd2296":[0,0,83,6], +"class_voltage_divider_r2.html#a609ab5e2db4122ddc875a94ba8f9d325":[0,0,83,0], +"class_voltage_divider_r2.html#a805b64252dccfd3720ce5fc0f84964b3":[0,0,83,3], +"class_voltage_divider_r2.html#a927b6c4d26bc24dfd326f63a0a127f66":[0,0,83,5], +"class_voltage_divider_r2.html#ae37065fd9bd093497ff74a9faf5b6cea":[0,0,83,1], +"class_voltage_divider_r2.html#af76ca11d13ac2ab6e16133a1e1292ef9":[0,0,83,2], +"class_voltage_multiplier.html":[0,0,84], +"class_voltage_multiplier.html#a606d3a993996bc18fca30f9231c30518":[0,0,84,1], +"class_voltage_multiplier.html#a987803f756c42ddfd2f5bf18ad01d779":[0,0,84,0], +"class_w_s_client.html":[0,0,86], +"class_w_s_client.html#a1313d063fd61739f7e3ca9b2c126b048":[0,0,86,2], +"class_w_s_client.html#a1612670a5dccbc8a39518ae972fbae90":[0,0,86,1], +"class_w_s_client.html#a1c800c9ef6791e3103a3ec3eb2ef38f7":[0,0,86,0], +"class_w_s_client.html#a262d41693fab15daa3acac9de78fbf35":[0,0,86,9], +"class_w_s_client.html#a26e9057dc9c94a940684716c9c65d113":[0,0,86,6], +"class_w_s_client.html#a2b235f3e62668b6e7923cbbcba00e5c1":[0,0,86,12], +"class_w_s_client.html#a478877d14e5a303c24ea60a4cc4f8752":[0,0,86,13], +"class_w_s_client.html#a6ae43b80f511194b43b0dff2763d68b1":[0,0,86,7], +"class_w_s_client.html#a78fbe2ccf0f84423abbf9d1047aff0bc":[0,0,86,3], +"class_w_s_client.html#a88daee9c4c5b497558c3d07591baa3e0":[0,0,86,5], +"class_w_s_client.html#ab6bcc3fb4cfe71aff3929480fab9bd5a":[0,0,86,14], +"class_w_s_client.html#ad099870379ee102fa4f5b3b584b50658":[0,0,86,15], +"class_w_s_client.html#ae110b10f209f55a82e2d700c8c9149a7":[0,0,86,10], +"class_w_s_client.html#ae23657a7da08a9413a09e9054495904e":[0,0,86,8], +"class_w_s_client.html#ae4b637b051ecf7ee14181208c6f37855":[0,0,86,4], +"class_w_s_client.html#af921852d17f75f46999c2cc1442c4723":[0,0,86,11], +"class_wifi_signal.html":[0,0,85], +"class_wifi_signal.html#ac326583e59ad78951c1ba2f56091e2b3":[0,0,85,1], +"class_wifi_signal.html#ad471294e67baafcf42e0b17f5d0f00ec":[0,0,85,0], +"class_wifi_signal.html#af2eff535c0ed56dfe91f2c6a17078912":[0,0,85,2], +"classes.html":[0,1], +"configurable_8cpp.html":[1,0,0,3,0] +}; diff --git a/docs/generated/docs/navtreeindex2.js b/docs/generated/docs/navtreeindex2.js new file mode 100644 index 000000000..60f4b725d --- /dev/null +++ b/docs/generated/docs/navtreeindex2.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX2 = +{ +"configurable_8cpp.html#a19ac563e52fea3af6b643155f9d258b6":[1,0,0,3,0,0], +"configurable_8cpp_source.html":[1,0,0,3,0], +"configurable_8h.html":[1,0,0,3,1], +"configurable_8h.html#a19ac563e52fea3af6b643155f9d258b6":[1,0,0,3,1,1], +"configurable_8h_source.html":[1,0,0,3,1], +"curveinterpolator_8cpp.html":[1,0,0,4,8], +"curveinterpolator_8cpp_source.html":[1,0,0,4,8], +"curveinterpolator_8h.html":[1,0,0,4,9], +"curveinterpolator_8h_source.html":[1,0,0,4,9], +"debounce_8cpp.html":[1,0,0,4,10], +"debounce_8cpp_source.html":[1,0,0,4,10], +"debounce_8h.html":[1,0,0,4,11], +"debounce_8h_source.html":[1,0,0,4,11], +"difference_8cpp.html":[1,0,0,4,12], +"difference_8cpp_source.html":[1,0,0,4,12], +"difference_8h.html":[1,0,0,4,13], +"difference_8h_source.html":[1,0,0,4,13], +"digital__input_8cpp.html":[1,0,0,1,9], +"digital__input_8cpp_source.html":[1,0,0,1,9], +"digital__input_8h.html":[1,0,0,1,10], +"digital__input_8h_source.html":[1,0,0,1,10], +"digital__output_8cpp.html":[1,0,0,1,11], +"digital__output_8cpp_source.html":[1,0,0,1,11], +"digital__output_8h.html":[1,0,0,1,12], +"digital__output_8h_source.html":[1,0,0,1,12], +"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[1,0,0], +"dir_7349e89ef19c117195f8e371603e1b1f.html":[1,0,0,1], +"dir_846aa835ffd15ea225ad18b5b4aa0d4f.html":[1,0,0,2], +"dir_85858df28c9c737bf6d126646f545b97.html":[1,0,0,0,0], +"dir_859cad99e661c8c6c06da42378c04432.html":[1,0,0,4], +"dir_c72b25b75abe208498b36a3e44a3726c.html":[1,0,0,0], +"dir_d501334aeb1b78ad67cd3c72c37b1e87.html":[1,0,0,3], +"discovery_8cpp.html":[1,0,0,0,1], +"discovery_8cpp.html#aeea49ee803402167d8d79ca58268363e":[1,0,0,0,1,0], +"discovery_8cpp_source.html":[1,0,0,0,1], +"discovery_8h.html":[1,0,0,0,2], +"discovery_8h.html#aeea49ee803402167d8d79ca58268363e":[1,0,0,0,2,0], +"discovery_8h_source.html":[1,0,0,0,2], +"enable_8cpp.html":[1,0,0,3,2], +"enable_8cpp_source.html":[1,0,0,3,2], +"enable_8h.html":[1,0,0,3,3], +"enable_8h_source.html":[1,0,0,3,3], +"files.html":[1,0], +"frequency_8cpp.html":[1,0,0,4,14], +"frequency_8cpp_source.html":[1,0,0,4,14], +"frequency_8h.html":[1,0,0,4,15], +"frequency_8h_source.html":[1,0,0,4,15], +"functions.html":[0,3,0,0], +"functions.html":[0,3,0], +"functions_b.html":[0,3,0,1], +"functions_c.html":[0,3,0,2], +"functions_d.html":[0,3,0,3], +"functions_e.html":[0,3,0,4], +"functions_f.html":[0,3,0,5], +"functions_func.html":[0,3,1], +"functions_func.html":[0,3,1,0], +"functions_func_b.html":[0,3,1,1], +"functions_func_c.html":[0,3,1,2], +"functions_func_d.html":[0,3,1,3], +"functions_func_e.html":[0,3,1,4], +"functions_func_f.html":[0,3,1,5], +"functions_func_g.html":[0,3,1,6], +"functions_func_h.html":[0,3,1,7], +"functions_func_i.html":[0,3,1,8], +"functions_func_l.html":[0,3,1,9], +"functions_func_m.html":[0,3,1,10], +"functions_func_n.html":[0,3,1,11], +"functions_func_o.html":[0,3,1,12], +"functions_func_p.html":[0,3,1,13], +"functions_func_r.html":[0,3,1,14], +"functions_func_s.html":[0,3,1,15], +"functions_func_t.html":[0,3,1,16], +"functions_func_u.html":[0,3,1,17], +"functions_func_v.html":[0,3,1,18], +"functions_func_w.html":[0,3,1,19], +"functions_func_~.html":[0,3,1,20], +"functions_g.html":[0,3,0,6], +"functions_h.html":[0,3,0,7], +"functions_i.html":[0,3,0,8], +"functions_k.html":[0,3,0,9], +"functions_l.html":[0,3,0,10], +"functions_m.html":[0,3,0,11], +"functions_n.html":[0,3,0,12], +"functions_o.html":[0,3,0,13], +"functions_p.html":[0,3,0,14], +"functions_r.html":[0,3,0,15], +"functions_rela.html":[0,3,3], +"functions_s.html":[0,3,0,16], +"functions_t.html":[0,3,0,17], +"functions_u.html":[0,3,0,18], +"functions_v.html":[0,3,0,19], +"functions_vars.html":[0,3,2], +"functions_w.html":[0,3,0,20], +"functions_~.html":[0,3,0,21], +"globals.html":[1,1,0], +"globals_defs.html":[1,1,6], +"globals_enum.html":[1,1,4], +"globals_eval.html":[1,1,5], +"globals_func.html":[1,1,1], +"globals_type.html":[1,1,3], +"globals_vars.html":[1,1,2], +"gps_8cpp.html":[1,0,0,1,13], +"gps_8cpp_source.html":[1,0,0,1,13], +"gps_8h.html":[1,0,0,1,14], +"gps_8h_source.html":[1,0,0,1,14], +"hierarchy.html":[0,2], +"http_8cpp.html":[1,0,0,0,3], +"http_8cpp.html#a4f905ddd4da1a3e205a8935f4babb25b":[1,0,0,0,3,0], +"http_8cpp_source.html":[1,0,0,0,3], +"http_8h.html":[1,0,0,0,4], +"http_8h_source.html":[1,0,0,0,4], +"hysteresis_8h.html":[1,0,0,4,16], +"hysteresis_8h.html#a7e7f7cc8e64ad4edaf12f0937589db19":[1,0,0,4,16,1], +"hysteresis_8h_source.html":[1,0,0,4,16], +"ina219_8cpp.html":[1,0,0,1,15], +"ina219_8cpp_source.html":[1,0,0,1,15], +"ina219_8h.html":[1,0,0,1,16], +"ina219_8h.html#a80681f57fd3d14d390d830a2ea845654":[1,0,0,1,16,4], +"ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a02073ae5cd2835f972526f8a03dd2af1":[1,0,0,1,16,4,1], +"ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a111ba01d5017c5f1829f20d73348f03f":[1,0,0,1,16,4,0], +"ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a3edc24834fa7d8deb140997b6e64b067":[1,0,0,1,16,4,4], +"ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a8225bfb34b5298eb7529ec580a4d178e":[1,0,0,1,16,4,2], +"ina219_8h.html#a80681f57fd3d14d390d830a2ea845654af8c33b3fcc6333e88c55e603007e9fe4":[1,0,0,1,16,4,3], +"ina219_8h.html#aab1b0e7a44b1751e455f2f0716da1794":[1,0,0,1,16,2], +"ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0":[1,0,0,1,16,3], +"ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0a01a08da826cf9ddb397bf94f3cea755c":[1,0,0,1,16,3,2], +"ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0a588648d40e059f0ff2d9297aedbbf915":[1,0,0,1,16,3,1], +"ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0ae0ccdd359f693e07141b4bcef13e149a":[1,0,0,1,16,3,0], +"ina219_8h_source.html":[1,0,0,1,16], +"index.html":[], +"index_8h.html":[1,0,0,0,0,0], +"index_8h.html#a9e09bea0eddc6841460f6654d2ba1a5f":[1,0,0,0,0,0,0], +"index_8h_source.html":[1,0,0,0,0,0], +"integrator_8cpp.html":[1,0,0,4,17], +"integrator_8cpp_source.html":[1,0,0,4,17], +"integrator_8h.html":[1,0,0,4,18], +"integrator_8h_source.html":[1,0,0,4,18], +"js__jsoneditor_8h.html":[1,0,0,0,0,1], +"js__jsoneditor_8h.html#a53fb277b2065a969013a1bc4b071abd1":[1,0,0,0,0,1,0], +"js__jsoneditor_8h_source.html":[1,0,0,0,0,1], +"js__sensesp_8h.html":[1,0,0,0,0,2], +"js__sensesp_8h.html#a8de262bdd3fe0e74c591a5174112011f":[1,0,0,0,0,2,0], +"js__sensesp_8h_source.html":[1,0,0,0,0,2], +"lambda__transform_8cpp.html":[1,0,0,4,19], +"lambda__transform_8cpp.html#a088917acfc20b1694a87b1bac518676b":[1,0,0,4,19,3], +"lambda__transform_8cpp.html#a1ba339fb0c0884b466ff07c096632b6c":[1,0,0,4,19,1], +"lambda__transform_8cpp.html#ab2b46faeee0a0a89516c536f0b3fb7c7":[1,0,0,4,19,2], +"lambda__transform_8cpp.html#ad157c07ea0943b787f0fb03fa11669bf":[1,0,0,4,19,4], +"lambda__transform_8cpp.html#aeff670170ffe32f04eaecd5f5135c7ce":[1,0,0,4,19,0], +"lambda__transform_8cpp_source.html":[1,0,0,4,19], +"lambda__transform_8h.html":[1,0,0,4,20], +"lambda__transform_8h.html#a088917acfc20b1694a87b1bac518676b":[1,0,0,4,20,5], +"lambda__transform_8h.html#a1ba339fb0c0884b466ff07c096632b6c":[1,0,0,4,20,3], +"lambda__transform_8h.html#ab2b46faeee0a0a89516c536f0b3fb7c7":[1,0,0,4,20,4], +"lambda__transform_8h.html#ad157c07ea0943b787f0fb03fa11669bf":[1,0,0,4,20,6], +"lambda__transform_8h.html#aeff670170ffe32f04eaecd5f5135c7ce":[1,0,0,4,20,2], +"lambda__transform_8h_source.html":[1,0,0,4,20], +"led__blinker_8cpp.html":[1,0,0,3,4], +"led__blinker_8cpp_source.html":[1,0,0,3,4], +"led__blinker_8h.html":[1,0,0,3,5], +"led__blinker_8h_source.html":[1,0,0,3,5], +"linear_8cpp.html":[1,0,0,4,21], +"linear_8cpp_source.html":[1,0,0,4,21], +"linear_8h.html":[1,0,0,4,22], +"linear_8h_source.html":[1,0,0,4,22], +"main_8cpp.html":[1,0,0,5], +"main_8cpp.html#a6d9293a0861bd0a401705876575bf2d1":[1,0,0,5,0], +"main_8cpp_source.html":[1,0,0,5], +"max31856__thermocouple_8cpp.html":[1,0,0,1,17], +"max31856__thermocouple_8cpp_source.html":[1,0,0,1,17], +"max31856__thermocouple_8h.html":[1,0,0,1,18], +"max31856__thermocouple_8h_source.html":[1,0,0,1,18], +"median_8cpp.html":[1,0,0,4,23], +"median_8cpp_source.html":[1,0,0,4,23], +"median_8h.html":[1,0,0,4,24], +"median_8h_source.html":[1,0,0,4,24], +"moving__average_8cpp.html":[1,0,0,4,25], +"moving__average_8cpp_source.html":[1,0,0,4,25], +"moving__average_8h.html":[1,0,0,4,26], +"moving__average_8h_source.html":[1,0,0,4,26], +"networking_8cpp.html":[1,0,0,0,5], +"networking_8cpp.html#a48cbc1e96bb919a4d4e7631d26744d13":[1,0,0,0,5,1], +"networking_8cpp.html#a6beb3d9ab4141921e87c56b399230fce":[1,0,0,0,5,0], +"networking_8cpp.html#a7930cb24915efc348611f4c48d1d5e4c":[1,0,0,0,5,2], +"networking_8cpp.html#ade4bb65788e7b6ea2d2e3e026baf7310":[1,0,0,0,5,3], +"networking_8cpp_source.html":[1,0,0,0,5], +"networking_8h.html":[1,0,0,0,6], +"networking_8h_source.html":[1,0,0,0,6], +"nmea__parser_8cpp.html":[1,0,0,3,6], +"nmea__parser_8cpp.html#a113615295f150c16f895c9e2525bbd6e":[1,0,0,3,6,4], +"nmea__parser_8cpp.html#a18bf596259e1849f3b6bdbdd765ab606":[1,0,0,3,6,9], +"nmea__parser_8cpp.html#a202c8d748e820b33d2fb1a324710698b":[1,0,0,3,6,11], +"nmea__parser_8cpp.html#a21e8f85a497e58ad08d5c473e89a8463":[1,0,0,3,6,7], +"nmea__parser_8cpp.html#a29c34542d9842302271bb6a0380d4d4d":[1,0,0,3,6,2], +"nmea__parser_8cpp.html#a37bce694f34f625b2c3e29a1a74c1570":[1,0,0,3,6,10], +"nmea__parser_8cpp.html#a3f3c4d059e6d6bcc7040f624486d37ae":[1,0,0,3,6,3], +"nmea__parser_8cpp.html#a4021e9ad227b156bfdedaa8fd938590b":[1,0,0,3,6,8], +"nmea__parser_8cpp.html#a4de8e35130646cbb488072ff8e457126":[1,0,0,3,6,6], +"nmea__parser_8cpp.html#a69a390886762ecd9593ebeada6f3e52d":[1,0,0,3,6,12], +"nmea__parser_8cpp.html#a78e0374f91eaf4035ec29121f7e40064":[1,0,0,3,6,14], +"nmea__parser_8cpp.html#ac534d920f6775ddb34453e554699e1b4":[1,0,0,3,6,5], +"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520":[1,0,0,3,6,0], +"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a05e849a8cef5c44456bd54132f622ef2":[1,0,0,3,6,0,4], +"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a1b64cc0e9a9ebc1afccab8e472ed2e3c":[1,0,0,3,6,0,5], +"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a32b763dac1af6b0b08ab952ea202f6a3":[1,0,0,3,6,0,8], +"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a4692e23f3770a255f880456f7fbec485":[1,0,0,3,6,0,7], +"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a59f188885f9974ee947a7e5af4b9f5bc":[1,0,0,3,6,0,6], +"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a8d26d1fa1d0cda42a29843162786a0b6":[1,0,0,3,6,0,2], +"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520acad07a79b4226b1e51ce24a510e6aef0":[1,0,0,3,6,0,0], +"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520ad606e435413ea0944dd00d49e901e4ed":[1,0,0,3,6,0,9], +"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520adea098971e394461267006ddf5d2d4b0":[1,0,0,3,6,0,1], +"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520afa0a09a3165e3cc313372a0b424b149c":[1,0,0,3,6,0,3], +"nmea__parser_8cpp.html#af394f12d9ff6fb97e4c158dac1eb6dc0":[1,0,0,3,6,1], +"nmea__parser_8cpp.html#af7a3600deec155122015fcfedfc126a7":[1,0,0,3,6,13], +"nmea__parser_8cpp_source.html":[1,0,0,3,6], +"nmea__parser_8h.html":[1,0,0,3,7], +"nmea__parser_8h.html#a6088978b66925a9ff44bbdf302f00726":[1,0,0,3,7,11], +"nmea__parser_8h.html#a6487a496a45b3acfe263589909cfc101":[1,0,0,3,7,12], +"nmea__parser_8h_source.html":[1,0,0,3,7], +"observable_8cpp.html":[1,0,0,3,8], +"observable_8cpp_source.html":[1,0,0,3,8], +"observable_8h.html":[1,0,0,3,9], +"observable_8h_source.html":[1,0,0,3,9], +"observablevalue_8h.html":[1,0,0,3,10], +"observablevalue_8h_source.html":[1,0,0,3,10], +"onewire__temperature_8cpp.html":[1,0,0,1,19], +"onewire__temperature_8cpp.html#a2ea2a536fdbbb476ae3fb824d73d3e1a":[1,0,0,1,19,1], +"onewire__temperature_8cpp.html#ad0134b3041182b5f8c3004025183e6eb":[1,0,0,1,19,0], +"onewire__temperature_8cpp.html#af247f8ddcd26451c72c7706fc884a6dc":[1,0,0,1,19,2], +"onewire__temperature_8cpp_source.html":[1,0,0,1,19], +"onewire__temperature_8h.html":[1,0,0,1,20], +"onewire__temperature_8h.html#aaada9c625aab143feda6189e26144775":[1,0,0,1,20,2], +"onewire__temperature_8h_source.html":[1,0,0,1,20], +"orientation__9dof__input_8cpp.html":[1,0,0,1,21], +"orientation__9dof__input_8cpp.html#a98d89d1a44b4415ca4d8ae0c8ce74ee6":[1,0,0,1,21,0], +"orientation__9dof__input_8cpp_source.html":[1,0,0,1,21], +"orientation__9dof__input_8h.html":[1,0,0,1,22], +"orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95e":[1,0,0,1,22,2], +"orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea1aca2377e3a0b9909c2dc93959beb751":[1,0,0,1,22,2,0], +"orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea2bfd167dc9dfcb7a507d2e7ea5a6c1d8":[1,0,0,1,22,2,6], +"orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea2cb838e8090509cdbe8d5cb0e2baea09":[1,0,0,1,22,2,3], +"orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea47adc77fa7e4e33d5e567d3377ceda90":[1,0,0,1,22,2,2], +"orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea662c740c96b3f23ac9fff8f5b7fa6e1f":[1,0,0,1,22,2,4], +"orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea7d727d167958e799288fbf3b43894883":[1,0,0,1,22,2,1], +"orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea8987706e9866024a60124d12510d11c6":[1,0,0,1,22,2,8], +"orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95eaa69107d7ac45a55e7d4f70da85db52a1":[1,0,0,1,22,2,5], +"orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95eaaaafd973e0adb0637c636ee1934f6200":[1,0,0,1,22,2,7], +"orientation__9dof__input_8h_source.html":[1,0,0,1,22], +"ota_8cpp.html":[1,0,0,0,7], +"ota_8cpp.html#a33a44650f7c396edaeee69c33952d906":[1,0,0,0,7,1] +}; diff --git a/docs/generated/docs/navtreeindex3.js b/docs/generated/docs/navtreeindex3.js new file mode 100644 index 000000000..a08c68336 --- /dev/null +++ b/docs/generated/docs/navtreeindex3.js @@ -0,0 +1,213 @@ +var NAVTREEINDEX3 = +{ +"ota_8cpp.html#afe226f1d9a9fde6f6a37a1bf42d76f03":[1,0,0,0,7,0], +"ota_8cpp_source.html":[1,0,0,0,7], +"ota_8h.html":[1,0,0,0,8], +"ota_8h.html#a33a44650f7c396edaeee69c33952d906":[1,0,0,0,8,0], +"ota_8h_source.html":[1,0,0,0,8], +"pages.html":[], +"sensesp_8h.html":[1,0,0,6], +"sensesp_8h.html#a5ae2f374710d648c2027c78237f5df01":[1,0,0,6,2], +"sensesp_8h.html#aaa2ffd80e6f851dc6bb43c95a2c7d26f":[1,0,0,6,1], +"sensesp_8h.html#abb3668fa85a914138ab7c0c4329681ec":[1,0,0,6,0], +"sensesp_8h_source.html":[1,0,0,6], +"sensesp__app_8cpp.html":[1,0,0,7], +"sensesp__app_8cpp.html#a1221597f95eb6877af3f88a79e735aa7":[1,0,0,7,6], +"sensesp__app_8cpp.html#a16ab74864a3ce810c06ceed3810a8245":[1,0,0,7,11], +"sensesp__app_8cpp.html#a21904bc00717232c9d580c83d004b2d9":[1,0,0,7,7], +"sensesp__app_8cpp.html#a26cd8b11d153355437b86342648b9d70":[1,0,0,7,2], +"sensesp__app_8cpp.html#a34899f6b1a4ca06784bcbc532d96b286":[1,0,0,7,9], +"sensesp__app_8cpp.html#a5ae2f374710d648c2027c78237f5df01":[1,0,0,7,3], +"sensesp__app_8cpp.html#a76c1c042dbf7ae6cd2b10d537dfd789c":[1,0,0,7,12], +"sensesp__app_8cpp.html#a7c23c6671a7c574688672c9ba0a0e41d":[1,0,0,7,1], +"sensesp__app_8cpp.html#a9b53af60ecde971876d66994134fbfff":[1,0,0,7,8], +"sensesp__app_8cpp.html#aafcec3d306fa4a9995d6d51e2b179116":[1,0,0,7,0], +"sensesp__app_8cpp.html#ac8b4b8d72f01d6be9d8b054526139b5b":[1,0,0,7,5], +"sensesp__app_8cpp.html#ad73d4df2ce4b897a6f527dcc95adde4c":[1,0,0,7,4], +"sensesp__app_8cpp.html#aeb920b4c25bb4d9442ce03911e40d074":[1,0,0,7,10], +"sensesp__app_8cpp_source.html":[1,0,0,7], +"sensesp__app_8h.html":[1,0,0,8], +"sensesp__app_8h.html#a26cd8b11d153355437b86342648b9d70":[1,0,0,8,5], +"sensesp__app_8h.html#a8abe44af131f55591035d3587ca9484d":[1,0,0,8,3], +"sensesp__app_8h.html#a9b53af60ecde971876d66994134fbfff":[1,0,0,8,6], +"sensesp__app_8h.html#ab4553be4db9860d940f81d7447173b2f":[1,0,0,8,2], +"sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbd":[1,0,0,8,4], +"sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda0ef2c92b2317b95f9ef1ae102029d676":[1,0,0,8,4,2], +"sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda16948e5a45a0e6caffb0b1b85f342b7e":[1,0,0,8,4,5], +"sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda51305f206950897626327f194518087d":[1,0,0,8,4,1], +"sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda5891c7e995ff517e945876b41f35bbb7":[1,0,0,8,4,3], +"sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbdab1d5eac4b1dca480c8056eaea7663b7a":[1,0,0,8,4,6], +"sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbdac157bdf0b85a40d2619cbc8bc1ae5fe2":[1,0,0,8,4,0], +"sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbdad623eb60dd773b245fe13ee928fd47c8":[1,0,0,8,4,4], +"sensesp__app_8h.html#add0ff5bdcc203b4a438aa1f46260283d":[1,0,0,8,1], +"sensesp__app_8h_source.html":[1,0,0,8], +"sensesp__app__builder_8h.html":[1,0,0,9], +"sensesp__app__builder_8h_source.html":[1,0,0,9], +"sensor_8cpp.html":[1,0,0,1,23], +"sensor_8cpp_source.html":[1,0,0,1,23], +"sensor_8h.html":[1,0,0,1,24], +"sensor_8h_source.html":[1,0,0,1,24], +"sensor__nxp__fxos8700__fxas21002_8cpp.html":[1,0,0,1,25], +"sensor__nxp__fxos8700__fxas21002_8cpp.html#a3aa61c72e9dcb6f6313835817ba9d134":[1,0,0,1,25,3], +"sensor__nxp__fxos8700__fxas21002_8cpp.html#a4b1ab4b048fbbcd75a1e22958393fb95":[1,0,0,1,25,2], +"sensor__nxp__fxos8700__fxas21002_8cpp.html#a95a042ebf2273805da333239d975ecae":[1,0,0,1,25,1], +"sensor__nxp__fxos8700__fxas21002_8cpp.html#a9f38c1bd6c384c20a2559bbe12f87d18":[1,0,0,1,25,0], +"sensor__nxp__fxos8700__fxas21002_8cpp_source.html":[1,0,0,1,25], +"sensor__nxp__fxos8700__fxas21002_8h.html":[1,0,0,1,26], +"sensor__nxp__fxos8700__fxas21002_8h_source.html":[1,0,0,1,26], +"setup_8h.html":[1,0,0,0,0,3], +"setup_8h.html#a183306764a8509f2c9635a13289ea64f":[1,0,0,0,0,3,0], +"setup_8h_source.html":[1,0,0,0,0,3], +"sht31_8cpp.html":[1,0,0,1,27], +"sht31_8cpp_source.html":[1,0,0,1,27], +"sht31_8h.html":[1,0,0,1,28], +"sht31_8h.html#a4c30892c341612f9799ac178cf78112d":[1,0,0,1,28,2], +"sht31_8h.html#a6c9ef8dce1c0c00daf564286ec45ce04":[1,0,0,1,28,3], +"sht31_8h.html#a6c9ef8dce1c0c00daf564286ec45ce04a9922a43d37bee3212593f77ce4ec82f3":[1,0,0,1,28,3,0], +"sht31_8h.html#a6c9ef8dce1c0c00daf564286ec45ce04af78a0094726cca324b69464b475ed069":[1,0,0,1,28,3,1], +"sht31_8h_source.html":[1,0,0,1,28], +"signalk__delta_8cpp.html":[1,0,0,2,0], +"signalk__delta_8cpp_source.html":[1,0,0,2,0], +"signalk__delta_8h.html":[1,0,0,2,1], +"signalk__delta_8h_source.html":[1,0,0,2,1], +"signalk__emitter_8cpp.html":[1,0,0,2,2], +"signalk__emitter_8cpp_source.html":[1,0,0,2,2], +"signalk__emitter_8h.html":[1,0,0,2,3], +"signalk__emitter_8h_source.html":[1,0,0,2,3], +"signalk__listener_8cpp.html":[1,0,0,2,4], +"signalk__listener_8cpp_source.html":[1,0,0,2,4], +"signalk__listener_8h.html":[1,0,0,2,5], +"signalk__listener_8h_source.html":[1,0,0,2,5], +"signalk__output_8h.html":[1,0,0,2,6], +"signalk__output_8h.html#a008f63a91ea787950cb6c17e4c031859":[1,0,0,2,6,4], +"signalk__output_8h.html#a1a26c344db2dff33a77cf620aafa6c0c":[1,0,0,2,6,1], +"signalk__output_8h.html#a2a0e216e5ada5e31f7a6d995d2c52642":[1,0,0,2,6,2], +"signalk__output_8h.html#a6c84656f504f6de21c63c1d54d6f39e1":[1,0,0,2,6,3], +"signalk__output_8h_source.html":[1,0,0,2,6], +"signalk__position_8cpp.html":[1,0,0,2,7], +"signalk__position_8cpp_source.html":[1,0,0,2,7], +"signalk__position_8h.html":[1,0,0,2,8], +"signalk__position_8h.html#af7b68a40dd9aa2220abb8e1bd8998455":[1,0,0,2,8,0], +"signalk__position_8h_source.html":[1,0,0,2,8], +"signalk__time_8cpp.html":[1,0,0,2,9], +"signalk__time_8cpp_source.html":[1,0,0,2,9], +"signalk__time_8h.html":[1,0,0,2,10], +"signalk__time_8h_source.html":[1,0,0,2,10], +"signalk__value__listener_8h.html":[1,0,0,2,11], +"signalk__value__listener_8h.html#a754369a24853b40cebe8febff7b43e65":[1,0,0,2,11,4], +"signalk__value__listener_8h.html#a75e67b33609f9d94e37f31d5b8d28323":[1,0,0,2,11,3], +"signalk__value__listener_8h.html#a8f575605d1ef3b54dda1b6c42176ea58":[1,0,0,2,11,1], +"signalk__value__listener_8h.html#adf04f595b2363166ad957fdf9ce49df8":[1,0,0,2,11,2], +"signalk__value__listener_8h_source.html":[1,0,0,2,11], +"spiffs__storage_8cpp.html":[1,0,0,3,11], +"spiffs__storage_8cpp.html#a1dfee751479797b385c81cacb151c115":[1,0,0,3,11,1], +"spiffs__storage_8cpp.html#a7429780969e66149e25ea6088bf65b7a":[1,0,0,3,11,0], +"spiffs__storage_8cpp.html#ae1cd66733f6f724334874c5ff65b958b":[1,0,0,3,11,2], +"spiffs__storage_8cpp_source.html":[1,0,0,3,11], +"spiffs__storage_8h.html":[1,0,0,3,12], +"spiffs__storage_8h.html#a1dfee751479797b385c81cacb151c115":[1,0,0,3,12,2], +"spiffs__storage_8h.html#a3ca6038ce2edba53098d8ca7ffdaa35d":[1,0,0,3,12,0], +"spiffs__storage_8h.html#a48b9b058342e94d2f8c0c2670799b9fe":[1,0,0,3,12,3], +"spiffs__storage_8h.html#a7429780969e66149e25ea6088bf65b7a":[1,0,0,3,12,1], +"spiffs__storage_8h.html#ae1cd66733f6f724334874c5ff65b958b":[1,0,0,3,12,4], +"spiffs__storage_8h_source.html":[1,0,0,3,12], +"struct_e_n_u_vector.html":[0,0,22], +"struct_e_n_u_vector.html#a4cf8b3abdd2edd2f9a463fc6394dbb50":[0,0,22,1], +"struct_e_n_u_vector.html#ac4254f925ae071868c7961a006cdf768":[0,0,22,2], +"struct_e_n_u_vector.html#affaf84db367ff8259448116fe4c75370":[0,0,22,0], +"struct_n_m_e_a_data.html":[0,0,44], +"struct_n_m_e_a_data.html#a1b62fa2b8b0b62d9cef48f7576e0da30":[0,0,44,6], +"struct_n_m_e_a_data.html#a249d831d604857b04284d4c33719005e":[0,0,44,11], +"struct_n_m_e_a_data.html#a3acdff78f354082419d01ebfe8846f7f":[0,0,44,7], +"struct_n_m_e_a_data.html#a3ae9e3d23c088e1c435acf4c232d6a5c":[0,0,44,2], +"struct_n_m_e_a_data.html#a5271f014cd9d9b7ebcfa64d772006044":[0,0,44,12], +"struct_n_m_e_a_data.html#a590b94e1133efeaa9a05456da0dab2dd":[0,0,44,13], +"struct_n_m_e_a_data.html#a8048e071ffb9f37ff425305525f2223a":[0,0,44,8], +"struct_n_m_e_a_data.html#a91263e0aa16f47a7535d8d4a09b2ffca":[0,0,44,15], +"struct_n_m_e_a_data.html#a96cce54518c05c611d50c159ea5122d6":[0,0,44,1], +"struct_n_m_e_a_data.html#a99328058cfe4cf26b5025511d64ce576":[0,0,44,5], +"struct_n_m_e_a_data.html#aa6d1ee7ee222393032e1f57cde891b31":[0,0,44,9], +"struct_n_m_e_a_data.html#aae3cb7b0e14cc41ad1c271b9afaae27d":[0,0,44,3], +"struct_n_m_e_a_data.html#ab5b508669ea5109f812b28cdba65c402":[0,0,44,16], +"struct_n_m_e_a_data.html#ac5e91779da683f23c11da42c1db41b60":[0,0,44,10], +"struct_n_m_e_a_data.html#ad752076d48c74317d72a26643fef7fef":[0,0,44,0], +"struct_n_m_e_a_data.html#af61e9824ffaf9b43c1a95d8d7a93bc10":[0,0,44,4], +"struct_n_m_e_a_data.html#afe6efa0ec62ce332673ab98b282990c8":[0,0,44,14], +"struct_param_info.html":[0,0,52], +"struct_param_info.html#a4cc8fb2021184f5b228e6307f3507a38":[0,0,52,0], +"struct_param_info.html#a92b4878247486f15fdecf4fc1b6be4e3":[0,0,52,1], +"struct_position.html":[0,0,53], +"struct_position.html#a76a87a4287c53ae7e53eba716e740c12":[0,0,53,2], +"struct_position.html#ac6606384ff43b39b8614dd3b590d6b36":[0,0,53,1], +"struct_position.html#add1df8470102854f3950fc9dd2fee06d":[0,0,53,0], +"system__info_8cpp.html":[1,0,0,1,29], +"system__info_8cpp_source.html":[1,0,0,1,29], +"system__info_8h.html":[1,0,0,1,30], +"system__info_8h_source.html":[1,0,0,1,30], +"threshold_8cpp.html":[1,0,0,4,27], +"threshold_8cpp_source.html":[1,0,0,4,27], +"threshold_8h.html":[1,0,0,4,28], +"threshold_8h_source.html":[1,0,0,4,28], +"timestring_8cpp.html":[1,0,0,4,29], +"timestring_8cpp_source.html":[1,0,0,4,29], +"timestring_8h.html":[1,0,0,4,30], +"timestring_8h_source.html":[1,0,0,4,30], +"transform_8cpp.html":[1,0,0,4,31], +"transform_8cpp_source.html":[1,0,0,4,31], +"transform_8h.html":[1,0,0,4,32], +"transform_8h.html#a463af5c6e30307ac67004d67dd014030":[1,0,0,4,32,6], +"transform_8h.html#ac1617ff234bef4e8a50341c1d6943246":[1,0,0,4,32,3], +"transform_8h.html#ac62af394caec478e4d32c254c96af25b":[1,0,0,4,32,5], +"transform_8h.html#ae9c0b5d70ecdf35d4bd3a0a4bd4e0d17":[1,0,0,4,32,4], +"transform_8h_source.html":[1,0,0,4,32], +"ultrasonic__distance_8cpp.html":[1,0,0,1,31], +"ultrasonic__distance_8cpp_source.html":[1,0,0,1,31], +"ultrasonic__distance_8h.html":[1,0,0,1,32], +"ultrasonic__distance_8h.html#a338eb3dc4d54d3371114ad3304ffab4f":[1,0,0,1,32,1], +"ultrasonic__distance_8h_source.html":[1,0,0,1,32], +"valueconsumer_8h.html":[1,0,0,3,13], +"valueconsumer_8h.html#a1220e1ddede7c4512fde395262841b74":[1,0,0,3,13,3], +"valueconsumer_8h.html#a1d91b84157f6818bb8b8b04caede8a02":[1,0,0,3,13,4], +"valueconsumer_8h.html#a45a844f7269f830a1f708f965627248c":[1,0,0,3,13,2], +"valueconsumer_8h.html#abea8a189967941972b3e7c5a329c4963":[1,0,0,3,13,1], +"valueconsumer_8h_source.html":[1,0,0,3,13], +"valueproducer_8h.html":[1,0,0,3,14], +"valueproducer_8h.html#a79edc4b65652f6948d690891bb6d7e0c":[1,0,0,3,14,1], +"valueproducer_8h.html#aaf22f94e9cc9067637cd0625ad9fe352":[1,0,0,3,14,3], +"valueproducer_8h.html#ab74ca4be7de22a21f73128ea38a4cbbb":[1,0,0,3,14,2], +"valueproducer_8h.html#ab845e985974e3ae4c050b8f221337b0d":[1,0,0,3,14,4], +"valueproducer_8h_source.html":[1,0,0,3,14], +"voltage__multiplier_8cpp.html":[1,0,0,4,33], +"voltage__multiplier_8cpp_source.html":[1,0,0,4,33], +"voltage__multiplier_8h.html":[1,0,0,4,34], +"voltage__multiplier_8h_source.html":[1,0,0,4,34], +"voltagedivider_8cpp.html":[1,0,0,4,35], +"voltagedivider_8cpp_source.html":[1,0,0,4,35], +"voltagedivider_8h.html":[1,0,0,4,36], +"voltagedivider_8h_source.html":[1,0,0,4,36], +"wiring__helpers_8cpp.html":[1,0,0,10], +"wiring__helpers_8cpp.html#a17220137bcd65b6f922f5a14165a8fcf":[1,0,0,10,3], +"wiring__helpers_8cpp.html#a3a4bbd0371b8285dbb7b8666d50a53a3":[1,0,0,10,0], +"wiring__helpers_8cpp.html#a8f7d5e59747355ce523001faddc7ada9":[1,0,0,10,2], +"wiring__helpers_8cpp.html#aa6279a7bab0b61c448263a90303bb7e0":[1,0,0,10,4], +"wiring__helpers_8cpp.html#ae36e0604b36693bd720bffcf4145baf9":[1,0,0,10,1], +"wiring__helpers_8cpp_source.html":[1,0,0,10], +"wiring__helpers_8h.html":[1,0,0,11], +"wiring__helpers_8h.html#a37c83d7d3ac2abb00e8f9e86c1da52d3":[1,0,0,11,3], +"wiring__helpers_8h.html#a70ac1c40d730c9e0f9b93b1f4dd5f0f9":[1,0,0,11,0], +"wiring__helpers_8h.html#a8f7d5e59747355ce523001faddc7ada9":[1,0,0,11,2], +"wiring__helpers_8h.html#a99ed20d80aca90bb060c88019c5f739f":[1,0,0,11,4], +"wiring__helpers_8h.html#ae36e0604b36693bd720bffcf4145baf9":[1,0,0,11,1], +"wiring__helpers_8h_source.html":[1,0,0,11], +"ws__client_8cpp.html":[1,0,0,0,9], +"ws__client_8cpp.html#a4d8d7cfce2bd21646b059e9aa4d0349b":[1,0,0,0,9,1], +"ws__client_8cpp.html#a5e74f160471b58a262cceef5edaea7e0":[1,0,0,0,9,0], +"ws__client_8cpp_source.html":[1,0,0,0,9], +"ws__client_8h.html":[1,0,0,0,10], +"ws__client_8h.html#acdd867d72142510ce53521a63a062f9b":[1,0,0,0,10,1], +"ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba1f27ab35c30a3960dc1b8f11202c743d":[1,0,0,0,10,1,1], +"ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba519f950c18a0ec32082cf9984cd2b225":[1,0,0,0,10,1,0], +"ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba8ba3de7243211c98f5ec24395c73d65b":[1,0,0,0,10,1,3], +"ws__client_8h.html#acdd867d72142510ce53521a63a062f9bab4dbdd36e3f602f54d0024fd818e12d6":[1,0,0,0,10,1,2], +"ws__client_8h_source.html":[1,0,0,0,10] +}; diff --git a/docs/generated/docs/networking_8cpp.html b/docs/generated/docs/networking_8cpp.html new file mode 100644 index 000000000..0288b45e5 --- /dev/null +++ b/docs/generated/docs/networking_8cpp.html @@ -0,0 +1,265 @@ + + + + + + + +SensESP: src/net/networking.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          networking.cpp File Reference
          +
          +
          +
          #include "networking.h"
          +#include "sensesp.h"
          +#include "system/led_blinker.h"
          +
          +Include dependency graph for networking.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Macros

          #define WIFI_CONFIG_PORTAL_TIMEOUT   180
           
          + + + + + +

          +Functions

          void save_config_callback ()
           
          String get_property_row (String key, String title, bool readonly)
           
          + + + +

          +Variables

          bool should_save_config = false
           
          +

          Macro Definition Documentation

          + +

          ◆ WIFI_CONFIG_PORTAL_TIMEOUT

          + +
          +
          + + + + +
          #define WIFI_CONFIG_PORTAL_TIMEOUT   180
          +
          + +

          Definition at line 11 of file networking.cpp.

          + +
          +
          +

          Function Documentation

          + +

          ◆ get_property_row()

          + +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + +
          String get_property_row (String key,
          String title,
          bool readonly 
          )
          +
          + +

          Definition at line 132 of file networking.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + +
          + +
          +
          + +

          ◆ save_config_callback()

          + +
          +
          + + + + + + + +
          void save_config_callback ()
          +
          + +

          Definition at line 16 of file networking.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + + + + +
          + +
          +
          +

          Variable Documentation

          + +

          ◆ should_save_config

          + +
          +
          + + + + +
          bool should_save_config = false
          +
          + +

          Definition at line 14 of file networking.cpp.

          + +
          +
          +
          +
          + + + + diff --git a/docs/networking_8cpp.js b/docs/generated/docs/networking_8cpp.js similarity index 77% rename from docs/networking_8cpp.js rename to docs/generated/docs/networking_8cpp.js index 42e42cc18..6fd6ac424 100644 --- a/docs/networking_8cpp.js +++ b/docs/generated/docs/networking_8cpp.js @@ -1,6 +1,7 @@ var networking_8cpp = [ [ "WIFI_CONFIG_PORTAL_TIMEOUT", "networking_8cpp.html#a6beb3d9ab4141921e87c56b399230fce", null ], + [ "get_property_row", "networking_8cpp.html#a48cbc1e96bb919a4d4e7631d26744d13", null ], [ "save_config_callback", "networking_8cpp.html#a7930cb24915efc348611f4c48d1d5e4c", null ], [ "should_save_config", "networking_8cpp.html#ade4bb65788e7b6ea2d2e3e026baf7310", null ] ]; \ No newline at end of file diff --git a/docs/generated/docs/networking_8cpp__incl.map b/docs/generated/docs/networking_8cpp__incl.map new file mode 100644 index 000000000..6513bb08d --- /dev/null +++ b/docs/generated/docs/networking_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/networking_8cpp__incl.md5 b/docs/generated/docs/networking_8cpp__incl.md5 new file mode 100644 index 000000000..b578be797 --- /dev/null +++ b/docs/generated/docs/networking_8cpp__incl.md5 @@ -0,0 +1 @@ +7dcc97571fd5b4005189b6205a55eb1c \ No newline at end of file diff --git a/docs/generated/docs/networking_8cpp__incl.png b/docs/generated/docs/networking_8cpp__incl.png new file mode 100644 index 000000000..ef9d284ab Binary files /dev/null and b/docs/generated/docs/networking_8cpp__incl.png differ diff --git a/docs/generated/docs/networking_8cpp_a48cbc1e96bb919a4d4e7631d26744d13_icgraph.map b/docs/generated/docs/networking_8cpp_a48cbc1e96bb919a4d4e7631d26744d13_icgraph.map new file mode 100644 index 000000000..38d34cfad --- /dev/null +++ b/docs/generated/docs/networking_8cpp_a48cbc1e96bb919a4d4e7631d26744d13_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/networking_8cpp_a48cbc1e96bb919a4d4e7631d26744d13_icgraph.md5 b/docs/generated/docs/networking_8cpp_a48cbc1e96bb919a4d4e7631d26744d13_icgraph.md5 new file mode 100644 index 000000000..1ef8e3824 --- /dev/null +++ b/docs/generated/docs/networking_8cpp_a48cbc1e96bb919a4d4e7631d26744d13_icgraph.md5 @@ -0,0 +1 @@ +7fc8c1fc972189ea5473572099a1f2d8 \ No newline at end of file diff --git a/docs/generated/docs/networking_8cpp_a48cbc1e96bb919a4d4e7631d26744d13_icgraph.png b/docs/generated/docs/networking_8cpp_a48cbc1e96bb919a4d4e7631d26744d13_icgraph.png new file mode 100644 index 000000000..fa7beb707 Binary files /dev/null and b/docs/generated/docs/networking_8cpp_a48cbc1e96bb919a4d4e7631d26744d13_icgraph.png differ diff --git a/docs/generated/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.map b/docs/generated/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.map new file mode 100644 index 000000000..d9f3d684a --- /dev/null +++ b/docs/generated/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.md5 b/docs/generated/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.md5 new file mode 100644 index 000000000..0da00fa63 --- /dev/null +++ b/docs/generated/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.md5 @@ -0,0 +1 @@ +b6b59e2aa2524262c7125a8274a1a563 \ No newline at end of file diff --git a/docs/generated/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.png b/docs/generated/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.png new file mode 100644 index 000000000..703d733dc Binary files /dev/null and b/docs/generated/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.png differ diff --git a/docs/generated/docs/networking_8cpp_source.html b/docs/generated/docs/networking_8cpp_source.html new file mode 100644 index 000000000..e11b55c4f --- /dev/null +++ b/docs/generated/docs/networking_8cpp_source.html @@ -0,0 +1,317 @@ + + + + + + + +SensESP: src/net/networking.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          networking.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "networking.h"
          +
          2 
          +
          3 #include "sensesp.h"
          +
          4 #include "system/led_blinker.h"
          +
          5 
          +
          6 // Wifi config portal timeout (seconds). The smaller the value, the faster
          +
          7 // the device will attempt to reconnect. If set too small, it might
          +
          8 // become impossible to actually configure the Wifi settings in the captive
          +
          9 // portal.
          +
          10 #ifndef WIFI_CONFIG_PORTAL_TIMEOUT
          +
          11 #define WIFI_CONFIG_PORTAL_TIMEOUT 180
          +
          12 #endif
          +
          13 
          +
          14 bool should_save_config = false;
          +
          15 
          + +
          17 
          +
          18 Networking::Networking(String config_path, String ssid, String password,
          +
          19  String hostname)
          + + +
          22 
          +
          23  preset_ssid = ssid;
          +
          24  preset_password = password;
          +
          25  preset_hostname = hostname;
          +
          26 
          +
          27  if (!ssid.isEmpty()) {
          +
          28  debugI("Using hard-coded SSID %s and password", ssid.c_str());
          +
          29  this->ap_ssid = ssid;
          +
          30  this->ap_password = password;
          +
          31  } else {
          +
          32  load_configuration();
          +
          33  }
          +
          34  server = new AsyncWebServer(80);
          +
          35  dns = new DNSServer();
          +
          36  wifi_manager = new AsyncWiFiManager(server, dns);
          +
          37 }
          +
          38 
          + +
          40  if (WiFi.status() != WL_CONNECTED) {
          +
          41  // if connection is lost, simply restart
          +
          42  debugD("Wifi disconnected: restarting...");
          +
          43  ESP.restart();
          +
          44  }
          +
          45 }
          +
          46 
          +
          47 void Networking::setup(std::function<void(bool)> connection_cb) {
          +
          48  if (ap_ssid != "" && ap_password != "") {
          +
          49  setup_saved_ssid(connection_cb);
          +
          50  }
          +
          51  if (ap_ssid == "" && WiFi.status() != WL_CONNECTED) {
          +
          52  setup_wifi_manager(connection_cb);
          +
          53  }
          +
          54  app.onRepeat(1000, std::bind(&Networking::check_connection, this));
          +
          55 }
          +
          56 
          +
          57 void Networking::setup_saved_ssid(std::function<void(bool)> connection_cb) {
          +
          58  WiFi.begin(ap_ssid.c_str(), ap_password.c_str());
          +
          59 
          +
          60  uint32_t timer_start = millis();
          +
          61 
          +
          62  debugI("Connecting to wifi %s.", ap_ssid.c_str());
          +
          63  int printCounter = 0;
          +
          64  while (WiFi.status() != WL_CONNECTED &&
          +
          65  (millis() - timer_start) < 3 * 60 * 1000) {
          +
          66  delay(500);
          +
          67  if (printCounter % 4) {
          +
          68  debugI("Wifi status=%d, time=%d ms", WiFi.status(), 500 * printCounter);
          +
          69  }
          +
          70  printCounter++;
          +
          71  }
          +
          72 
          +
          73  if (WiFi.status() == WL_CONNECTED) {
          +
          74  debugI("Connected to wifi, SSID: %s (signal: %d)", WiFi.SSID().c_str(),
          +
          75  WiFi.RSSI());
          +
          76  debugI("IP address of Device: %s", WiFi.localIP().toString().c_str());
          +
          77  connection_cb(true);
          +
          78  WiFi.mode(WIFI_STA);
          +
          79  }
          +
          80 }
          +
          81 
          +
          82 void Networking::setup_wifi_manager(std::function<void(bool)> connection_cb) {
          +
          83  should_save_config = false;
          +
          84 
          +
          85  // set config save notify callback
          +
          86  wifi_manager->setSaveConfigCallback(save_config_callback);
          +
          87 
          +
          88  wifi_manager->setConfigPortalTimeout(WIFI_CONFIG_PORTAL_TIMEOUT);
          +
          89 
          +
          90 #ifdef SERIAL_DEBUG_DISABLED
          +
          91  wifi_manager->setDebugOutput(false);
          +
          92 #endif
          +
          93  AsyncWiFiManagerParameter custom_hostname("hostname",
          +
          94  "Set ESP Device custom hostname",
          +
          95  this->hostname->get().c_str(), 20);
          +
          96  wifi_manager->addParameter(&custom_hostname);
          +
          97 
          +
          98  // Create a unique SSID for configuring each SensESP Device
          +
          99  String config_ssid = this->hostname->get();
          +
          100  config_ssid = "Configure " + config_ssid;
          +
          101  const char* pconfig_ssid = config_ssid.c_str();
          +
          102 
          +
          103  if (!wifi_manager->autoConnect(pconfig_ssid)) {
          +
          104  debugE("Failed to connect to wifi and config timed out. Restarting...");
          +
          105  ESP.restart();
          +
          106  }
          +
          107 
          +
          108  debugI("Connected to wifi,");
          +
          109  debugI("IP address of Device: %s", WiFi.localIP().toString().c_str());
          +
          110  connection_cb(true);
          +
          111 
          +
          112  if (should_save_config) {
          +
          113  String new_hostname = custom_hostname.getValue();
          +
          114  debugI("Got new custom hostname: %s", new_hostname.c_str());
          +
          115  this->hostname->set(new_hostname);
          +
          116  this->ap_ssid = WiFi.SSID();
          +
          117  debugI("Got new SSID and password: %s", ap_ssid.c_str());
          +
          118  this->ap_password = WiFi.psk();
          + +
          120  debugW("Restarting in 500ms");
          +
          121  app.onDelay(500, []() { ESP.restart(); });
          +
          122  }
          +
          123 }
          +
          124 
          + +
          126 
          +
          127 static const char SCHEMA_PREFIX[] PROGMEM = R"({
          +
          128 "type": "object",
          +
          129 "properties": {
          +
          130 )";
          +
          131 
          +
          132 String get_property_row(String key, String title, bool readonly) {
          +
          133  String readonly_title = "";
          +
          134  String readonly_property = "";
          +
          135 
          +
          136  if (readonly) {
          +
          137  readonly_title = " (readonly)";
          +
          138  readonly_property = ",\"readOnly\":true";
          +
          139  }
          +
          140 
          +
          141  return "\"" + key + "\":{\"title\":\"" + title + readonly_title + "\"," +
          +
          142  "\"type\":\"string\"" + readonly_property + "}";
          +
          143 }
          +
          144 
          + +
          146  String schema;
          +
          147  // If hostname is not set by SensESPAppBuilder::set_hostname() in main.cpp,
          +
          148  // then preset_hostname will be "SensESP", and should not be read-only in the
          +
          149  // Config UI. If preset_hostname is not "SensESP", then it was set in
          +
          150  // main.cpp, so it should be read-only.
          +
          151  bool hostname_preset = preset_hostname != "SensESP";
          +
          152  bool wifi_preset = preset_ssid != "";
          +
          153  return String(FPSTR(SCHEMA_PREFIX)) +
          +
          154  get_property_row("hostname", "ESP device hostname", hostname_preset) +
          +
          155  "," +
          +
          156  get_property_row("ap_ssid", "Wifi Access Point SSID", wifi_preset) +
          +
          157  "," +
          +
          158  get_property_row("ap_password", "Wifi Access Point Password",
          +
          159  wifi_preset) +
          +
          160  "}}";
          +
          161 }
          +
          162 
          +
          163 void Networking::get_configuration(JsonObject& root) {
          +
          164  root["hostname"] = this->hostname->get();
          +
          165  root["ap_ssid"] = this->ap_ssid;
          +
          166  root["ap_password"] = this->ap_password;
          +
          167 }
          +
          168 
          +
          169 bool Networking::set_configuration(const JsonObject& config) {
          +
          170  if (!config.containsKey("hostname")) {
          +
          171  return false;
          +
          172  }
          +
          173 
          +
          174  if (preset_hostname == "SensESP") {
          +
          175  this->hostname->set(config["hostname"].as<String>());
          +
          176  }
          +
          177 
          +
          178  if (preset_ssid == "") {
          +
          179  debugW("Using saved SSID and password");
          +
          180  this->ap_ssid = config["ap_ssid"].as<String>();
          +
          181  this->ap_password = config["ap_password"].as<String>();
          +
          182  }
          +
          183  return true;
          +
          184 }
          +
          185 
          + +
          187  ap_ssid = preset_ssid;
          +
          188  ap_password = preset_password;
          +
          189 
          + +
          191  wifi_manager->resetSettings();
          +
          192 }
          +
          +
          +
          virtual void get_configuration(JsonObject &doc) override final
          Definition: networking.cpp:163
          +
          virtual String get_config_schema() override
          Definition: networking.cpp:145
          + +
          ObservableValue< String > * get_hostname()
          Definition: networking.cpp:125
          +
          void reset_settings()
          Definition: networking.cpp:186
          + +
          void save_config_callback()
          Definition: networking.cpp:16
          + +
          bool should_save_config
          Definition: networking.cpp:14
          +
          virtual void save_configuration()
          +
          String get_property_row(String key, String title, bool readonly)
          Definition: networking.cpp:132
          +
          Networking(String config_path, String ssid, String password, String hostname)
          Definition: networking.cpp:18
          +
          void check_connection()
          Definition: networking.cpp:39
          +
          const String config_path
          Definition: configurable.h:31
          +
          void setup(std::function< void(bool)> connection_cb)
          Definition: networking.cpp:47
          + +
          #define WIFI_CONFIG_PORTAL_TIMEOUT
          Definition: networking.cpp:11
          +
          virtual bool set_configuration(const JsonObject &config) override final
          Definition: networking.cpp:169
          +
          void set(const T &value)
          +
          ObservableValue< String > * hostname
          Definition: sensesp_app.cpp:56
          +
          ReactESP app
          + +
          void setup_saved_ssid(std::function< void(bool)> connection_cb)
          Definition: networking.cpp:57
          +
          void setup_wifi_manager(std::function< void(bool)> connection_cb)
          Definition: networking.cpp:82
          +
          virtual const T & get()
          Definition: valueproducer.h:27
          + + + + diff --git a/docs/generated/docs/networking_8h.html b/docs/generated/docs/networking_8h.html new file mode 100644 index 000000000..f1a3cc3f2 --- /dev/null +++ b/docs/generated/docs/networking_8h.html @@ -0,0 +1,160 @@ + + + + + + + +SensESP: src/net/networking.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          networking.h File Reference
          +
          +
          +
          #include "Arduino.h"
          +#include <ESPAsyncWebServer.h>
          +#include <ESPAsyncWiFiManager.h>
          +#include "system/configurable.h"
          +#include "system/observablevalue.h"
          +
          +Include dependency graph for networking.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  Networking
           
          +
          +
          + + + + diff --git a/docs/generated/docs/networking_8h__dep__incl.map b/docs/generated/docs/networking_8h__dep__incl.map new file mode 100644 index 000000000..6dc848ad2 --- /dev/null +++ b/docs/generated/docs/networking_8h__dep__incl.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/networking_8h__dep__incl.md5 b/docs/generated/docs/networking_8h__dep__incl.md5 new file mode 100644 index 000000000..5e52bd6a2 --- /dev/null +++ b/docs/generated/docs/networking_8h__dep__incl.md5 @@ -0,0 +1 @@ +c4ec54034daa0f0c830510f78b6247a3 \ No newline at end of file diff --git a/docs/generated/docs/networking_8h__dep__incl.png b/docs/generated/docs/networking_8h__dep__incl.png new file mode 100644 index 000000000..e83355e76 Binary files /dev/null and b/docs/generated/docs/networking_8h__dep__incl.png differ diff --git a/docs/generated/docs/networking_8h__incl.map b/docs/generated/docs/networking_8h__incl.map new file mode 100644 index 000000000..b3d0071db --- /dev/null +++ b/docs/generated/docs/networking_8h__incl.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/networking_8h__incl.md5 b/docs/generated/docs/networking_8h__incl.md5 new file mode 100644 index 000000000..8fe0f1606 --- /dev/null +++ b/docs/generated/docs/networking_8h__incl.md5 @@ -0,0 +1 @@ +d52b8bc73d93816577fc45ca251dfc53 \ No newline at end of file diff --git a/docs/generated/docs/networking_8h__incl.png b/docs/generated/docs/networking_8h__incl.png new file mode 100644 index 000000000..cec46599e Binary files /dev/null and b/docs/generated/docs/networking_8h__incl.png differ diff --git a/docs/generated/docs/networking_8h_source.html b/docs/generated/docs/networking_8h_source.html new file mode 100644 index 000000000..d4d8ed6ef --- /dev/null +++ b/docs/generated/docs/networking_8h_source.html @@ -0,0 +1,160 @@ + + + + + + + +SensESP: src/net/networking.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          networking.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _networking_H_
          +
          2 #define _networking_H_
          +
          3 
          +
          4 #include "Arduino.h"
          +
          5 
          +
          6 // Local WebServer used to serve the configuration portal
          +
          7 #include <ESPAsyncWebServer.h>
          +
          8 #include <ESPAsyncWiFiManager.h>
          +
          9 
          +
          10 #include "system/configurable.h"
          +
          11 #include "system/observablevalue.h"
          +
          12 
          +
          13 class Networking : public Configurable {
          +
          14  public:
          +
          15  Networking(String config_path, String ssid, String password, String hostname);
          +
          16  void setup(std::function<void(bool)> connection_cb);
          + +
          18  virtual void get_configuration(JsonObject& doc) override final;
          +
          19  virtual bool set_configuration(const JsonObject& config) override final;
          +
          20  virtual String get_config_schema() override;
          +
          21 
          +
          22  void reset_settings();
          +
          23 
          +
          24  protected:
          +
          25  void check_connection();
          +
          26  void setup_saved_ssid(std::function<void(bool)> connection_cb);
          +
          27  void setup_wifi_manager(std::function<void(bool)> connection_cb);
          +
          28 
          +
          29  private:
          +
          30  AsyncWebServer* server;
          +
          31  // FIXME: DNSServer and AsyncWiFiManager could be instantiated in
          +
          32  // respective methods to save some runtime memory
          +
          33  DNSServer* dns;
          +
          34  AsyncWiFiManager* wifi_manager;
          + +
          36  String ap_ssid = "";
          +
          37  String ap_password = "";
          +
          38  String preset_ssid = "";
          +
          39  String preset_password = "";
          +
          40  String preset_hostname = "";
          +
          41 };
          +
          42 
          +
          43 #endif
          +
          +
          +
          virtual void get_configuration(JsonObject &doc) override final
          Definition: networking.cpp:163
          +
          virtual String get_config_schema() override
          Definition: networking.cpp:145
          +
          ObservableValue< String > * get_hostname()
          Definition: networking.cpp:125
          +
          void reset_settings()
          Definition: networking.cpp:186
          + +
          Networking(String config_path, String ssid, String password, String hostname)
          Definition: networking.cpp:18
          +
          void check_connection()
          Definition: networking.cpp:39
          +
          const String config_path
          Definition: configurable.h:31
          +
          void setup(std::function< void(bool)> connection_cb)
          Definition: networking.cpp:47
          + +
          virtual bool set_configuration(const JsonObject &config) override final
          Definition: networking.cpp:169
          + +
          ObservableValue< String > * hostname
          Definition: sensesp_app.cpp:56
          + + +
          void setup_saved_ssid(std::function< void(bool)> connection_cb)
          Definition: networking.cpp:57
          +
          void setup_wifi_manager(std::function< void(bool)> connection_cb)
          Definition: networking.cpp:82
          + + + + diff --git a/docs/generated/docs/nmea__parser_8cpp.html b/docs/generated/docs/nmea__parser_8cpp.html new file mode 100644 index 000000000..28e16e6f1 --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp.html @@ -0,0 +1,806 @@ + + + + + + + +SensESP: src/system/nmea_parser.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          nmea_parser.cpp File Reference
          +
          +
          +
          #include "nmea_parser.h"
          +#include <RemoteDebug.h>
          +#include <stdlib.h>
          +#include <ctime>
          +#include "sensesp.h"
          +
          +Include dependency graph for nmea_parser.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Enumerations

          enum  GNSSQuality {
          +  no_gps, +gnss_fix, +dgnss_fix, +precise_gnss, +
          +  rtk_fixed_integer, +rtk_float, +estimated_mode, +manual_input, +
          +  simulator_mode, +error +
          + }
           
          + + + + + + + + + + + + + + + + + + + + + + + + + + + +

          +Functions

          void reconstruct_nmea_sentence (char *sentence, const char *buffer, int term_offsets[], int num_terms)
           
          bool parse_int (int *value, char *s)
           
          bool parse_float (float *value, char *s)
           
          bool parse_double (double *value, char *s)
           
          bool parse_latlon (double *value, char *s)
           
          bool parse_NS (double *value, char *s)
           
          bool parse_EW (double *value, char *s)
           
          bool parse_M (char *s)
           
          bool parse_AV (bool *is_valid, char *s)
           
          bool parse_PSTI030_mode (GNSSQuality *quality, char *s)
           
          bool parse_time (int *hour, int *minute, float *second, char *s)
           
          bool parse_date (int *year, int *month, int *day, char *s)
           
          void report_success (bool ok, const char *sentence)
           
          + + + +

          +Variables

          String gnssQualityStrings []
           
          +

          Enumeration Type Documentation

          + +

          ◆ GNSSQuality

          + +
          +
          + + + + +
          enum GNSSQuality
          +
          + + + + + + + + + + + +
          Enumerator
          no_gps 
          gnss_fix 
          dgnss_fix 
          precise_gnss 
          rtk_fixed_integer 
          rtk_float 
          estimated_mode 
          manual_input 
          simulator_mode 
          error 
          + +

          Definition at line 11 of file nmea_parser.cpp.

          + +
          +
          +

          Function Documentation

          + +

          ◆ parse_AV()

          + +
          +
          + + + + + + + + + + + + + + + + + + +
          bool parse_AV (bool * is_valid,
          char * s 
          )
          +
          + +

          Definition at line 113 of file nmea_parser.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + + + +
          + +
          +
          + +

          ◆ parse_date()

          + +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          bool parse_date (int * year,
          int * month,
          int * day,
          char * s 
          )
          +
          + +

          Definition at line 164 of file nmea_parser.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + + + +
          + +
          +
          + +

          ◆ parse_double()

          + +
          +
          + + + + + + + + + + + + + + + + + + +
          bool parse_double (double * value,
          char * s 
          )
          +
          + +

          Definition at line 67 of file nmea_parser.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + +
          + +
          +
          + +

          ◆ parse_EW()

          + +
          +
          + + + + + + + + + + + + + + + + + + +
          bool parse_EW (double * value,
          char * s 
          )
          +
          + +

          Definition at line 98 of file nmea_parser.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + + + + +
          + +
          +
          + +

          ◆ parse_float()

          + +
          +
          + + + + + + + + + + + + + + + + + + +
          bool parse_float (float * value,
          char * s 
          )
          +
          + +

          Definition at line 62 of file nmea_parser.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + + + + +
          + +
          +
          + +

          ◆ parse_int()

          + +
          +
          + + + + + + + + + + + + + + + + + + +
          bool parse_int (int * value,
          char * s 
          )
          +
          + +

          Definition at line 57 of file nmea_parser.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + + +
          + +
          +
          + +

          ◆ parse_latlon()

          + +
          +
          + + + + + + + + + + + + + + + + + + +
          bool parse_latlon (double * value,
          char * s 
          )
          +
          + +

          Definition at line 72 of file nmea_parser.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + + + + +
          + +
          +
          + +

          ◆ parse_M()

          + +
          +
          + + + + + + + + +
          bool parse_M (char * s)
          +
          + +

          Definition at line 111 of file nmea_parser.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + +
          + +
          +
          + +

          ◆ parse_NS()

          + +
          +
          + + + + + + + + + + + + + + + + + + +
          bool parse_NS (double * value,
          char * s 
          )
          +
          + +

          Definition at line 85 of file nmea_parser.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + + + + +
          + +
          +
          + +

          ◆ parse_PSTI030_mode()

          + +
          +
          + + + + + + + + + + + + + + + + + + +
          bool parse_PSTI030_mode (GNSSQualityquality,
          char * s 
          )
          +
          + +

          Definition at line 127 of file nmea_parser.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + + +
          + +
          +
          + +

          ◆ parse_time()

          + +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          bool parse_time (int * hour,
          int * minute,
          float * second,
          char * s 
          )
          +
          + +

          Definition at line 159 of file nmea_parser.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + + + + +
          + +
          +
          + +

          ◆ reconstruct_nmea_sentence()

          + +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          void reconstruct_nmea_sentence (char * sentence,
          const char * buffer,
          int term_offsets[],
          int num_terms 
          )
          +
          + +

          Definition at line 36 of file nmea_parser.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + +
          + +
          +
          + +

          ◆ report_success()

          + +
          +
          + + + + + + + + + + + + + + + + + + +
          void report_success (bool ok,
          const char * sentence 
          )
          +
          + +

          Definition at line 172 of file nmea_parser.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + + + + + + +
          + +
          +
          +

          Variable Documentation

          + +

          ◆ gnssQualityStrings

          + +
          +
          + + + + +
          String gnssQualityStrings[]
          +
          +Initial value:
          = {"no GPS",
          +
          "GNSS Fix",
          +
          "DGNSS fix",
          +
          "Precise GNSS",
          +
          "RTK fixed integer",
          +
          "RTK float",
          +
          "Estimated (DR) mode",
          +
          "Manual input",
          +
          "Simulator mode",
          +
          "Error"}
          +
          +

          Definition at line 24 of file nmea_parser.cpp.

          + +
          +
          +
          +
          + + + + diff --git a/docs/nmea__parser_8cpp.js b/docs/generated/docs/nmea__parser_8cpp.js similarity index 100% rename from docs/nmea__parser_8cpp.js rename to docs/generated/docs/nmea__parser_8cpp.js diff --git a/docs/generated/docs/nmea__parser_8cpp__incl.map b/docs/generated/docs/nmea__parser_8cpp__incl.map new file mode 100644 index 000000000..0f06a6c7d --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp__incl.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/nmea__parser_8cpp__incl.md5 b/docs/generated/docs/nmea__parser_8cpp__incl.md5 new file mode 100644 index 000000000..c8d688432 --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp__incl.md5 @@ -0,0 +1 @@ +552934c180e9fe4384eb098541a1dae3 \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8cpp__incl.png b/docs/generated/docs/nmea__parser_8cpp__incl.png new file mode 100644 index 000000000..22172225c Binary files /dev/null and b/docs/generated/docs/nmea__parser_8cpp__incl.png differ diff --git a/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.map b/docs/generated/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.map similarity index 100% rename from docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.map rename to docs/generated/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.map diff --git a/docs/generated/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.md5 b/docs/generated/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.md5 new file mode 100644 index 000000000..06ce329a4 --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.md5 @@ -0,0 +1 @@ +2f9c60cf78873b977e301a9b2cbcf332 \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.png b/docs/generated/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.png new file mode 100644 index 000000000..41a2c851f Binary files /dev/null and b/docs/generated/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.png differ diff --git a/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.map b/docs/generated/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.map similarity index 100% rename from docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.map rename to docs/generated/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.map diff --git a/docs/generated/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.md5 b/docs/generated/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.md5 new file mode 100644 index 000000000..c1199d6a2 --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.md5 @@ -0,0 +1 @@ +25f006aee25fa7e86a8f939fc658c57d \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.png b/docs/generated/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.png new file mode 100644 index 000000000..57abdbd0d Binary files /dev/null and b/docs/generated/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.png differ diff --git a/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.map b/docs/generated/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.map similarity index 100% rename from docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.map rename to docs/generated/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.map diff --git a/docs/generated/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.md5 b/docs/generated/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.md5 new file mode 100644 index 000000000..513bfb68e --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.md5 @@ -0,0 +1 @@ +811c6a85c2d1c7949d261557fbc247ad \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.png b/docs/generated/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.png new file mode 100644 index 000000000..738a36b18 Binary files /dev/null and b/docs/generated/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.png differ diff --git a/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.map b/docs/generated/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.map similarity index 100% rename from docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.map rename to docs/generated/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.map diff --git a/docs/generated/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.md5 b/docs/generated/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.md5 new file mode 100644 index 000000000..bf9b83409 --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.md5 @@ -0,0 +1 @@ +102820c69b2a2de34ddc1bbc1fe2fe6a \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.png b/docs/generated/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.png new file mode 100644 index 000000000..475f84281 Binary files /dev/null and b/docs/generated/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.png differ diff --git a/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.map b/docs/generated/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.map similarity index 100% rename from docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.map rename to docs/generated/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.map diff --git a/docs/generated/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.md5 b/docs/generated/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.md5 new file mode 100644 index 000000000..8c2cd9a40 --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.md5 @@ -0,0 +1 @@ +1f8e2913cc74b07f3fcb9a2a41757fb9 \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.png b/docs/generated/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.png new file mode 100644 index 000000000..58f76508d Binary files /dev/null and b/docs/generated/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.png differ diff --git a/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.map b/docs/generated/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.map similarity index 100% rename from docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.map rename to docs/generated/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.map diff --git a/docs/generated/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.md5 b/docs/generated/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.md5 new file mode 100644 index 000000000..7084dbab8 --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.md5 @@ -0,0 +1 @@ +3401d6d7be605585adf0aface6002330 \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.png b/docs/generated/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.png new file mode 100644 index 000000000..9955026ef Binary files /dev/null and b/docs/generated/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.png differ diff --git a/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.map b/docs/generated/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.map similarity index 100% rename from docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.map rename to docs/generated/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.map diff --git a/docs/generated/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.md5 b/docs/generated/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.md5 new file mode 100644 index 000000000..9ef40f4af --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.md5 @@ -0,0 +1 @@ +d174ebaa86182a27f1983a4d522c055e \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.png b/docs/generated/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.png new file mode 100644 index 000000000..c3f289e9f Binary files /dev/null and b/docs/generated/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.png differ diff --git a/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.map b/docs/generated/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.map similarity index 100% rename from docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.map rename to docs/generated/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.map diff --git a/docs/generated/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.md5 b/docs/generated/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.md5 new file mode 100644 index 000000000..b55ae1896 --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.md5 @@ -0,0 +1 @@ +c9655fdd77cd7548d4cbd1cc09a1ca1e \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.png b/docs/generated/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.png new file mode 100644 index 000000000..a8df606e3 Binary files /dev/null and b/docs/generated/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.png differ diff --git a/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.map b/docs/generated/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.map similarity index 100% rename from docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.map rename to docs/generated/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.map diff --git a/docs/generated/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.md5 b/docs/generated/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.md5 new file mode 100644 index 000000000..8bf537b92 --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.md5 @@ -0,0 +1 @@ +3a07facf50e2cf49b91b845aa34f50c6 \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.png b/docs/generated/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.png new file mode 100644 index 000000000..2a54467e4 Binary files /dev/null and b/docs/generated/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.png differ diff --git a/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.map b/docs/generated/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.map similarity index 100% rename from docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.map rename to docs/generated/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.map diff --git a/docs/generated/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.md5 b/docs/generated/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.md5 new file mode 100644 index 000000000..fcd8dee7d --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.md5 @@ -0,0 +1 @@ +998687aebd6869906be6d13ebb8d43dd \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.png b/docs/generated/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.png new file mode 100644 index 000000000..5b8a4e2c4 Binary files /dev/null and b/docs/generated/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.png differ diff --git a/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.map b/docs/generated/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.map similarity index 100% rename from docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.map rename to docs/generated/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.map diff --git a/docs/generated/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.md5 b/docs/generated/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.md5 new file mode 100644 index 000000000..4757a221b --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.md5 @@ -0,0 +1 @@ +2aa7cd18f7ff754c9b9b39ad1b63b408 \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.png b/docs/generated/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.png new file mode 100644 index 000000000..4c387bd50 Binary files /dev/null and b/docs/generated/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.png differ diff --git a/docs/nmea__parser_8cpp_af394f12d9ff6fb97e4c158dac1eb6dc0_icgraph.map b/docs/generated/docs/nmea__parser_8cpp_af394f12d9ff6fb97e4c158dac1eb6dc0_icgraph.map similarity index 100% rename from docs/nmea__parser_8cpp_af394f12d9ff6fb97e4c158dac1eb6dc0_icgraph.map rename to docs/generated/docs/nmea__parser_8cpp_af394f12d9ff6fb97e4c158dac1eb6dc0_icgraph.map diff --git a/docs/nmea__parser_8cpp_af394f12d9ff6fb97e4c158dac1eb6dc0_icgraph.md5 b/docs/generated/docs/nmea__parser_8cpp_af394f12d9ff6fb97e4c158dac1eb6dc0_icgraph.md5 similarity index 100% rename from docs/nmea__parser_8cpp_af394f12d9ff6fb97e4c158dac1eb6dc0_icgraph.md5 rename to docs/generated/docs/nmea__parser_8cpp_af394f12d9ff6fb97e4c158dac1eb6dc0_icgraph.md5 diff --git a/docs/generated/docs/nmea__parser_8cpp_af394f12d9ff6fb97e4c158dac1eb6dc0_icgraph.png b/docs/generated/docs/nmea__parser_8cpp_af394f12d9ff6fb97e4c158dac1eb6dc0_icgraph.png new file mode 100644 index 000000000..f56353d2c Binary files /dev/null and b/docs/generated/docs/nmea__parser_8cpp_af394f12d9ff6fb97e4c158dac1eb6dc0_icgraph.png differ diff --git a/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.map b/docs/generated/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.map similarity index 76% rename from docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.map rename to docs/generated/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.map index 2005d22b5..f3e106a20 100644 --- a/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.map +++ b/docs/generated/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.map @@ -3,7 +3,7 @@ - - - + + + diff --git a/docs/generated/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.md5 b/docs/generated/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.md5 new file mode 100644 index 000000000..5971b64cc --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.md5 @@ -0,0 +1 @@ +7b3c8a234673c350f2c90d05e8e72f09 \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.png b/docs/generated/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.png new file mode 100644 index 000000000..e6f18fb86 Binary files /dev/null and b/docs/generated/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.png differ diff --git a/docs/generated/docs/nmea__parser_8cpp_source.html b/docs/generated/docs/nmea__parser_8cpp_source.html new file mode 100644 index 000000000..27b237f44 --- /dev/null +++ b/docs/generated/docs/nmea__parser_8cpp_source.html @@ -0,0 +1,822 @@ + + + + + + + +SensESP: src/system/nmea_parser.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          nmea_parser.cpp
          +
          +
          +Go to the documentation of this file.
          1 
          +
          2 #include "nmea_parser.h"
          +
          3 
          +
          4 #include <RemoteDebug.h>
          +
          5 #include <stdlib.h>
          +
          6 
          +
          7 #include <ctime>
          +
          8 
          +
          9 #include "sensesp.h"
          +
          10 
          + + + + + + + + + + +
          21  error
          +
          22 };
          +
          23 
          +
          24 String gnssQualityStrings[] = {"no GPS",
          +
          25  "GNSS Fix",
          +
          26  "DGNSS fix",
          +
          27  "Precise GNSS",
          +
          28  "RTK fixed integer",
          +
          29  "RTK float",
          +
          30  "Estimated (DR) mode",
          +
          31  "Manual input",
          +
          32  "Simulator mode",
          +
          33  "Error"};
          +
          34 
          +
          35 // reconstruct the original NMEA sentence for debugging purposes
          +
          36 void reconstruct_nmea_sentence(char* sentence, const char* buffer,
          +
          37  int term_offsets[], int num_terms) {
          +
          38  // get the total length of the sentence
          +
          39  int last_term_loc = term_offsets[num_terms - 1];
          +
          40  int last_term_len = strlen(buffer + term_offsets[num_terms - 1]);
          +
          41  // include the final \0
          +
          42  int sentence_len = last_term_loc + last_term_len + 1;
          +
          43 
          +
          44  // beginning $
          +
          45  sentence[0] = '$';
          +
          46  // copy the buffer contents
          +
          47  memcpy(sentence + 1, buffer, sentence_len);
          +
          48 
          +
          49  // fill in the gaps with commas
          +
          50  for (int i = 1; i < num_terms - 1; i++) {
          +
          51  sentence[term_offsets[i]] = ',';
          +
          52  }
          +
          53  // the final gap has an asterisk
          +
          54  sentence[term_offsets[num_terms - 1]] = '*';
          +
          55 }
          +
          56 
          +
          57 bool parse_int(int* value, char* s) {
          +
          58  int retval = sscanf(s, "%d", value);
          +
          59  return retval == 1;
          +
          60 }
          +
          61 
          +
          62 bool parse_float(float* value, char* s) {
          +
          63  int retval = sscanf(s, "%f", value);
          +
          64  return retval == 1;
          +
          65 }
          +
          66 
          +
          67 bool parse_double(double* value, char* s) {
          +
          68  int retval = sscanf(s, "%lf", value);
          +
          69  return retval == 1;
          +
          70 }
          +
          71 
          +
          72 bool parse_latlon(double* value, char* s) {
          +
          73  double degmin;
          +
          74  int retval = sscanf(s, "%lf", &degmin);
          +
          75  if (retval == 1) {
          +
          76  int degrees = degmin / 100;
          +
          77  double minutes = degmin - 100 * degrees;
          +
          78  *value = degrees + minutes / 60;
          +
          79  return true;
          +
          80  } else {
          +
          81  return false;
          +
          82  }
          +
          83 }
          +
          84 
          +
          85 bool parse_NS(double* value, char* s) {
          +
          86  switch (*s) {
          +
          87  case 'N':
          +
          88  break;
          +
          89  case 'S':
          +
          90  *value *= 1;
          +
          91  break;
          +
          92  default:
          +
          93  return false;
          +
          94  }
          +
          95  return true;
          +
          96 }
          +
          97 
          +
          98 bool parse_EW(double* value, char* s) {
          +
          99  switch (*s) {
          +
          100  case 'E':
          +
          101  break;
          +
          102  case 'W':
          +
          103  *value *= 1;
          +
          104  break;
          +
          105  default:
          +
          106  return false;
          +
          107  }
          +
          108  return true;
          +
          109 }
          +
          110 
          +
          111 bool parse_M(char* s) { return (*s == 'M'); }
          +
          112 
          +
          113 bool parse_AV(bool* is_valid, char* s) {
          +
          114  switch (*s) {
          +
          115  case 'A':
          +
          116  *is_valid = true;
          +
          117  break;
          +
          118  case 'V':
          +
          119  *is_valid = false;
          +
          120  break;
          +
          121  default:
          +
          122  return false;
          +
          123  }
          +
          124  return true;
          +
          125 }
          +
          126 
          +
          127 bool parse_PSTI030_mode(GNSSQuality* quality, char* s) {
          +
          128  switch (*s) {
          +
          129  case 'N':
          +
          130  *quality = GNSSQuality::no_gps;
          +
          131  break;
          +
          132  case 'A':
          +
          133  *quality = GNSSQuality::gnss_fix;
          +
          134  break;
          +
          135  case 'D':
          +
          136  *quality = GNSSQuality::dgnss_fix;
          +
          137  break;
          +
          138  case 'E':
          +
          139  *quality = GNSSQuality::estimated_mode;
          +
          140  break;
          +
          141  case 'M':
          +
          142  *quality = GNSSQuality::manual_input;
          +
          143  break;
          +
          144  case 'S':
          +
          145  *quality = GNSSQuality::simulator_mode;
          +
          146  break;
          +
          147  case 'F':
          +
          148  *quality = GNSSQuality::rtk_float;
          +
          149  break;
          +
          150  case 'R':
          + +
          152  break;
          +
          153  default:
          +
          154  return false;
          +
          155  }
          +
          156  return true;
          +
          157 }
          +
          158 
          +
          159 bool parse_time(int* hour, int* minute, float* second, char* s) {
          +
          160  int retval = sscanf(s, "%2d%2d%f", hour, minute, second);
          +
          161  return retval == 3;
          +
          162 }
          +
          163 
          +
          164 bool parse_date(int* year, int* month, int* day, char* s) {
          +
          165  int retval = sscanf(s, "%2d%2d%2d", day, month, year);
          +
          166  // date expressed as C struct tm
          +
          167  *year += 100;
          +
          168  *month -= 1;
          +
          169  return retval == 3;
          +
          170 }
          +
          171 
          +
          172 void report_success(bool ok, const char* sentence) {
          +
          173  if (!ok) {
          +
          174  debugI("Failed to parse %s", sentence);
          +
          175  return;
          +
          176  } else {
          +
          177  debugD("Parsed sentence %s", sentence);
          +
          178  }
          +
          179 }
          +
          180 
          +
          181 void GPGGASentenceParser::parse(char* buffer, int term_offsets[],
          +
          182  int num_terms) {
          +
          183  bool ok = true;
          +
          184 
          +
          185  int hour;
          +
          186  int minute;
          +
          187  float second;
          +
          188  Position position;
          +
          189  int quality;
          +
          190  int num_satellites;
          +
          191  float horizontal_dilution;
          +
          192  float geoidal_separation;
          +
          193  float dgps_age;
          +
          194  bool dgps_age_defined = false;
          +
          195  int dgps_id;
          +
          196  bool dgps_id_defined = false;
          +
          197 
          +
          198  // eg3. $GPGGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh
          +
          199  // 1 = UTC of Position
          +
          200  ok &= parse_time(&hour, &minute, &second, buffer + term_offsets[1]);
          +
          201  // 2 = Latitude
          +
          202  ok &= parse_latlon(&position.latitude, buffer + term_offsets[2]);
          +
          203  // 3 = N or S
          +
          204  ok &= parse_NS(&position.latitude, buffer + term_offsets[3]);
          +
          205  // 4 = Longitude
          +
          206  ok &= parse_latlon(&position.longitude, buffer + term_offsets[4]);
          +
          207  // 5 = E or W
          +
          208  ok &= parse_EW(&position.longitude, buffer + term_offsets[5]);
          +
          209  // 6 = GPS quality indicator (0=invalid; 1=GPS fix; 2=Diff. GPS fix)
          +
          210  ok &= parse_int(&quality, buffer + term_offsets[6]);
          +
          211  // 7 = Number of satellites in use [not those in view]
          +
          212  ok &= parse_int(&num_satellites, buffer + term_offsets[7]);
          +
          213  // 8 = Horizontal dilution of position
          +
          214  ok &= parse_float(&horizontal_dilution, buffer + term_offsets[8]);
          +
          215  // 9 = Antenna altitude above/below mean sea level (geoid)
          +
          216  ok &= parse_float(&position.altitude, buffer + term_offsets[9]);
          +
          217  // 10 = Meters (Antenna height unit)
          +
          218  ok &= parse_M(buffer + term_offsets[10]);
          +
          219  // 11 = Geoidal separation (Diff. between WGS-84 earth ellipsoid and
          +
          220  // mean sea level. -=geoid is below WGS-84 ellipsoid)
          +
          221  ok &= parse_float(&geoidal_separation, buffer + term_offsets[11]);
          +
          222  // 12 = Meters (Units of geoidal separation)
          +
          223  ok &= parse_M(buffer + term_offsets[12]);
          +
          224  // 13 = Age in seconds since last update from diff. reference station
          +
          225  if (*(buffer + term_offsets[13]) != 0) {
          +
          226  ok &= parse_float(&dgps_age, buffer + term_offsets[13]);
          +
          227  dgps_age_defined = true;
          +
          228  }
          +
          229  // 14 = Diff. reference station ID#
          +
          230  if (*(buffer + term_offsets[14]) != 0) {
          +
          231  ok &= parse_int(&dgps_id, buffer + term_offsets[14]);
          +
          232  dgps_id_defined = true;
          +
          233  }
          +
          234  // 15 = Checksum
          +
          235  // (validated already earlier)
          +
          236 
          +
          237  report_success(ok, sentence());
          +
          238  if (!ok) {
          +
          239  return;
          +
          240  }
          +
          241 
          +
          242  // notify relevant observers
          +
          243 
          +
          244  nmea_data->position.set(position);
          + +
          246  nmea_data->num_satellites.set(num_satellites);
          +
          247  nmea_data->horizontal_dilution.set(horizontal_dilution);
          +
          248  nmea_data->geoidal_separation.set(geoidal_separation);
          +
          249  if (dgps_age_defined) {
          +
          250  nmea_data->dgps_age.set(dgps_age);
          +
          251  }
          +
          252  if (dgps_id_defined) {
          +
          253  nmea_data->dgps_id.set(dgps_id);
          +
          254  }
          +
          255 }
          +
          256 
          +
          257 void GPGLLSentenceParser::parse(char* buffer, int term_offsets[],
          +
          258  int num_terms) {
          +
          259  bool ok = true;
          +
          260 
          +
          261  Position position;
          +
          262 
          +
          263  // eg3. $GPGLL,5133.81,N,00042.25,W*75
          +
          264  // 1 5133.81 Current latitude
          +
          265  ok &= parse_latlon(&position.latitude, buffer + term_offsets[1]);
          +
          266  // 2 N North/South
          +
          267  ok &= parse_NS(&position.latitude, buffer + term_offsets[2]);
          +
          268  // 3 00042.25 Current longitude
          +
          269  ok &= parse_latlon(&position.longitude, buffer + term_offsets[3]);
          +
          270  // 4 W East/West
          +
          271  ok &= parse_EW(&position.longitude, buffer + term_offsets[4]);
          +
          272 
          +
          273  report_success(ok, sentence());
          +
          274  if (!ok) {
          +
          275  return;
          +
          276  }
          +
          277 
          +
          278  position.altitude = -99999;
          +
          279 
          +
          280  // notify relevant observers
          +
          281 
          +
          282  nmea_data->position.set(position);
          +
          283 }
          +
          284 
          +
          285 void GPRMCSentenceParser::parse(char* buffer, int term_offsets[],
          +
          286  int num_terms) {
          +
          287  bool ok = true;
          +
          288 
          +
          289  struct tm time;
          +
          290  float second;
          +
          291  bool is_valid;
          +
          292  Position position;
          +
          293  float speed;
          +
          294  float true_course;
          +
          295  double variation;
          +
          296  bool variation_defined = false;
          +
          297 
          +
          298  // eg3. $GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,130694,004.2,W*70
          +
          299  // 1 220516 Time Stamp
          +
          300  ok &= parse_time(&time.tm_hour, &time.tm_min, &second,
          +
          301  buffer + term_offsets[1]);
          +
          302  // 2 A validity - A-ok, V-invalid
          +
          303  ok &= parse_AV(&is_valid, buffer + term_offsets[2]);
          +
          304  // 3 5133.82 current Latitude
          +
          305  ok &= parse_latlon(&position.latitude, buffer + term_offsets[3]);
          +
          306  // 4 N North/South
          +
          307  ok &= parse_NS(&position.latitude, buffer + term_offsets[4]);
          +
          308  // 5 00042.24 current Longitude
          +
          309  ok &= parse_latlon(&position.longitude, buffer + term_offsets[5]);
          +
          310  // 6 W East/West
          +
          311  ok &= parse_EW(&position.longitude, buffer + term_offsets[6]);
          +
          312  // 7 173.8 Speed in knots
          +
          313  ok &= parse_float(&speed, buffer + term_offsets[7]);
          +
          314  // 8 231.8 True course
          +
          315  ok &= parse_float(&true_course, buffer + term_offsets[8]);
          +
          316  // 9 130694 Date Stamp
          +
          317  ok &= parse_date(&time.tm_year, &time.tm_mon, &time.tm_mday,
          +
          318  buffer + term_offsets[9]);
          +
          319  // 10 004.2 Variation
          +
          320  if (*(buffer + term_offsets[10]) != 0) {
          +
          321  ok &= parse_double(&variation, buffer + term_offsets[10]);
          +
          322  }
          +
          323  // 11 W East/West
          +
          324  if (*(buffer + term_offsets[11]) != 0) {
          +
          325  ok &= parse_EW(&variation, buffer + term_offsets[11]);
          +
          326  variation_defined = true;
          +
          327  }
          +
          328 
          +
          329  report_success(ok, sentence());
          +
          330  if (!ok) {
          +
          331  return;
          +
          332  }
          +
          333 
          +
          334  position.altitude = -99999;
          +
          335  time.tm_sec = (int)second;
          +
          336  time.tm_isdst = 0;
          +
          337 
          +
          338  // notify relevant observers
          +
          339 
          +
          340  if (is_valid) {
          +
          341  nmea_data->position.set(position);
          +
          342  nmea_data->datetime.set(mktime(&time));
          +
          343  nmea_data->speed.set(1852. * speed / 3600.);
          +
          344  nmea_data->true_course.set(2 * PI * true_course / 360.);
          +
          345  if (variation_defined) {
          +
          346  nmea_data->variation.set(2 * PI * variation / 360.);
          +
          347  }
          +
          348  }
          +
          349 }
          +
          350 
          + +
          352  char* buffer, int term_offsets[], int num_terms,
          +
          353  std::map<String, SentenceParser*>& sentence_parsers) {
          +
          354  bool ok = true;
          +
          355  int subsentence;
          +
          356 
          +
          357  ok &= parse_int(&subsentence, buffer + term_offsets[1]);
          +
          358 
          +
          359  report_success(ok, sentence());
          +
          360  if (!ok) {
          +
          361  return;
          +
          362  }
          +
          363 
          +
          364  switch (subsentence) {
          +
          365  case 30:
          +
          366  sentence_parsers["PSTI,030"]->parse(buffer, term_offsets, num_terms);
          +
          367  break;
          +
          368  case 32:
          +
          369  sentence_parsers["PSTI,032"]->parse(buffer, term_offsets, num_terms);
          +
          370  break;
          +
          371  }
          +
          372 }
          +
          373 
          +
          374 void PSTI030SentenceParser::parse(char* buffer, int term_offsets[],
          +
          375  int num_terms) {
          +
          376  bool ok = true;
          +
          377 
          +
          378  struct tm time;
          +
          379  float second;
          +
          380  bool is_valid;
          +
          381  Position position;
          +
          382  ENUVector velocity;
          +
          383  GNSSQuality quality;
          +
          384  float rtk_age;
          +
          385  float rtk_ratio;
          +
          386 
          +
          387  // Example:
          +
          388  // $PSTI,030,044606.000,A,2447.0924110,N,12100.5227860,E,103.323,0.00,0.00,0.00,180915,R,1.2,4.2*02
          +
          389 
          +
          390  // note: term offsets are one larger than in the reference because
          +
          391  // the subsentence number is at offset 1
          +
          392 
          +
          393  // Field Name Example Description
          +
          394  // 1 UTC time 044606.000 UTC time in hhmmss.sss format (000000.00 ~
          +
          395  // 235959.999)
          +
          396  ok &= parse_time(&time.tm_hour, &time.tm_min, &second,
          +
          397  buffer + term_offsets[2]);
          +
          398  // 2 Status A Status
          +
          399  // ‘V’ = Navigation receiver warning
          +
          400  // ‘A’ = Data Valid
          +
          401  ok &= parse_AV(&is_valid, buffer + term_offsets[3]);
          +
          402  // 3 Latitude 2447.0924110 Latitude in dddmm.mmmmmmm format
          +
          403  // Leading zeros transmitted
          +
          404  ok &= parse_latlon(&position.latitude, buffer + term_offsets[4]);
          +
          405  // 4 N/S indicator N Latitude hemisphere indicator
          +
          406  // ‘N’ = North
          +
          407  // ‘S’ = South
          +
          408  ok &= parse_NS(&position.latitude, buffer + term_offsets[5]);
          +
          409  // 5 Longitude 12100.5227860 Longitude in dddmm.mmmmmmm format
          +
          410  // Leading zeros transmitted
          +
          411  ok &= parse_latlon(&position.longitude, buffer + term_offsets[6]);
          +
          412  // 6 E/W Indicator E Longitude hemisphere indicator
          +
          413  // 'E' = East
          +
          414  // 'W' = West
          +
          415  ok &= parse_EW(&position.longitude, buffer + term_offsets[7]);
          +
          416  // 7 Altitude 103.323 mean sea level (geoid), (‐9999.999 ~ 17999.999)
          +
          417  ok &= parse_float(&position.altitude, buffer + term_offsets[8]);
          +
          418  // 8 East Velocity 0.00 ‘East’ component of ENU velocity (m/s)
          +
          419  ok &= parse_float(&velocity.east, buffer + term_offsets[9]);
          +
          420  // 9 North Velocity 0.00 ‘North’ component of ENU velocity (m/s)
          +
          421  ok &= parse_float(&velocity.north, buffer + term_offsets[10]);
          +
          422  // 10 Up Velocity 0.00 ‘Up’ component of ENU velocity (m/s)
          +
          423  ok &= parse_float(&velocity.up, buffer + term_offsets[11]);
          +
          424  // 11 UTC Date 180915 UTC date of position fix, ddmmyy format
          +
          425  ok &= parse_date(&time.tm_year, &time.tm_mon, &time.tm_mday,
          +
          426  buffer + term_offsets[12]);
          +
          427  // 12 Mode indicator R Mode indicator
          +
          428  // ‘N’ = Data not valid
          +
          429  // ‘A’ = Autonomous mode
          +
          430  // ‘D’ = Differential mode
          +
          431  // ‘E’ = Estimated (dead reckoning) mode
          +
          432  // ‘M’ = Manual input mode
          +
          433  // ‘S’ = Simulator mode
          +
          434  // ‘F’ = Float RTK. Satellite system used in RTK mode, floating
          +
          435  // integers
          +
          436  // ‘R’ = Real Time Kinematic. System used in RTK mode with fixed
          +
          437  // integers
          +
          438  ok &= parse_PSTI030_mode(&quality, buffer + term_offsets[13]);
          +
          439  // 13 RTK Age 1.2 Age of differential
          +
          440  ok &= parse_float(&rtk_age, buffer + term_offsets[14]);
          +
          441  // 14 RTK Ratio 4.2 AR ratio factor for validation
          +
          442  ok &= parse_float(&rtk_ratio, buffer + term_offsets[15]);
          +
          443 
          +
          444  report_success(ok, sentence());
          +
          445  if (!ok) {
          +
          446  return;
          +
          447  }
          +
          448 
          +
          449  time.tm_sec = (int)second;
          +
          450  time.tm_isdst = 0;
          +
          451 
          +
          452  // notify relevant observers
          +
          453 
          + +
          455  nmea_data->rtk_age.set(rtk_age);
          +
          456  nmea_data->rtk_ratio.set(rtk_ratio);
          +
          457 
          +
          458  if (is_valid) {
          +
          459  nmea_data->position.set(position);
          +
          460  nmea_data->datetime.set(mktime(&time));
          +
          461  nmea_data->enu_velocity.set(velocity);
          +
          462  }
          +
          463 }
          +
          464 
          +
          465 void PSTI032SentenceParser::parse(char* buffer, int term_offsets[],
          +
          466  int num_terms) {
          +
          467  bool ok = true;
          +
          468 
          +
          469  struct tm time;
          +
          470  float second;
          +
          471  bool is_valid = false;
          +
          472  ENUVector projection;
          +
          473  GNSSQuality quality;
          +
          474  float baseline_length;
          +
          475  float baseline_course;
          +
          476 
          +
          477  char reconstruction[INPUT_BUFFER_LENGTH];
          +
          478  reconstruct_nmea_sentence(reconstruction, buffer, term_offsets, num_terms);
          +
          479  debugD("%s", reconstruction);
          +
          480 
          +
          481  // Example:
          +
          482  // $PSTI,032,041457.000,170316,A,R,0.603,‐0.837,‐0.089,1.036,144.22,,,,,*30
          +
          483 
          +
          484  // note: term offsets are one larger than in the reference because
          +
          485  // the subsentence number is at offset 1
          +
          486 
          +
          487  // Field Name Example Description
          +
          488  // 1 UTC time 041457.000 UTC time in hhmmss.sss format
          +
          489  // (000000.000~235959.999)
          +
          490  ok &= parse_time(&time.tm_hour, &time.tm_min, &second,
          +
          491  buffer + term_offsets[2]);
          +
          492  // 2 UTC Date 170316 UTC date of position fix, ddmmyy format
          +
          493  ok &= parse_date(&time.tm_year, &time.tm_mon, &time.tm_mday,
          +
          494  buffer + term_offsets[3]);
          +
          495  // 3 Status A
          +
          496  // Status
          +
          497  // ‘V’ = Void
          +
          498  // ‘A’ = Active
          +
          499  ok &= parse_AV(&is_valid, buffer + term_offsets[4]);
          +
          500  if (is_valid) {
          +
          501  // 4 Mode indicator R
          +
          502  // Mode indicator
          +
          503  // ‘F’ = Float RTK. System used in RTK mode with float ambiguity
          +
          504  // ‘R’ = Real Time Kinematic. System used in RTK mode with fixed
          +
          505  // ambiguity
          +
          506  ok &= parse_PSTI030_mode(&quality, buffer + term_offsets[5]);
          +
          507  // 5 East‐projection of
          +
          508  // baseline 0.603 East‐projection of baseline, meters
          +
          509  ok &= parse_float(&projection.east, buffer + term_offsets[6]);
          +
          510  // 6 North‐projection of
          +
          511  // baseline ‐0.837 North‐projection of baseline, meters
          +
          512  ok &= parse_float(&projection.north, buffer + term_offsets[7]);
          +
          513  // 7 Up‐projection of
          +
          514  // baseline ‐0.089 Up‐projection of baseline, meters
          +
          515  ok &= parse_float(&projection.up, buffer + term_offsets[8]);
          +
          516  // 8 Baseline length 1.036 Baseline length, meters
          +
          517  ok &= parse_float(&baseline_length, buffer + term_offsets[9]);
          +
          518  // 9 Baseline course 144.22
          +
          519  // Baseline course (angle between baseline vector and north
          +
          520  // direction), degrees
          +
          521  ok &= parse_float(&baseline_course, buffer + term_offsets[10]);
          +
          522  // 10 Reserve Reserve
          +
          523  // 11 Reserve Reserve
          +
          524  // 12 Reserve Reserve
          +
          525  // 13 Reserve Reserve
          +
          526  // 14 Reserve Reserve
          +
          527  }
          +
          528 
          +
          529  report_success(ok, sentence());
          +
          530  if (!ok) {
          +
          531  return;
          +
          532  }
          +
          533 
          +
          534  time.tm_sec = (int)second;
          +
          535  time.tm_isdst = 0;
          +
          536 
          +
          537  if (is_valid) {
          +
          538  nmea_data->datetime.set(mktime(&time));
          +
          539  nmea_data->baseline_projection.set(projection);
          +
          540  nmea_data->baseline_length.set(baseline_length);
          +
          541  nmea_data->baseline_course.set(2 * PI * baseline_course / 360.);
          + +
          543  }
          +
          544 }
          +
          545 
          + +
          547 
          + +
          549  term_offsets[0] = 0;
          +
          550  current_state = &NMEAParser::state_start;
          +
          551 }
          +
          552 
          + +
          554  const char* sentence = parser->sentence();
          +
          555  sentence_parsers[sentence] = parser;
          +
          556 }
          +
          557 
          +
          558 void NMEAParser::handle(char c) { (this->*(current_state))(c); }
          +
          559 
          +
          560 void NMEAParser::state_start(char c) {
          +
          561  switch (c) {
          +
          562  case '$':
          +
          563  cur_offset = 0;
          +
          564  cur_term = 0;
          +
          565  current_state = &NMEAParser::state_in_term;
          +
          566  parity = 0;
          +
          567  break;
          +
          568  default:
          +
          569  // anything else can be ignored
          +
          570  break;
          +
          571  }
          +
          572 }
          +
          573 
          +
          574 void NMEAParser::state_in_term(char c) {
          +
          575  switch (c) {
          +
          576  case ',':
          +
          577  case '*':
          +
          578  if (cur_offset < INPUT_BUFFER_LENGTH) {
          +
          579  // split terms with 0 to help further processing
          +
          580  buffer[cur_offset++] = 0;
          +
          581  } else {
          +
          582  current_state = &NMEAParser::state_start;
          +
          583  break;
          +
          584  }
          +
          585  if (cur_term < MAX_TERMS) {
          +
          586  // advance term offset
          +
          587  term_offsets[++cur_term] = cur_offset;
          +
          588  } else {
          +
          589  current_state = &NMEAParser::state_start;
          +
          590  break;
          +
          591  }
          +
          592  if (c == '*') {
          +
          593  current_state = &NMEAParser::state_in_checksum;
          +
          594  } else {
          +
          595  parity ^= c;
          +
          596  }
          +
          597  break;
          +
          598  case '\r':
          +
          599  case '\n':
          +
          600  // end of sentence before checksum has been read
          +
          601  buffer[cur_offset++] = 0;
          +
          602  current_state = &NMEAParser::state_start;
          +
          603  break;
          +
          604  default:
          +
          605  // read term characters
          +
          606  buffer[cur_offset++] = c;
          +
          607  parity ^= c;
          +
          608  break;
          +
          609  }
          +
          610 }
          +
          611 
          +
          612 void NMEAParser::state_in_checksum(char c) {
          +
          613  switch (c) {
          +
          614  case ',':
          +
          615  case '*':
          +
          616  // there shouldn't be new terms after the checksum
          +
          617  current_state = &NMEAParser::state_start;
          +
          618  case '\r':
          +
          619  case '\n':
          +
          620  // end of sentence
          +
          621  buffer[cur_offset++] = 0;
          +
          622  if (!validate_checksum()) {
          +
          623  current_state = &NMEAParser::state_start;
          +
          624  return;
          +
          625  }
          +
          626  // call the relevant sentence parser
          +
          627  if (sentence_parsers.find(buffer) == sentence_parsers.end()) {
          +
          628  debugD("Parser not found for sentence %s", buffer);
          +
          629  } else {
          +
          630  sentence_parsers[buffer]->parse(buffer, term_offsets, cur_term + 1,
          +
          631  sentence_parsers);
          +
          632  }
          +
          633  current_state = &NMEAParser::state_start;
          +
          634  break;
          +
          635  default:
          +
          636  // read term characters
          +
          637  buffer[cur_offset++] = c;
          +
          638  break;
          +
          639  }
          +
          640 }
          +
          641 
          +
          642 bool NMEAParser::validate_checksum() {
          +
          643  char* checksum_str = buffer + term_offsets[cur_term];
          +
          644  int checksum;
          +
          645  sscanf(checksum_str, "%2x", &checksum);
          +
          646  return this->parity == checksum;
          +
          647 }
          +
          +
          +
          GNSSQuality
          Definition: nmea_parser.cpp:11
          +
          SentenceParser(NMEAData *nmea_data)
          +
          const char * sentence()
          Definition: nmea_parser.h:64
          +
          bool parse_latlon(double *value, char *s)
          Definition: nmea_parser.cpp:72
          +
          ObservableValue< float > horizontal_dilution
          Definition: nmea_parser.h:28
          +
          float north
          Definition: nmea_parser.h:20
          +
          ObservableValue< float > variation
          Definition: nmea_parser.h:35
          +
          bool parse_NS(double *value, char *s)
          Definition: nmea_parser.cpp:85
          +
          double longitude
          Definition: nmea_parser.h:14
          +
          const char * sentence()
          Definition: nmea_parser.h:82
          +
          ObservableValue< float > baseline_course
          Definition: nmea_parser.h:41
          +
          @ simulator_mode
          Definition: nmea_parser.cpp:20
          +
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          +
          float up
          Definition: nmea_parser.h:21
          +
          @ gnss_fix
          Definition: nmea_parser.cpp:13
          +
          bool parse_PSTI030_mode(GNSSQuality *quality, char *s)
          +
          ObservableValue< float > rtk_age
          Definition: nmea_parser.h:37
          +
          ObservableValue< float > geoidal_separation
          Definition: nmea_parser.h:29
          +
          void reconstruct_nmea_sentence(char *sentence, const char *buffer, int term_offsets[], int num_terms)
          Definition: nmea_parser.cpp:36
          +
          ObservableValue< float > speed
          Definition: nmea_parser.h:33
          +
          bool parse_EW(double *value, char *s)
          Definition: nmea_parser.cpp:98
          +
          @ estimated_mode
          Definition: nmea_parser.cpp:18
          +
          ObservableValue< String > gnss_quality
          Definition: nmea_parser.h:26
          +
          ObservableValue< float > true_course
          Definition: nmea_parser.h:34
          + +
          bool parse_date(int *year, int *month, int *day, char *s)
          +
          constexpr int INPUT_BUFFER_LENGTH
          Definition: nmea_parser.h:9
          + +
          void add_sentence_parser(SentenceParser *parser)
          +
          const char * sentence()
          Definition: nmea_parser.h:101
          +
          ObservableValue< time_t > datetime
          Definition: nmea_parser.h:32
          +
          @ rtk_fixed_integer
          Definition: nmea_parser.cpp:16
          +
          ObservableValue< float > rtk_ratio
          Definition: nmea_parser.h:38
          +
          NMEAData * nmea_data
          Definition: nmea_parser.h:55
          +
          void handle(char c)
          +
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          +
          String gnssQualityStrings[]
          Definition: nmea_parser.cpp:24
          +
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          +
          const char * sentence()
          Definition: nmea_parser.h:110
          +
          bool parse_M(char *s)
          +
          constexpr int MAX_TERMS
          Definition: nmea_parser.h:10
          +
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          +
          ObservableValue< ENUVector > enu_velocity
          Definition: nmea_parser.h:36
          +
          float east
          Definition: nmea_parser.h:19
          +
          bool parse_double(double *value, char *s)
          Definition: nmea_parser.cpp:67
          +
          ObservableValue< float > dgps_id
          Definition: nmea_parser.h:31
          +
          const char * sentence()
          Definition: nmea_parser.h:73
          +
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          +
          bool parse_int(int *value, char *s)
          Definition: nmea_parser.cpp:57
          + +
          @ dgnss_fix
          Definition: nmea_parser.cpp:14
          +
          ObservableValue< ENUVector > baseline_projection
          Definition: nmea_parser.h:39
          +
          ObservableValue< Position > position
          Definition: nmea_parser.h:25
          + +
          @ manual_input
          Definition: nmea_parser.cpp:19
          +
          @ precise_gnss
          Definition: nmea_parser.cpp:15
          + +
          bool parse_float(float *value, char *s)
          Definition: nmea_parser.cpp:62
          +
          void report_success(bool ok, const char *sentence)
          +
          float altitude
          Definition: nmea_parser.h:15
          +
          @ error
          Definition: nmea_parser.cpp:21
          +
          void set(const T &value)
          +
          bool parse_time(int *hour, int *minute, float *second, char *s)
          +
          @ no_gps
          Definition: nmea_parser.cpp:12
          +
          virtual const char * sentence()=0
          +
          ObservableValue< float > dgps_age
          Definition: nmea_parser.h:30
          +
          const char * sentence()
          Definition: nmea_parser.h:119
          +
          ObservableValue< float > baseline_length
          Definition: nmea_parser.h:40
          +
          @ rtk_float
          Definition: nmea_parser.cpp:17
          +
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          Definition: nmea_parser.h:98
          +
          bool parse_AV(bool *is_valid, char *s)
          + + +
          ObservableValue< int > num_satellites
          Definition: nmea_parser.h:27
          +
          double latitude
          Definition: nmea_parser.h:13
          + + + + diff --git a/docs/nmea__parser_8h.html b/docs/generated/docs/nmea__parser_8h.html similarity index 77% rename from docs/nmea__parser_8h.html rename to docs/generated/docs/nmea__parser_8h.html index af7d4bdca..3a20415c3 100644 --- a/docs/nmea__parser_8h.html +++ b/docs/generated/docs/nmea__parser_8h.html @@ -3,7 +3,7 @@ - + SensESP: src/system/nmea_parser.h File Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
          - +
          @@ -94,41 +90,44 @@
          nmea_parser.h File Reference
          -
          #include "Arduino.h"
          -#include <map>
          +
          #include <map>
          +#include "Arduino.h"
          #include "observablevalue.h"
          Include dependency graph for nmea_parser.h:
          -
          - - - - - - - - - - - - - +
          + + + + + + + + + + + + + + + +
          This graph shows which files directly or indirectly include this file:
          -
          - - - - - - - - - +
          + + + + + + + + +
          @@ -172,14 +171,22 @@

          + + + + + +
          constexpr int INPUT_BUFFER_LENGTH = 250
          +
          +constexpr
          -

          Definition at line 10 of file nmea_parser.h.

          +

          Definition at line 9 of file nmea_parser.h.

          @@ -188,14 +195,22 @@

          + + + + + +
          constexpr int MAX_TERMS = 25
          +
          +constexpr
          -

          Definition at line 11 of file nmea_parser.h.

          +

          Definition at line 10 of file nmea_parser.h.

          @@ -205,9 +220,7 @@

          diff --git a/docs/nmea__parser_8h.js b/docs/generated/docs/nmea__parser_8h.js similarity index 100% rename from docs/nmea__parser_8h.js rename to docs/generated/docs/nmea__parser_8h.js diff --git a/docs/nmea__parser_8h__dep__incl.map b/docs/generated/docs/nmea__parser_8h__dep__incl.map similarity index 100% rename from docs/nmea__parser_8h__dep__incl.map rename to docs/generated/docs/nmea__parser_8h__dep__incl.map diff --git a/docs/generated/docs/nmea__parser_8h__dep__incl.md5 b/docs/generated/docs/nmea__parser_8h__dep__incl.md5 new file mode 100644 index 000000000..36e312b74 --- /dev/null +++ b/docs/generated/docs/nmea__parser_8h__dep__incl.md5 @@ -0,0 +1 @@ +e00ea060b25e7926d00c2b1aa1ffc3d5 \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8h__dep__incl.png b/docs/generated/docs/nmea__parser_8h__dep__incl.png new file mode 100644 index 000000000..7d34f5da8 Binary files /dev/null and b/docs/generated/docs/nmea__parser_8h__dep__incl.png differ diff --git a/docs/generated/docs/nmea__parser_8h__incl.map b/docs/generated/docs/nmea__parser_8h__incl.map new file mode 100644 index 000000000..d10c39a3a --- /dev/null +++ b/docs/generated/docs/nmea__parser_8h__incl.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/nmea__parser_8h__incl.md5 b/docs/generated/docs/nmea__parser_8h__incl.md5 new file mode 100644 index 000000000..0bcafb295 --- /dev/null +++ b/docs/generated/docs/nmea__parser_8h__incl.md5 @@ -0,0 +1 @@ +3bc449fd9f0c940ae74127409865d80d \ No newline at end of file diff --git a/docs/generated/docs/nmea__parser_8h__incl.png b/docs/generated/docs/nmea__parser_8h__incl.png new file mode 100644 index 000000000..990a75a29 Binary files /dev/null and b/docs/generated/docs/nmea__parser_8h__incl.png differ diff --git a/docs/generated/docs/nmea__parser_8h_source.html b/docs/generated/docs/nmea__parser_8h_source.html new file mode 100644 index 000000000..d8ec1d3ba --- /dev/null +++ b/docs/generated/docs/nmea__parser_8h_source.html @@ -0,0 +1,312 @@ + + + + + + + +SensESP: src/system/nmea_parser.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          nmea_parser.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _nmea_parser_H_
          +
          2 #define _nmea_parser_H_
          +
          3 
          +
          4 #include <map>
          +
          5 
          +
          6 #include "Arduino.h"
          +
          7 #include "observablevalue.h"
          +
          8 
          +
          9 constexpr int INPUT_BUFFER_LENGTH = 250;
          +
          10 constexpr int MAX_TERMS = 25;
          +
          11 
          +
          12 struct Position {
          +
          13  double latitude;
          +
          14  double longitude;
          +
          15  float altitude;
          +
          16 };
          +
          17 
          +
          18 struct ENUVector {
          +
          19  float east;
          +
          20  float north;
          +
          21  float up;
          +
          22 };
          +
          23 
          +
          24 struct NMEAData {
          + + + + + + + + + + + + + + + + + +
          42 };
          +
          43 
          + +
          45  public:
          + +
          47  virtual void parse(char* buffer, int term_offsets[], int num_terms) = 0;
          +
          48  virtual void parse(char* buffer, int term_offsets[], int num_terms,
          +
          49  std::map<String, SentenceParser*>& sentence_parsers) {
          +
          50  parse(buffer, term_offsets, num_terms);
          +
          51  }
          +
          52  virtual const char* sentence() = 0;
          +
          53 
          +
          54  protected:
          + +
          56 
          +
          57  private:
          +
          58 };
          +
          59 
          + +
          61  public:
          + +
          63  void parse(char* buffer, int term_offsets[], int num_terms) override final;
          +
          64  const char* sentence() { return "GPGGA"; }
          +
          65 
          +
          66  private:
          +
          67 };
          +
          68 
          + +
          70  public:
          + +
          72  void parse(char* buffer, int term_offsets[], int num_terms) override final;
          +
          73  const char* sentence() { return "GPGLL"; }
          +
          74 
          +
          75  private:
          +
          76 };
          +
          77 
          + +
          79  public:
          + +
          81  void parse(char* buffer, int term_offsets[], int num_terms) override final;
          +
          82  const char* sentence() { return "GPRMC"; }
          +
          83 
          +
          84  private:
          +
          85 };
          +
          86 
          +
          87 // class GPVTGSentenceParser : public SentenceParser {
          +
          88 // public:
          +
          89 // GPVTGSentenceParser(NMEAData* nmea_data) : SentenceParser{nmea_data} {}
          +
          90 // void parse(char* buffer, int term_offsets[], int num_terms) override final;
          +
          91 // const char* sentence() { return "GPVTG"; }
          +
          92 // private:
          +
          93 //};
          +
          94 
          + +
          96  public:
          + +
          98  void parse(char* buffer, int term_offsets[], int num_terms) override final {}
          +
          99  void parse(char* buffer, int term_offsets[], int num_terms,
          +
          100  std::map<String, SentenceParser*>& sentence_parsers);
          +
          101  const char* sentence() { return "PSTI"; }
          +
          102 
          +
          103  private:
          +
          104 };
          +
          105 
          + +
          107  public:
          + +
          109  void parse(char* buffer, int term_offsets[], int num_terms) override final;
          +
          110  const char* sentence() { return "PSTI,030"; }
          +
          111 
          +
          112  private:
          +
          113 };
          +
          114 
          + +
          116  public:
          + +
          118  void parse(char* buffer, int term_offsets[], int num_terms) override final;
          +
          119  const char* sentence() { return "PSTI,032"; }
          +
          120 
          +
          121  private:
          +
          122 };
          +
          123 
          +
          124 class NMEAParser {
          +
          125  public:
          +
          126  NMEAParser();
          +
          127  void handle(char c);
          +
          128  void add_sentence_parser(SentenceParser* parser);
          +
          129 
          +
          130  private:
          +
          131  void (NMEAParser::*current_state)(char);
          +
          132  void state_start(char c);
          +
          133  void state_in_term(char c);
          +
          134  void state_in_checksum(char c);
          +
          135  // current sentence
          +
          136  char buffer[INPUT_BUFFER_LENGTH];
          +
          137  // offset for each sentence term in the buffer
          +
          138  int term_offsets[MAX_TERMS];
          +
          139  // pointer for the next character in buffer
          +
          140  int cur_offset;
          +
          141  // pointer for the current term in buffer
          +
          142  int cur_term;
          +
          143  int parity;
          +
          144  bool validate_checksum();
          +
          145  std::map<String, SentenceParser*> sentence_parsers;
          +
          146 };
          +
          147 
          +
          148 #endif
          +
          +
          +
          SentenceParser(NMEAData *nmea_data)
          + +
          const char * sentence()
          Definition: nmea_parser.h:64
          +
          ObservableValue< float > horizontal_dilution
          Definition: nmea_parser.h:28
          +
          float north
          Definition: nmea_parser.h:20
          +
          ObservableValue< float > variation
          Definition: nmea_parser.h:35
          +
          double longitude
          Definition: nmea_parser.h:14
          +
          const char * sentence()
          Definition: nmea_parser.h:82
          + +
          ObservableValue< float > baseline_course
          Definition: nmea_parser.h:41
          + +
          GPRMCSentenceParser(NMEAData *nmea_data)
          Definition: nmea_parser.h:80
          +
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          +
          float up
          Definition: nmea_parser.h:21
          + +
          ObservableValue< float > rtk_age
          Definition: nmea_parser.h:37
          +
          ObservableValue< float > geoidal_separation
          Definition: nmea_parser.h:29
          +
          ObservableValue< float > speed
          Definition: nmea_parser.h:33
          + +
          ObservableValue< String > gnss_quality
          Definition: nmea_parser.h:26
          +
          ObservableValue< float > true_course
          Definition: nmea_parser.h:34
          +
          virtual void parse(char *buffer, int term_offsets[], int num_terms)=0
          +
          constexpr int INPUT_BUFFER_LENGTH
          Definition: nmea_parser.h:9
          + + +
          void add_sentence_parser(SentenceParser *parser)
          +
          const char * sentence()
          Definition: nmea_parser.h:101
          +
          ObservableValue< time_t > datetime
          Definition: nmea_parser.h:32
          +
          GPGGASentenceParser(NMEAData *nmea_data)
          Definition: nmea_parser.h:62
          +
          ObservableValue< float > rtk_ratio
          Definition: nmea_parser.h:38
          +
          NMEAData * nmea_data
          Definition: nmea_parser.h:55
          +
          void handle(char c)
          +
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          +
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          +
          PSTI030SentenceParser(NMEAData *nmea_data)
          Definition: nmea_parser.h:108
          +
          const char * sentence()
          Definition: nmea_parser.h:110
          +
          constexpr int MAX_TERMS
          Definition: nmea_parser.h:10
          +
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          +
          ObservableValue< ENUVector > enu_velocity
          Definition: nmea_parser.h:36
          +
          PSTISentenceParser(NMEAData *nmea_data)
          Definition: nmea_parser.h:97
          +
          float east
          Definition: nmea_parser.h:19
          +
          ObservableValue< float > dgps_id
          Definition: nmea_parser.h:31
          +
          const char * sentence()
          Definition: nmea_parser.h:73
          +
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          + +
          PSTI032SentenceParser(NMEAData *nmea_data)
          Definition: nmea_parser.h:117
          + +
          ObservableValue< ENUVector > baseline_projection
          Definition: nmea_parser.h:39
          +
          ObservableValue< Position > position
          Definition: nmea_parser.h:25
          + +
          float altitude
          Definition: nmea_parser.h:15
          +
          GPGLLSentenceParser(NMEAData *nmea_data)
          Definition: nmea_parser.h:71
          + +
          virtual const char * sentence()=0
          + +
          ObservableValue< float > dgps_age
          Definition: nmea_parser.h:30
          +
          const char * sentence()
          Definition: nmea_parser.h:119
          +
          ObservableValue< float > baseline_length
          Definition: nmea_parser.h:40
          +
          virtual void parse(char *buffer, int term_offsets[], int num_terms, std::map< String, SentenceParser * > &sentence_parsers)
          Definition: nmea_parser.h:48
          +
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          Definition: nmea_parser.h:98
          + + +
          ObservableValue< int > num_satellites
          Definition: nmea_parser.h:27
          +
          double latitude
          Definition: nmea_parser.h:13
          + + + + diff --git a/docs/observable_8cpp.html b/docs/generated/docs/observable_8cpp.html similarity index 82% rename from docs/observable_8cpp.html rename to docs/generated/docs/observable_8cpp.html index 09c52f745..9b2fbac42 100644 --- a/docs/observable_8cpp.html +++ b/docs/generated/docs/observable_8cpp.html @@ -3,7 +3,7 @@ - + SensESP: src/system/observable.cpp File Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
          - +
          @@ -95,13 +91,13 @@
          Include dependency graph for observable.cpp:
          -
          - - - - - - +
          + + + + + +
          @@ -112,9 +108,7 @@ diff --git a/docs/observable_8cpp__incl.map b/docs/generated/docs/observable_8cpp__incl.map similarity index 100% rename from docs/observable_8cpp__incl.map rename to docs/generated/docs/observable_8cpp__incl.map diff --git a/docs/generated/docs/observable_8cpp__incl.md5 b/docs/generated/docs/observable_8cpp__incl.md5 new file mode 100644 index 000000000..f17a38f4f --- /dev/null +++ b/docs/generated/docs/observable_8cpp__incl.md5 @@ -0,0 +1 @@ +9c129acbab2959c2989ed61c6239ebb8 \ No newline at end of file diff --git a/docs/generated/docs/observable_8cpp__incl.png b/docs/generated/docs/observable_8cpp__incl.png new file mode 100644 index 000000000..aee7deab3 Binary files /dev/null and b/docs/generated/docs/observable_8cpp__incl.png differ diff --git a/docs/generated/docs/observable_8cpp_source.html b/docs/generated/docs/observable_8cpp_source.html new file mode 100644 index 000000000..9008255be --- /dev/null +++ b/docs/generated/docs/observable_8cpp_source.html @@ -0,0 +1,114 @@ + + + + + + + +SensESP: src/system/observable.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          observable.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "observable.h"
          +
          2 
          + +
          4  for (auto o : observers) {
          +
          5  o();
          +
          6  }
          +
          7 }
          +
          8 
          +
          9 void Observable::attach(std::function<void()> observer) {
          +
          10  observers.push_front(observer);
          +
          11 }
          +
          +
          +
          void notify()
          Definition: observable.cpp:3
          +
          void attach(std::function< void()> observer)
          Definition: observable.cpp:9
          + + + + + diff --git a/docs/generated/docs/observable_8h.html b/docs/generated/docs/observable_8h.html new file mode 100644 index 000000000..f60909552 --- /dev/null +++ b/docs/generated/docs/observable_8h.html @@ -0,0 +1,181 @@ + + + + + + + +SensESP: src/system/observable.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          observable.h File Reference
          +
          +
          +
          #include <forward_list>
          +#include <functional>
          +#include <vector>
          +
          +Include dependency graph for observable.h:
          +
          +
          + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  Observable
           
          +
          +
          + + + + diff --git a/docs/generated/docs/observable_8h__dep__incl.map b/docs/generated/docs/observable_8h__dep__incl.map new file mode 100644 index 000000000..28358f0ae --- /dev/null +++ b/docs/generated/docs/observable_8h__dep__incl.map @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/observable_8h__dep__incl.md5 b/docs/generated/docs/observable_8h__dep__incl.md5 new file mode 100644 index 000000000..9ac041d05 --- /dev/null +++ b/docs/generated/docs/observable_8h__dep__incl.md5 @@ -0,0 +1 @@ +0cf56e55b436b64e99bba83d7e65c596 \ No newline at end of file diff --git a/docs/generated/docs/observable_8h__dep__incl.png b/docs/generated/docs/observable_8h__dep__incl.png new file mode 100644 index 000000000..b8fad5098 Binary files /dev/null and b/docs/generated/docs/observable_8h__dep__incl.png differ diff --git a/docs/observable_8h__incl.map b/docs/generated/docs/observable_8h__incl.map similarity index 100% rename from docs/observable_8h__incl.map rename to docs/generated/docs/observable_8h__incl.map diff --git a/docs/generated/docs/observable_8h__incl.md5 b/docs/generated/docs/observable_8h__incl.md5 new file mode 100644 index 000000000..eec630cc5 --- /dev/null +++ b/docs/generated/docs/observable_8h__incl.md5 @@ -0,0 +1 @@ +002a579151642ef2d20bdd42ba0e862f \ No newline at end of file diff --git a/docs/generated/docs/observable_8h__incl.png b/docs/generated/docs/observable_8h__incl.png new file mode 100644 index 000000000..d112c7bc9 Binary files /dev/null and b/docs/generated/docs/observable_8h__incl.png differ diff --git a/docs/generated/docs/observable_8h_source.html b/docs/generated/docs/observable_8h_source.html new file mode 100644 index 000000000..0d0f84040 --- /dev/null +++ b/docs/generated/docs/observable_8h_source.html @@ -0,0 +1,125 @@ + + + + + + + +SensESP: src/system/observable.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          observable.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _observable_H_
          +
          2 #define _observable_H_
          +
          3 
          +
          4 #include <forward_list>
          +
          5 #include <functional>
          +
          6 #include <vector>
          +
          7 
          +
          9 // Observables are classes which allow observers
          +
          10 // to attach callbacks to themselves. The callbacks
          +
          11 // will be called when the observable needs to
          +
          12 // notify the observers about some state change.
          +
          13 
          +
          14 class Observable {
          +
          15  public:
          +
          16  void notify();
          +
          17  void attach(std::function<void()> observer);
          +
          18 
          +
          19  private:
          +
          20  std::forward_list<std::function<void()> > observers;
          +
          21 };
          +
          22 
          +
          23 #endif
          +
          +
          +
          void notify()
          Definition: observable.cpp:3
          +
          void attach(std::function< void()> observer)
          Definition: observable.cpp:9
          + + + + + diff --git a/docs/generated/docs/observablevalue_8h.html b/docs/generated/docs/observablevalue_8h.html new file mode 100644 index 000000000..c2720c980 --- /dev/null +++ b/docs/generated/docs/observablevalue_8h.html @@ -0,0 +1,158 @@ + + + + + + + +SensESP: src/system/observablevalue.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          observablevalue.h File Reference
          +
          +
          +
          #include "observable.h"
          +#include "valueproducer.h"
          +
          +Include dependency graph for observablevalue.h:
          +
          +
          + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  ObservableValue< T >
           
          +
          +
          + + + + diff --git a/docs/generated/docs/observablevalue_8h__dep__incl.map b/docs/generated/docs/observablevalue_8h__dep__incl.map new file mode 100644 index 000000000..a7da742a4 --- /dev/null +++ b/docs/generated/docs/observablevalue_8h__dep__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/observablevalue_8h__dep__incl.md5 b/docs/generated/docs/observablevalue_8h__dep__incl.md5 new file mode 100644 index 000000000..08ee82e46 --- /dev/null +++ b/docs/generated/docs/observablevalue_8h__dep__incl.md5 @@ -0,0 +1 @@ +07ce44d001cbe022af59cca956b6e747 \ No newline at end of file diff --git a/docs/generated/docs/observablevalue_8h__dep__incl.png b/docs/generated/docs/observablevalue_8h__dep__incl.png new file mode 100644 index 000000000..7bf4b2e7b Binary files /dev/null and b/docs/generated/docs/observablevalue_8h__dep__incl.png differ diff --git a/docs/generated/docs/observablevalue_8h__incl.map b/docs/generated/docs/observablevalue_8h__incl.map new file mode 100644 index 000000000..5f439f080 --- /dev/null +++ b/docs/generated/docs/observablevalue_8h__incl.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/docs/generated/docs/observablevalue_8h__incl.md5 b/docs/generated/docs/observablevalue_8h__incl.md5 new file mode 100644 index 000000000..78fcb9dd5 --- /dev/null +++ b/docs/generated/docs/observablevalue_8h__incl.md5 @@ -0,0 +1 @@ +f466706de31c0301531d11a931c24403 \ No newline at end of file diff --git a/docs/generated/docs/observablevalue_8h__incl.png b/docs/generated/docs/observablevalue_8h__incl.png new file mode 100644 index 000000000..15e34cdc7 Binary files /dev/null and b/docs/generated/docs/observablevalue_8h__incl.png differ diff --git a/docs/generated/docs/observablevalue_8h_source.html b/docs/generated/docs/observablevalue_8h_source.html new file mode 100644 index 000000000..e02638ba3 --- /dev/null +++ b/docs/generated/docs/observablevalue_8h_source.html @@ -0,0 +1,137 @@ + + + + + + + +SensESP: src/system/observablevalue.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          observablevalue.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _observablevalue_H
          +
          2 #define _observablevalue_H
          +
          3 
          +
          4 #include "observable.h"
          +
          5 #include "valueproducer.h"
          +
          6 
          +
          8 // ObservableValue is simply a value that notifies its observers if
          +
          9 // it gets changed.
          +
          10 
          +
          11 template <class T>
          +
          12 class ObservableValue : public ValueProducer<T> {
          +
          13  public:
          + +
          15 
          +
          16  ObservableValue(const T& value) { ValueProducer<T>::output = value; }
          +
          17 
          +
          18  void set(const T& value) {
          + + +
          21  }
          +
          22 
          +
          23  const T& operator=(const T& value) {
          +
          24  set(value);
          +
          25  return value;
          +
          26  }
          +
          27 };
          +
          28 
          +
          29 #endif
          +
          +
          +
          ObservableValue(const T &value)
          +
          void notify()
          Definition: observable.cpp:3
          + + + + +
          void set(const T &value)
          +
          const T & operator=(const T &value)
          + + + + + diff --git a/docs/onewire__temperature_8cpp.html b/docs/generated/docs/onewire__temperature_8cpp.html similarity index 75% rename from docs/onewire__temperature_8cpp.html rename to docs/generated/docs/onewire__temperature_8cpp.html index 9acf616eb..ef3df7602 100644 --- a/docs/onewire__temperature_8cpp.html +++ b/docs/generated/docs/onewire__temperature_8cpp.html @@ -3,7 +3,7 @@ - + SensESP: src/sensors/onewire_temperature.cpp File Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
          - +
          @@ -95,39 +91,39 @@
          #include "onewire_temperature.h"
          -#include <algorithm>
          #include <DallasTemperature.h>
          #include <OneWire.h>
          -#include "sensor.h"
          +#include <algorithm>
          #include "sensesp.h"
          +#include "sensor.h"
          Include dependency graph for onewire_temperature.cpp:
          -
          - - - - - - - - - - - - - - - - - - - - - - - - +
          + + + + + + + + + + + + + + + + + + + + + + + +
          @@ -176,11 +172,11 @@

          Here is the caller graph for this function:

          -
          - - - - +
          + + + +
          @@ -212,14 +208,14 @@

          -

          Definition at line 21 of file onewire_temperature.cpp.

          +

          Definition at line 19 of file onewire_temperature.cpp.

          Here is the caller graph for this function:
          -
          - - - +
          + + +
          @@ -248,9 +244,7 @@

          diff --git a/docs/onewire__temperature_8cpp.js b/docs/generated/docs/onewire__temperature_8cpp.js similarity index 100% rename from docs/onewire__temperature_8cpp.js rename to docs/generated/docs/onewire__temperature_8cpp.js diff --git a/docs/generated/docs/onewire__temperature_8cpp__incl.map b/docs/generated/docs/onewire__temperature_8cpp__incl.map new file mode 100644 index 000000000..71785b3fe --- /dev/null +++ b/docs/generated/docs/onewire__temperature_8cpp__incl.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/onewire__temperature_8cpp__incl.md5 b/docs/generated/docs/onewire__temperature_8cpp__incl.md5 new file mode 100644 index 000000000..c06d8c2cb --- /dev/null +++ b/docs/generated/docs/onewire__temperature_8cpp__incl.md5 @@ -0,0 +1 @@ +d4fb037445389dbf16a4ee48d6ae9eec \ No newline at end of file diff --git a/docs/generated/docs/onewire__temperature_8cpp__incl.png b/docs/generated/docs/onewire__temperature_8cpp__incl.png new file mode 100644 index 000000000..713563346 Binary files /dev/null and b/docs/generated/docs/onewire__temperature_8cpp__incl.png differ diff --git a/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.map b/docs/generated/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.map similarity index 100% rename from docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.map rename to docs/generated/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.map diff --git a/docs/generated/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.md5 b/docs/generated/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.md5 new file mode 100644 index 000000000..41760e18a --- /dev/null +++ b/docs/generated/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.md5 @@ -0,0 +1 @@ +4bce81bb900e678f5d4dafe700023904 \ No newline at end of file diff --git a/docs/generated/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.png b/docs/generated/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.png new file mode 100644 index 000000000..a7e1be6fa Binary files /dev/null and b/docs/generated/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.png differ diff --git a/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.map b/docs/generated/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.map similarity index 84% rename from docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.map rename to docs/generated/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.map index 4b180be1c..6fe1f4551 100644 --- a/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.map +++ b/docs/generated/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.map @@ -1,5 +1,5 @@ - + diff --git a/docs/generated/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.md5 b/docs/generated/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.md5 new file mode 100644 index 000000000..0ebf8a26f --- /dev/null +++ b/docs/generated/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.md5 @@ -0,0 +1 @@ +781c3ff5706c56d3ccc3409ca0c2bc8b \ No newline at end of file diff --git a/docs/generated/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.png b/docs/generated/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.png new file mode 100644 index 000000000..52da0f257 Binary files /dev/null and b/docs/generated/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.png differ diff --git a/docs/generated/docs/onewire__temperature_8cpp_source.html b/docs/generated/docs/onewire__temperature_8cpp_source.html new file mode 100644 index 000000000..f853b8e52 --- /dev/null +++ b/docs/generated/docs/onewire__temperature_8cpp_source.html @@ -0,0 +1,291 @@ + + + + + + + +SensESP: src/sensors/onewire_temperature.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          onewire_temperature.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "onewire_temperature.h"
          +
          2 
          +
          3 #include <DallasTemperature.h>
          +
          4 #include <OneWire.h>
          +
          5 
          +
          6 #include <algorithm>
          +
          7 
          +
          8 #include "sensesp.h"
          +
          9 #include "sensor.h"
          +
          10 
          +
          11 const OWDevAddr null_ow_addr = {0, 0, 0, 0, 0, 0, 0, 0};
          +
          12 
          +
          13 void owda_to_string(char* str, const OWDevAddr& addr) {
          +
          14  // brute force it
          +
          15  sprintf(str, "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", addr[0], addr[1],
          +
          16  addr[2], addr[3], addr[4], addr[5], addr[6], addr[7]);
          +
          17 }
          +
          18 
          +
          19 bool string_to_owda(OWDevAddr* addr, const char* str) {
          +
          20  // brute force it
          +
          21  uint vals[8];
          +
          22  int num_items =
          +
          23  sscanf(str, "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", &vals[0], &vals[1],
          +
          24  &vals[2], &vals[3], &vals[4], &vals[5], &vals[6], &vals[7]);
          +
          25  for (int i = 0; i < 8; i++) {
          +
          26  (*addr)[i] = vals[i];
          +
          27  }
          +
          28  return num_items == 8;
          +
          29 }
          +
          30 
          + +
          32  : Sensor(config_path) {
          +
          33  onewire = new OneWire(pin);
          +
          34  sensors = new DallasTemperature(onewire);
          +
          35  sensors->begin();
          +
          36 
          +
          37  // DallasTemperature::getDeviceCount() doesn't work reliably with ESP32,
          +
          38  // so sensors are found using getAddress()
          +
          39 
          +
          40  DeviceAddress addr;
          +
          41  OWDevAddr owda;
          +
          42  bool check_again = true;
          +
          43  uint8_t sensor_index = 0;
          +
          44  while (check_again) {
          +
          45  if (sensors->getAddress(addr, sensor_index)) {
          +
          46  std::copy(std::begin(addr), std::end(addr), std::begin(owda));
          +
          47  known_addresses.insert(owda);
          +
          48 #ifndef DEBUG_DISABLED
          +
          49  char addrstr[24];
          +
          50  owda_to_string(addrstr, owda);
          +
          51  debugI("Found OneWire sensor %s", addrstr);
          +
          52 #endif
          +
          53  sensor_index++;
          +
          54  } else
          +
          55  check_again = false;
          +
          56  }
          +
          57 
          +
          58  // all conversions will by async
          +
          59  sensors->setWaitForConversion(false);
          +
          60  // always use maximum resolution
          +
          61  sensors->setResolution(12);
          +
          62 }
          +
          63 
          + +
          65  auto search_known = known_addresses.find(addr);
          +
          66  if (search_known == known_addresses.end()) {
          +
          67  // address is not known
          +
          68  return false;
          +
          69  }
          +
          70  auto search_reg = registered_addresses.find(addr);
          +
          71  if (search_reg != registered_addresses.end()) {
          +
          72  // address is already registered
          +
          73  return false;
          +
          74  }
          +
          75 
          +
          76  registered_addresses.insert(addr);
          +
          77  return true;
          +
          78 }
          +
          79 
          + +
          81  // find the next address from known_addresses which is
          +
          82  // not present in registered_addresses
          +
          83  for (auto known : known_addresses) {
          +
          84  auto reg_it = registered_addresses.find(known);
          +
          85  if (reg_it == registered_addresses.end()) {
          +
          86  *addr = known;
          +
          87  return true;
          +
          88  }
          +
          89  }
          +
          90  return false;
          +
          91 }
          +
          92 
          + +
          94  uint read_delay, String config_path)
          +
          95  : NumericSensor(config_path), dts{dts}, read_delay{read_delay} {
          +
          96  load_configuration();
          +
          97  if (address == null_ow_addr) {
          +
          98  // previously unconfigured sensor
          +
          99  bool success = dts->get_next_address(&address);
          +
          100  if (!success) {
          +
          101  debugE(
          +
          102  "FATAL: Unable to allocate a OneWire sensor for %s. "
          +
          103  "All sensors have already been configured. "
          +
          104  "Check the physical wiring of your sensors.",
          +
          105  config_path.c_str());
          +
          106  found = false;
          +
          107  } else {
          +
          108  debugD("Registered a new OneWire sensor");
          +
          109  dts->register_address(address);
          +
          110  }
          +
          111  } else {
          +
          112  bool success = dts->register_address(address);
          +
          113  if (!success) {
          +
          114  char addrstr[24];
          +
          115  owda_to_string(addrstr, address);
          +
          116  debugE(
          +
          117  "FATAL: OneWire sensor %s at %s is missing. "
          +
          118  "Check the physical wiring of your sensors.",
          +
          119  config_path.c_str(), addrstr);
          +
          120  found = false;
          +
          121  }
          +
          122  }
          +
          123 }
          +
          124 
          + +
          126  if (found) {
          +
          127  app.onRepeat(read_delay, [this]() { this->update(); });
          +
          128  }
          +
          129 }
          +
          130 
          +
          131 void OneWireTemperature::update() {
          +
          132  dts->sensors->requestTemperaturesByAddress(address.data());
          +
          133 
          +
          134  app.onDelay(750, [this]() { this->read_value(); });
          +
          135 }
          +
          136 
          +
          137 void OneWireTemperature::read_value() {
          +
          138  // getTempC returns degrees Celsius but Signal K expects Kelvins
          +
          139  output = dts->sensors->getTempC(address.data()) + 273.15;
          +
          140  this->notify();
          +
          141 }
          +
          142 
          + +
          144  root["value"] = output;
          +
          145  char addr_str[24];
          +
          146  owda_to_string(addr_str, address);
          +
          147  root["address"] = addr_str;
          +
          148  root["found"] = found;
          +
          149 }
          +
          150 
          +
          151 static const char SCHEMA[] PROGMEM = R"({
          +
          152  "type": "object",
          +
          153  "properties": {
          +
          154  "address": { "title": "OneWire address", "type": "string" },
          +
          155  "found": { "title": "Device found", "type": "boolean", "readOnly": true },
          +
          156  "value": { "title": "Last value", "type" : "number", "readOnly": true }
          +
          157  }
          +
          158  })";
          +
          159 
          +
          160 String OneWireTemperature::get_config_schema() { return FPSTR(SCHEMA); }
          +
          161 
          +
          162 bool OneWireTemperature::set_configuration(const JsonObject& config) {
          +
          163  if (!config.containsKey("address")) {
          +
          164  return false;
          +
          165  }
          +
          166  string_to_owda(&address, config["address"]);
          +
          167  return true;
          +
          168 }
          +
          +
          +
          virtual bool set_configuration(const JsonObject &config) override final
          +
          void notify()
          Definition: observable.cpp:3
          + +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          + +
          bool get_next_address(OWDevAddr *addr)
          +
          DallasTemperatureSensors(int pin, String config_path="")
          + +
          virtual void get_configuration(JsonObject &doc) override final
          +
          std::array< uint8_t, 8 > OWDevAddr
          +
          bool register_address(const OWDevAddr &addr)
          + +
          void enable() override final
          + +
          const OWDevAddr null_ow_addr
          +
          void owda_to_string(char *str, const OWDevAddr &addr)
          +
          OneWireTemperature(DallasTemperatureSensors *dts, uint read_delay=1000, String config_path="")
          + +
          virtual String get_config_schema() override
          +
          bool string_to_owda(OWDevAddr *addr, const char *str)
          +
          ReactESP app
          +
          DallasTemperature * sensors
          +
          Definition: sensor.h:15
          + + + + diff --git a/docs/generated/docs/onewire__temperature_8h.html b/docs/generated/docs/onewire__temperature_8h.html new file mode 100644 index 000000000..c4c70ce74 --- /dev/null +++ b/docs/generated/docs/onewire__temperature_8h.html @@ -0,0 +1,178 @@ + + + + + + + +SensESP: src/sensors/onewire_temperature.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          onewire_temperature.h File Reference
          +
          +
          +
          #include <set>
          +#include <DallasTemperature.h>
          +#include <OneWire.h>
          +#include "sensor.h"
          +
          +Include dependency graph for onewire_temperature.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + + + +

          +Classes

          class  DallasTemperatureSensors
           
          class  OneWireTemperature
           
          + + + +

          +Typedefs

          typedef std::array< uint8_t, 8 > OWDevAddr
           
          +

          Typedef Documentation

          + +

          ◆ OWDevAddr

          + +
          +
          + + + + +
          typedef std::array<uint8_t, 8> OWDevAddr
          +
          + +

          Definition at line 11 of file onewire_temperature.h.

          + +
          +
          +
          +
          + + + + diff --git a/docs/onewire__temperature_8h.js b/docs/generated/docs/onewire__temperature_8h.js similarity index 100% rename from docs/onewire__temperature_8h.js rename to docs/generated/docs/onewire__temperature_8h.js diff --git a/docs/onewire__temperature_8h__dep__incl.map b/docs/generated/docs/onewire__temperature_8h__dep__incl.map similarity index 100% rename from docs/onewire__temperature_8h__dep__incl.map rename to docs/generated/docs/onewire__temperature_8h__dep__incl.map diff --git a/docs/generated/docs/onewire__temperature_8h__dep__incl.md5 b/docs/generated/docs/onewire__temperature_8h__dep__incl.md5 new file mode 100644 index 000000000..2e0be468d --- /dev/null +++ b/docs/generated/docs/onewire__temperature_8h__dep__incl.md5 @@ -0,0 +1 @@ +a9ab7e4c750e2b2473cb7cf334de1bf4 \ No newline at end of file diff --git a/docs/generated/docs/onewire__temperature_8h__dep__incl.png b/docs/generated/docs/onewire__temperature_8h__dep__incl.png new file mode 100644 index 000000000..a709190b1 Binary files /dev/null and b/docs/generated/docs/onewire__temperature_8h__dep__incl.png differ diff --git a/docs/generated/docs/onewire__temperature_8h__incl.map b/docs/generated/docs/onewire__temperature_8h__incl.map new file mode 100644 index 000000000..7ac85e616 --- /dev/null +++ b/docs/generated/docs/onewire__temperature_8h__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/onewire__temperature_8h__incl.md5 b/docs/generated/docs/onewire__temperature_8h__incl.md5 new file mode 100644 index 000000000..1920b8556 --- /dev/null +++ b/docs/generated/docs/onewire__temperature_8h__incl.md5 @@ -0,0 +1 @@ +4fd22856886720c90739a117ed2801ea \ No newline at end of file diff --git a/docs/generated/docs/onewire__temperature_8h__incl.png b/docs/generated/docs/onewire__temperature_8h__incl.png new file mode 100644 index 000000000..712ef6c48 Binary files /dev/null and b/docs/generated/docs/onewire__temperature_8h__incl.png differ diff --git a/docs/generated/docs/onewire__temperature_8h_source.html b/docs/generated/docs/onewire__temperature_8h_source.html new file mode 100644 index 000000000..dda9efc05 --- /dev/null +++ b/docs/generated/docs/onewire__temperature_8h_source.html @@ -0,0 +1,163 @@ + + + + + + + +SensESP: src/sensors/onewire_temperature.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          onewire_temperature.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _onewire_H_
          +
          2 #define _onewire_H_
          +
          3 
          +
          4 #include <set>
          +
          5 
          +
          6 #include <DallasTemperature.h>
          +
          7 #include <OneWire.h>
          +
          8 
          +
          9 #include "sensor.h"
          +
          10 
          +
          11 typedef std::array<uint8_t, 8> OWDevAddr;
          +
          12 
          + +
          14  public:
          +
          15  DallasTemperatureSensors(int pin, String config_path="");
          +
          16  void enable() override final {}
          +
          17  bool register_address(const OWDevAddr& addr);
          +
          18  bool get_next_address(OWDevAddr* addr);
          +
          19  DallasTemperature* sensors;
          +
          20  private:
          +
          21  OneWire* onewire;
          +
          22  uint8_t next_sensor = 0;
          +
          23  std::set<OWDevAddr> known_addresses;
          +
          24  std::set<OWDevAddr> registered_addresses;
          +
          25 };
          +
          26 
          + +
          28  public:
          +
          29  OneWireTemperature(DallasTemperatureSensors* dts, uint read_delay = 1000,
          +
          30  String config_path="");
          +
          31  void enable() override final;
          +
          32  virtual void get_configuration(JsonObject& doc) override final;
          +
          33  virtual bool set_configuration(const JsonObject& config) override final;
          +
          34  virtual String get_config_schema() override;
          +
          35 
          +
          36  private:
          +
          37  OneWire* onewire;
          + +
          39  uint read_delay;
          +
          40  bool found = true;
          +
          41  OWDevAddr address = {};
          +
          42  void update();
          +
          43  void read_value();
          +
          44 };
          +
          45 
          +
          46 #endif
          +
          +
          +
          virtual bool set_configuration(const JsonObject &config) override final
          +
          bool get_next_address(OWDevAddr *addr)
          +
          DallasTemperatureSensors(int pin, String config_path="")
          + +
          virtual void get_configuration(JsonObject &doc) override final
          +
          std::array< uint8_t, 8 > OWDevAddr
          +
          bool register_address(const OWDevAddr &addr)
          + +
          void enable() override final
          + +
          const String config_path
          Definition: configurable.h:31
          +
          OneWireTemperature(DallasTemperatureSensors *dts, uint read_delay=1000, String config_path="")
          + +
          virtual String get_config_schema() override
          +
          void enable() override final
          +
          DallasTemperature * sensors
          +
          Definition: sensor.h:15
          + + + + diff --git a/docs/open.png b/docs/generated/docs/open.png similarity index 100% rename from docs/open.png rename to docs/generated/docs/open.png diff --git a/docs/generated/docs/orientation__9dof__input_8cpp.html b/docs/generated/docs/orientation__9dof__input_8cpp.html new file mode 100644 index 000000000..6ed8f637e --- /dev/null +++ b/docs/generated/docs/orientation__9dof__input_8cpp.html @@ -0,0 +1,160 @@ + + + + + + + +SensESP: src/sensors/orientation_9dof_input.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          orientation_9dof_input.cpp File Reference
          +
          +
          +
          #include "orientation_9dof_input.h"
          +#include <RemoteDebug.h>
          +#include "sensesp.h"
          +
          +Include dependency graph for orientation_9dof_input.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Variables

          SensorNXP_FXOS8700_FXAS21002sensor_fxos_fxas
           
          +

          Variable Documentation

          + +

          ◆ sensor_fxos_fxas

          + +
          +
          + + + + +
          SensorNXP_FXOS8700_FXAS21002* sensor_fxos_fxas
          +
          + +

          Definition at line 9 of file orientation_9dof_input.cpp.

          + +
          +
          +
          +
          + + + + diff --git a/docs/generated/docs/orientation__9dof__input_8cpp.js b/docs/generated/docs/orientation__9dof__input_8cpp.js new file mode 100644 index 000000000..f7e3db666 --- /dev/null +++ b/docs/generated/docs/orientation__9dof__input_8cpp.js @@ -0,0 +1,4 @@ +var orientation__9dof__input_8cpp = +[ + [ "sensor_fxos_fxas", "orientation__9dof__input_8cpp.html#a98d89d1a44b4415ca4d8ae0c8ce74ee6", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/orientation__9dof__input_8cpp__incl.map b/docs/generated/docs/orientation__9dof__input_8cpp__incl.map new file mode 100644 index 000000000..8a02836d6 --- /dev/null +++ b/docs/generated/docs/orientation__9dof__input_8cpp__incl.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/orientation__9dof__input_8cpp__incl.md5 b/docs/generated/docs/orientation__9dof__input_8cpp__incl.md5 new file mode 100644 index 000000000..ccc1fbca6 --- /dev/null +++ b/docs/generated/docs/orientation__9dof__input_8cpp__incl.md5 @@ -0,0 +1 @@ +d55767788abbd37e0610b6424a8ae3a8 \ No newline at end of file diff --git a/docs/generated/docs/orientation__9dof__input_8cpp__incl.png b/docs/generated/docs/orientation__9dof__input_8cpp__incl.png new file mode 100644 index 000000000..8ebe7fe15 Binary files /dev/null and b/docs/generated/docs/orientation__9dof__input_8cpp__incl.png differ diff --git a/docs/generated/docs/orientation__9dof__input_8cpp_source.html b/docs/generated/docs/orientation__9dof__input_8cpp_source.html new file mode 100644 index 000000000..895b7e7f8 --- /dev/null +++ b/docs/generated/docs/orientation__9dof__input_8cpp_source.html @@ -0,0 +1,279 @@ + + + + + + + +SensESP: src/sensors/orientation_9dof_input.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          orientation_9dof_input.cpp
          +
          +
          +Go to the documentation of this file.
          +
          2 
          +
          3 #include <RemoteDebug.h>
          +
          4 
          +
          5 #include "sensesp.h"
          +
          6 
          +
          7 // pointer to physical sensor
          + +
          9  sensor_fxos_fxas; // if sensor_fxos_fxas is a member of Orientation9DOF,
          +
          10  // then when called in onRepeat it causes CPU panic
          +
          11 
          +
          12 // Orientation9DOF represents a 9-Degrees-of-Freedom sensor (magnetometer,
          +
          13 // accelerometer, and gyroscope), such as an
          +
          14 // ADAfruit NXP FXOS8700 + FXAS21002 combination sensor.
          +
          15 Orientation9DOF::Orientation9DOF(uint8_t pin_i2c_sda, uint8_t pin_i2c_scl,
          +
          16  String config_path)
          +
          17  : Sensor(config_path) {
          + + +
          20  if (!sensor_fxos_fxas->connect(pin_i2c_sda, pin_i2c_scl)) {
          +
          21  debugE(
          +
          22  "No connection to FXOS8700/FXAS21002 sensor: check address & wiring");
          +
          23  } else {
          + +
          25  }
          +
          26 }
          +
          27 
          + +
          29  // Used only when calibrating. This method does not return.
          +
          30  debugI("calling gatherCalibrationData()");
          +
          31  while (true) {
          + +
          33  delay(10);
          +
          34  }
          +
          35 }
          +
          36 
          +
          37 // Read9DOF() sets up access to the combo FXOS8700 + FXAS21002 sensor, loads
          +
          38 // its configuration, and initializes the filter that turns raw data into
          +
          39 // desired orientation parameter. For accurate filter output, sensor needs
          +
          40 // to be calibrated first. OrientationValType val_type specifies what kind of
          +
          41 // orientation parameter value is to be read (heading, linear accel, or angular
          +
          42 // velocity)
          + +
          44  OrientationValType val_type, uint read_delay,
          +
          45  String config_path)
          +
          46  : NumericSensor(config_path),
          +
          47  orientation_9dof{orientation_9dof},
          +
          48  val_type{val_type},
          +
          49  read_delay{read_delay} {
          +
          50  load_configuration();
          +
          51  sensor_fxos_fxas->initFilter(this->read_delay);
          +
          52 }
          +
          53 
          +
          54 // Setup repeated readings from combination sensor.
          + +
          56  app.onRepeat(read_delay, [this]() { this->update(); });
          +
          57 }
          +
          58 
          +
          59 // Provides one parameter reading from the combination sensor.
          +
          60 // val_type determines which particular parameter is output.
          +
          61 // Note that since the filter algorithm works best when all 9-DOF
          +
          62 // parameters are captured simultaneously, and at a specified
          +
          63 // constant rate, there is only a single call to
          +
          64 // sensor_fxos_fxas->gatherOrientationDataOnce() in this method.
          +
          65 // Arbitrarily, this update happens when the compass heading
          +
          66 // is requested; all the remaining parameters are retrieved
          +
          67 // by calling the appropriate sensor_fxos_fxas->getter method.
          +
          68 // If the compass heading parameter is not the one that is set
          +
          69 // to the fastest repetition rate (in main.cpp when calling
          +
          70 // Read9DOF::Read9DOF()), then you should move the
          +
          71 // gatherOrientationDataOnce() call into the case block
          +
          72 // for whichever parameter _is_ updated the fastest - this
          +
          73 // ensures that that parameter and all others are never stale.
          +
          74 void Read9DOF::update() {
          +
          75  // if sensor_fxos_fxas is a member of Orientation9DOF, then when called in
          +
          76  // onRepeat it causes CPU panic
          +
          77  switch (val_type) {
          +
          78  case (compass_hdg):
          +
          79  // sensor is read and filter called, only for compass_hdg
          +
          80  // remaining parameters are obtained from most recent filter results
          + + +
          83  break;
          +
          84  case (roll):
          + +
          86  break;
          +
          87  case (pitch):
          + +
          89  break;
          +
          90  case (acceleration_x):
          + +
          92  break;
          +
          93  case (acceleration_y):
          + +
          95  break;
          +
          96  case (acceleration_z):
          + +
          98  break;
          +
          99  case (rate_of_turn):
          + +
          101  break;
          +
          102  case (rate_of_pitch):
          + +
          104  break;
          +
          105  case (rate_of_roll):
          + +
          107  break;
          +
          108  default:
          +
          109  output = 0.0;
          +
          110  }
          +
          111  notify();
          +
          112 }
          +
          113 
          +
          114 void Read9DOF::get_configuration(JsonObject& doc) {
          +
          115  doc["read_delay"] = read_delay;
          +
          116  doc["value"] = output;
          +
          117 };
          +
          118 
          +
          119 static const char SCHEMA[] PROGMEM = R"###({
          +
          120  "type": "object",
          +
          121  "properties": {
          +
          122  "read_delay": { "title": "Read delay", "type": "number", "description": "The time, in milliseconds, between each read of the input" },
          +
          123  "value": { "title": "Last value", "type" : "number", "readOnly": true }
          +
          124  }
          +
          125  })###";
          +
          126 
          +
          127 String Read9DOF::get_config_schema() { return FPSTR(SCHEMA); }
          +
          128 
          +
          129 bool Read9DOF::set_configuration(const JsonObject& config) {
          +
          130  String expected[] = {"read_delay"};
          +
          131  for (auto str : expected) {
          +
          132  if (!config.containsKey(str)) {
          +
          133  return false;
          +
          134  }
          +
          135  }
          +
          136  read_delay = config["read_delay"];
          +
          137  return true;
          +
          138 }
          +
          +
          +
          Read9DOF(Orientation9DOF *p9DOF, OrientationValType val_type=compass_hdg, uint read_delay=100, String config_path="")
          + +
          void notify()
          Definition: observable.cpp:3
          +
          SensorNXP_FXOS8700_FXAS21002 * sensor_fxos_fxas
          +
          void enable() override final
          + + + +
          @ acceleration_x
          +
          @ acceleration_z
          +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          +
          Orientation9DOF(uint8_t pin_i2c_sda, uint8_t pin_i2c_scl, String config_path="")
          + + + + + +
          @ rate_of_roll
          +
          @ acceleration_y
          + +
          void gatherOrientationDataOnce(bool is_print_results)
          +
          @ rate_of_turn
          + +
          virtual void load_configuration()
          + + + + + + +
          void initFilter(int sampling_interval_ms)
          +
          @ rate_of_pitch
          + +
          OrientationValType
          +
          ReactESP app
          +
          Orientation9DOF * orientation_9dof
          +
          bool connect(uint8_t pin_i2c_sda, uint8_t pin_i2c_scl)
          + + +
          void gatherCalibrationDataOnce(bool is_print_results)
          +
          Definition: sensor.h:15
          + + + + diff --git a/docs/generated/docs/orientation__9dof__input_8h.html b/docs/generated/docs/orientation__9dof__input_8h.html new file mode 100644 index 000000000..3781c5a0e --- /dev/null +++ b/docs/generated/docs/orientation__9dof__input_8h.html @@ -0,0 +1,199 @@ + + + + + + + +SensESP: src/sensors/orientation_9dof_input.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          orientation_9dof_input.h File Reference
          +
          +
          +
          #include "sensor.h"
          +#include "sensor_nxp_fxos8700_fxas21002.h"
          +
          +Include dependency graph for orientation_9dof_input.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + +
          +
          +

          Go to the source code of this file.

          + + + + + + +

          +Classes

          class  Orientation9DOF
           
          class  Read9DOF
           
          + + + +

          +Enumerations

          enum  OrientationValType {
          +  compass_hdg, +pitch, +roll, +acceleration_x, +
          +  acceleration_y, +acceleration_z, +rate_of_turn, +rate_of_pitch, +
          +  rate_of_roll +
          + }
           
          +

          Enumeration Type Documentation

          + +

          ◆ OrientationValType

          + +
          +
          + + + + +
          enum OrientationValType
          +
          + + + + + + + + + + +
          Enumerator
          compass_hdg 
          pitch 
          roll 
          acceleration_x 
          acceleration_y 
          acceleration_z 
          rate_of_turn 
          rate_of_pitch 
          rate_of_roll 
          + +

          Definition at line 35 of file orientation_9dof_input.h.

          + +
          +
          +
          +
          + + + + diff --git a/docs/generated/docs/orientation__9dof__input_8h.js b/docs/generated/docs/orientation__9dof__input_8h.js new file mode 100644 index 000000000..fc270cce5 --- /dev/null +++ b/docs/generated/docs/orientation__9dof__input_8h.js @@ -0,0 +1,16 @@ +var orientation__9dof__input_8h = +[ + [ "Orientation9DOF", "class_orientation9_d_o_f.html", "class_orientation9_d_o_f" ], + [ "Read9DOF", "class_read9_d_o_f.html", "class_read9_d_o_f" ], + [ "OrientationValType", "orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95e", [ + [ "compass_hdg", "orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea1aca2377e3a0b9909c2dc93959beb751", null ], + [ "pitch", "orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea7d727d167958e799288fbf3b43894883", null ], + [ "roll", "orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea47adc77fa7e4e33d5e567d3377ceda90", null ], + [ "acceleration_x", "orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea2cb838e8090509cdbe8d5cb0e2baea09", null ], + [ "acceleration_y", "orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea662c740c96b3f23ac9fff8f5b7fa6e1f", null ], + [ "acceleration_z", "orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95eaa69107d7ac45a55e7d4f70da85db52a1", null ], + [ "rate_of_turn", "orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea2bfd167dc9dfcb7a507d2e7ea5a6c1d8", null ], + [ "rate_of_pitch", "orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95eaaaafd973e0adb0637c636ee1934f6200", null ], + [ "rate_of_roll", "orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea8987706e9866024a60124d12510d11c6", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/generated/docs/orientation__9dof__input_8h__dep__incl.map b/docs/generated/docs/orientation__9dof__input_8h__dep__incl.map new file mode 100644 index 000000000..305bb35b9 --- /dev/null +++ b/docs/generated/docs/orientation__9dof__input_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/orientation__9dof__input_8h__dep__incl.md5 b/docs/generated/docs/orientation__9dof__input_8h__dep__incl.md5 new file mode 100644 index 000000000..3fa3ba32a --- /dev/null +++ b/docs/generated/docs/orientation__9dof__input_8h__dep__incl.md5 @@ -0,0 +1 @@ +cd7d7462198ab512151df16bf720a0ae \ No newline at end of file diff --git a/docs/generated/docs/orientation__9dof__input_8h__dep__incl.png b/docs/generated/docs/orientation__9dof__input_8h__dep__incl.png new file mode 100644 index 000000000..797d41189 Binary files /dev/null and b/docs/generated/docs/orientation__9dof__input_8h__dep__incl.png differ diff --git a/docs/generated/docs/orientation__9dof__input_8h__incl.map b/docs/generated/docs/orientation__9dof__input_8h__incl.map new file mode 100644 index 000000000..0a8539a00 --- /dev/null +++ b/docs/generated/docs/orientation__9dof__input_8h__incl.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/orientation__9dof__input_8h__incl.md5 b/docs/generated/docs/orientation__9dof__input_8h__incl.md5 new file mode 100644 index 000000000..57932f124 --- /dev/null +++ b/docs/generated/docs/orientation__9dof__input_8h__incl.md5 @@ -0,0 +1 @@ +3ab00db36429e5480609df5d8eeb4c59 \ No newline at end of file diff --git a/docs/generated/docs/orientation__9dof__input_8h__incl.png b/docs/generated/docs/orientation__9dof__input_8h__incl.png new file mode 100644 index 000000000..256f0f532 Binary files /dev/null and b/docs/generated/docs/orientation__9dof__input_8h__incl.png differ diff --git a/docs/generated/docs/orientation__9dof__input_8h_source.html b/docs/generated/docs/orientation__9dof__input_8h_source.html new file mode 100644 index 000000000..dc388301a --- /dev/null +++ b/docs/generated/docs/orientation__9dof__input_8h_source.html @@ -0,0 +1,188 @@ + + + + + + + +SensESP: src/sensors/orientation_9dof_input.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          orientation_9dof_input.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef SENSORS_ORIENTATION_9DOF_INPUT_H_
          +
          2 #define SENSORS_ORIENTATION_9DOF_INPUT_H_
          +
          3 
          +
          4 // SensESP Sensor definition file.
          +
          5 // Provides Orientation from 9DOF sensor combination (magnetometer,
          +
          6 // accelerometer, gyroscope) consisting of FXOS8700 + FXAS21002
          +
          7 
          +
          8 #include "sensor.h"
          + +
          10 
          +
          11 // Orientation9DOF represents an NXP FXOS8700 accelerometer and magnetometer
          +
          12 // sensor, plus an NXP FXAS21002C gyroscope. This combination sensor is found
          +
          13 // on products such as the Adafruit #3463 breakout board.
          +
          14 //
          +
          15 // It's desirable to capture all the orientation readings (i.e. mag, accel, and
          +
          16 // gyro) simultaneously, so the class Read9DOF polls the FXOS8700 and FXAS21002
          +
          17 // together, passes the raw values to the Adafruit AHRS / NXP SensorFusion
          +
          18 // filter, and stores the combined 9DOF orientation data.
          +
          19 // Calling the public Adafruit_FXOS8700:: methods can be done
          +
          20 // after you instantiate Orientation9DOF, for example by:
          +
          21 // sensor_fxos_fxas->pAdafruitFXOS8700->setSampling();
          +
          22 // See the Adafruit library for details.
          +
          23 // https://github.com/adafruit/Adafruit_FXOS8700_Library/blob/master/Adafruit_FXOS8700.h
          +
          24 class Orientation9DOF : public Sensor {
          +
          25  public:
          +
          26  Orientation9DOF(uint8_t pin_i2c_sda, uint8_t pin_i2c_scl,
          +
          27  String config_path = "");
          +
          28  void stream_raw_values(void); // used when calibrating
          +
          29  private:
          +
          30  uint8_t addr; // unused
          +
          31 };
          +
          32 
          +
          33 // Pass one of these in Read9DOF() constructor corresponding to type of value
          +
          34 // you want
          + + + + + + + + + + +
          45 };
          +
          46 
          +
          47 // Read9DOF reads the combo FXOS8700 + FXAS21002 sensor and outputs the
          +
          48 // specified orientation parameter value
          +
          49 class Read9DOF : public NumericSensor {
          +
          50  public:
          + +
          52  uint read_delay = 100, String config_path = "");
          +
          53  void enable() override final;
          + +
          55 
          +
          56  private:
          +
          57  OrientationValType val_type;
          +
          58  uint read_delay;
          +
          59  void update(void); // doesn't exist in some examples (e.g. BME280)
          +
          60  // Incorporated into enable() instead.
          +
          61  virtual void get_configuration(JsonObject& doc) override;
          +
          62  virtual bool set_configuration(const JsonObject& config) override;
          +
          63  virtual String get_config_schema() override;
          +
          64 };
          +
          65 
          +
          66 #endif // SENSORS_ORIENTATION_9DOF_INPUT_H_
          +
          +
          +
          Read9DOF(Orientation9DOF *p9DOF, OrientationValType val_type=compass_hdg, uint read_delay=100, String config_path="")
          + +
          void enable() override final
          +
          @ acceleration_x
          +
          @ acceleration_z
          + +
          Orientation9DOF(uint8_t pin_i2c_sda, uint8_t pin_i2c_scl, String config_path="")
          + + + +
          @ rate_of_roll
          +
          @ acceleration_y
          + +
          @ rate_of_turn
          + +
          const String config_path
          Definition: configurable.h:31
          + +
          @ rate_of_pitch
          + +
          OrientationValType
          +
          Orientation9DOF * orientation_9dof
          +
          Definition: sensor.h:15
          + + + + diff --git a/docs/generated/docs/ota_8cpp.html b/docs/generated/docs/ota_8cpp.html new file mode 100644 index 000000000..95a6bf854 --- /dev/null +++ b/docs/generated/docs/ota_8cpp.html @@ -0,0 +1,199 @@ + + + + + + + +SensESP: src/net/ota.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          ota.cpp File Reference
          +
          +
          +
          #include "ota.h"
          +#include <Arduino.h>
          +#include <ArduinoOTA.h>
          +#include "sensesp.h"
          +
          +Include dependency graph for ota.cpp:
          +
          +
          + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + + + +

          +Functions

          void handle_ota ()
           
          void setup_ota ()
           
          +

          Function Documentation

          + +

          ◆ handle_ota()

          + +
          +
          + + + + + + + +
          void handle_ota ()
          +
          + +

          Definition at line 13 of file ota.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + + + +
          + +
          +
          + +

          ◆ setup_ota()

          + +
          +
          + + + + + + + +
          void setup_ota ()
          +
          + +

          Definition at line 15 of file ota.cpp.

          +
          +Here is the call graph for this function:
          +
          +
          + + + + +
          +
          +Here is the caller graph for this function:
          +
          +
          + + + + + +
          + +
          +
          +
          +
          + + + + diff --git a/docs/generated/docs/ota_8cpp.js b/docs/generated/docs/ota_8cpp.js new file mode 100644 index 000000000..64a6f1abc --- /dev/null +++ b/docs/generated/docs/ota_8cpp.js @@ -0,0 +1,5 @@ +var ota_8cpp = +[ + [ "handle_ota", "ota_8cpp.html#afe226f1d9a9fde6f6a37a1bf42d76f03", null ], + [ "setup_ota", "ota_8cpp.html#a33a44650f7c396edaeee69c33952d906", null ] +]; \ No newline at end of file diff --git a/docs/ota_8cpp__incl.map b/docs/generated/docs/ota_8cpp__incl.map similarity index 100% rename from docs/ota_8cpp__incl.map rename to docs/generated/docs/ota_8cpp__incl.map diff --git a/docs/generated/docs/ota_8cpp__incl.md5 b/docs/generated/docs/ota_8cpp__incl.md5 new file mode 100644 index 000000000..b0ece4f69 --- /dev/null +++ b/docs/generated/docs/ota_8cpp__incl.md5 @@ -0,0 +1 @@ +a8c156627f24038315195764a1fd0f57 \ No newline at end of file diff --git a/docs/generated/docs/ota_8cpp__incl.png b/docs/generated/docs/ota_8cpp__incl.png new file mode 100644 index 000000000..d39ddc278 Binary files /dev/null and b/docs/generated/docs/ota_8cpp__incl.png differ diff --git a/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_cgraph.map b/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_cgraph.map new file mode 100644 index 000000000..5e712fa33 --- /dev/null +++ b/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_cgraph.md5 b/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_cgraph.md5 new file mode 100644 index 000000000..b5b8f44e5 --- /dev/null +++ b/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_cgraph.md5 @@ -0,0 +1 @@ +75009eada8a0d85550f5ae1281f36bec \ No newline at end of file diff --git a/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_cgraph.png b/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_cgraph.png new file mode 100644 index 000000000..64213c89c Binary files /dev/null and b/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_cgraph.png differ diff --git a/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_icgraph.map b/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_icgraph.map new file mode 100644 index 000000000..5c4c75c1e --- /dev/null +++ b/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_icgraph.md5 b/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_icgraph.md5 new file mode 100644 index 000000000..135957940 --- /dev/null +++ b/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_icgraph.md5 @@ -0,0 +1 @@ +44f5b610cad7f10fbb32f58ccd3b4d4d \ No newline at end of file diff --git a/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_icgraph.png b/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_icgraph.png new file mode 100644 index 000000000..6f4a0bdb2 Binary files /dev/null and b/docs/generated/docs/ota_8cpp_a33a44650f7c396edaeee69c33952d906_icgraph.png differ diff --git a/docs/generated/docs/ota_8cpp_afe226f1d9a9fde6f6a37a1bf42d76f03_icgraph.map b/docs/generated/docs/ota_8cpp_afe226f1d9a9fde6f6a37a1bf42d76f03_icgraph.map new file mode 100644 index 000000000..2e1ff1c99 --- /dev/null +++ b/docs/generated/docs/ota_8cpp_afe226f1d9a9fde6f6a37a1bf42d76f03_icgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/ota_8cpp_afe226f1d9a9fde6f6a37a1bf42d76f03_icgraph.md5 b/docs/generated/docs/ota_8cpp_afe226f1d9a9fde6f6a37a1bf42d76f03_icgraph.md5 new file mode 100644 index 000000000..72f6942eb --- /dev/null +++ b/docs/generated/docs/ota_8cpp_afe226f1d9a9fde6f6a37a1bf42d76f03_icgraph.md5 @@ -0,0 +1 @@ +07d75bd206465fdf915e318fe8f16aca \ No newline at end of file diff --git a/docs/generated/docs/ota_8cpp_afe226f1d9a9fde6f6a37a1bf42d76f03_icgraph.png b/docs/generated/docs/ota_8cpp_afe226f1d9a9fde6f6a37a1bf42d76f03_icgraph.png new file mode 100644 index 000000000..d78645798 Binary files /dev/null and b/docs/generated/docs/ota_8cpp_afe226f1d9a9fde6f6a37a1bf42d76f03_icgraph.png differ diff --git a/docs/generated/docs/ota_8cpp_source.html b/docs/generated/docs/ota_8cpp_source.html new file mode 100644 index 000000000..d35f82fdf --- /dev/null +++ b/docs/generated/docs/ota_8cpp_source.html @@ -0,0 +1,147 @@ + + + + + + + +SensESP: src/net/ota.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          ota.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "ota.h"
          +
          2 
          +
          3 #include <Arduino.h>
          +
          4 #include <ArduinoOTA.h>
          +
          5 
          +
          6 #include "sensesp.h"
          +
          7 
          +
          8 // Password for Over-the-air (OTA) updates
          +
          9 #ifndef OTA_PASSWORD
          +
          10 //#define OTA_PASSWORD "bonvoyage"
          +
          11 #endif
          +
          12 
          +
          13 void handle_ota() { ArduinoOTA.handle(); }
          +
          14 
          +
          15 void setup_ota() {
          +
          16 #ifdef OTA_PASSWORD
          +
          17  ArduinoOTA.setPassword((const char *)OTA_PASSWORD);
          +
          18 #endif
          +
          19  ArduinoOTA.onStart([]() { debugW("Starting OTA"); });
          +
          20  ArduinoOTA.onEnd([]() { debugW("OTA End"); });
          +
          21  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
          +
          22  debugI("OTA Progress: %u%%\r", (progress / (total / 100)));
          +
          23  });
          +
          24  ArduinoOTA.onError([](ota_error_t error) {
          +
          25  debugE("OTA Error[%u]: ", error);
          +
          26  if (error == OTA_AUTH_ERROR) {
          +
          27  debugE("OTA Auth Failed");
          +
          28  } else if (error == OTA_BEGIN_ERROR) {
          +
          29  debugE("OTA Begin Failed");
          +
          30  } else if (error == OTA_CONNECT_ERROR) {
          +
          31  debugE("OTA Connect Failed");
          +
          32  } else if (error == OTA_RECEIVE_ERROR) {
          +
          33  debugE("OTA Receive Failed");
          +
          34  } else if (error == OTA_END_ERROR) {
          +
          35  debugE("OTA End Failed");
          +
          36  }
          +
          37  });
          +
          38  ArduinoOTA.begin();
          +
          39  // app.onTick(&handle_OTA);
          +
          40  app.onRepeat(20, handle_ota);
          +
          41 }
          +
          +
          + +
          void handle_ota()
          Definition: ota.cpp:13
          + +
          void setup_ota()
          Definition: ota.cpp:15
          +
          @ error
          Definition: nmea_parser.cpp:21
          +
          ReactESP app
          + + + + diff --git a/docs/generated/docs/ota_8h.html b/docs/generated/docs/ota_8h.html new file mode 100644 index 000000000..6ffe79552 --- /dev/null +++ b/docs/generated/docs/ota_8h.html @@ -0,0 +1,159 @@ + + + + + + + +SensESP: src/net/ota.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          ota.h File Reference
          +
          +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Functions

          void setup_ota ()
           
          +

          Function Documentation

          + +

          ◆ setup_ota()

          + +
          +
          + + + + + + + +
          void setup_ota ()
          +
          + +

          Definition at line 15 of file ota.cpp.

          +
          +Here is the call graph for this function:
          +
          +
          + + + + +
          +
          +Here is the caller graph for this function:
          +
          +
          + + + + + +
          + +
          +
          +
          +
          + + + + diff --git a/docs/generated/docs/ota_8h.js b/docs/generated/docs/ota_8h.js new file mode 100644 index 000000000..74316ed11 --- /dev/null +++ b/docs/generated/docs/ota_8h.js @@ -0,0 +1,4 @@ +var ota_8h = +[ + [ "setup_ota", "ota_8h.html#a33a44650f7c396edaeee69c33952d906", null ] +]; \ No newline at end of file diff --git a/docs/ota_8h__dep__incl.map b/docs/generated/docs/ota_8h__dep__incl.map similarity index 100% rename from docs/ota_8h__dep__incl.map rename to docs/generated/docs/ota_8h__dep__incl.map diff --git a/docs/ota_8h__dep__incl.md5 b/docs/generated/docs/ota_8h__dep__incl.md5 similarity index 100% rename from docs/ota_8h__dep__incl.md5 rename to docs/generated/docs/ota_8h__dep__incl.md5 diff --git a/docs/generated/docs/ota_8h__dep__incl.png b/docs/generated/docs/ota_8h__dep__incl.png new file mode 100644 index 000000000..1f93dfd38 Binary files /dev/null and b/docs/generated/docs/ota_8h__dep__incl.png differ diff --git a/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_cgraph.map b/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_cgraph.map new file mode 100644 index 000000000..5e712fa33 --- /dev/null +++ b/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_cgraph.md5 b/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_cgraph.md5 new file mode 100644 index 000000000..b5b8f44e5 --- /dev/null +++ b/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_cgraph.md5 @@ -0,0 +1 @@ +75009eada8a0d85550f5ae1281f36bec \ No newline at end of file diff --git a/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_cgraph.png b/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_cgraph.png new file mode 100644 index 000000000..64213c89c Binary files /dev/null and b/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_cgraph.png differ diff --git a/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_icgraph.map b/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_icgraph.map new file mode 100644 index 000000000..5c4c75c1e --- /dev/null +++ b/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_icgraph.md5 b/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_icgraph.md5 new file mode 100644 index 000000000..135957940 --- /dev/null +++ b/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_icgraph.md5 @@ -0,0 +1 @@ +44f5b610cad7f10fbb32f58ccd3b4d4d \ No newline at end of file diff --git a/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_icgraph.png b/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_icgraph.png new file mode 100644 index 000000000..6f4a0bdb2 Binary files /dev/null and b/docs/generated/docs/ota_8h_a33a44650f7c396edaeee69c33952d906_icgraph.png differ diff --git a/docs/generated/docs/ota_8h_source.html b/docs/generated/docs/ota_8h_source.html new file mode 100644 index 000000000..393280ee5 --- /dev/null +++ b/docs/generated/docs/ota_8h_source.html @@ -0,0 +1,107 @@ + + + + + + + +SensESP: src/net/ota.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          ota.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _ota_H_
          +
          2 #define _ota_H_
          +
          3 
          +
          4 void setup_ota();
          +
          5 
          +
          6 #endif
          +
          +
          +
          void setup_ota()
          Definition: ota.cpp:15
          + + + + diff --git a/docs/generated/docs/resize.js b/docs/generated/docs/resize.js new file mode 100644 index 000000000..e1ad0fe3b --- /dev/null +++ b/docs/generated/docs/resize.js @@ -0,0 +1,140 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; + + function readCookie(cookie) + { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; + } + + function writeCookie(cookie, val, expiration) + { + if (val==undefined) return; + if (expiration == null) { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth-barWidth, null); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px"}); + var width=$(window).width(); + if (width!=collapsedWidth) { + if (width=desktop_vp) { + if (!collapsed) { + collapseExpand(); + } + } else if (width>desktop_vp && collapsedWidth0) { + restoreWidth(0); + collapsed=true; + } + else { + var width = readCookie('width'); + if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); } + collapsed=false; + } + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/docs/search/all_0.html b/docs/generated/docs/search/all_0.html similarity index 84% rename from docs/search/all_0.html rename to docs/generated/docs/search/all_0.html index 5330204c2..a34319f30 100644 --- a/docs/search/all_0.html +++ b/docs/generated/docs/search/all_0.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_0.js b/docs/generated/docs/search/all_0.js new file mode 100644 index 000000000..ee676f714 --- /dev/null +++ b/docs/generated/docs/search/all_0.js @@ -0,0 +1,44 @@ +var searchData= +[ + ['acceleration_5fx_0',['acceleration_x',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea2cb838e8090509cdbe8d5cb0e2baea09',1,'orientation_9dof_input.h']]], + ['acceleration_5fy_1',['acceleration_y',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea662c740c96b3f23ac9fff8f5b7fa6e1f',1,'orientation_9dof_input.h']]], + ['acceleration_5fz_2',['acceleration_z',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95eaa69107d7ac45a55e7d4f70da85db52a1',1,'orientation_9dof_input.h']]], + ['adafruit_5fbme280_3',['adafruit_bme280',['../class_b_m_e280.html#ac977ead8ac47915501544b240fee22fc',1,'BME280']]], + ['adafruit_5fbmp280_4',['adafruit_bmp280',['../class_b_m_p280.html#ac3e52141522ed5f9d96f184c55e31a99',1,'BMP280']]], + ['adafruit_5fsht31_5',['adafruit_sht31',['../class_s_h_t31.html#ada57336159f2495b9a3ab318818e16aa',1,'SHT31']]], + ['add_5fsample_6',['add_sample',['../class_curve_interpolator.html#a938e1bdc8256ef255c27ffc65c8360b7',1,'CurveInterpolator']]], + ['add_5fsentence_5fparser_7',['add_sentence_parser',['../class_n_m_e_a_parser.html#a438b3fd8f8587b55a3785656651f73a6',1,'NMEAParser']]], + ['addsample_8',['addSample',['../class_curve_interpolator.html#a263eaf111e6b5f47e72c6e13d77dea99',1,'CurveInterpolator']]], + ['ads_9',['ads',['../class_a_d_s1x15.html#ace2a95dc18d4c043c4c4122a5508c576',1,'ADS1x15']]], + ['ads1015_10',['ADS1015',['../ads1x15_8h.html#a6f6b131100a4dd4ca22e4152b2180db8',1,'ads1x15.h']]], + ['ads1015chip_11',['ADS1015chip',['../ads1x15__voltage_8h.html#a287de91a50d45b83ad2b999a32f96846a1efc5b453be0b8efe9d2827c22c94669',1,'ads1x15_voltage.h']]], + ['ads1015value_12',['ADS1015value',['../ads1x15_8h.html#ac815741ef15e8fd16c37e7ceebe61b04',1,'ADS1015value(): ads1x15.h'],['../ads1x15_8h.html#a56503424baf16a9e1fe8bca2f21e26d2',1,'ADS1015Value(): ads1x15.h']]], + ['ads1115_13',['ADS1115',['../ads1x15_8h.html#aff5c694cee53802680653a7a64ea1910',1,'ads1x15.h']]], + ['ads1115chip_14',['ADS1115chip',['../ads1x15__voltage_8h.html#a287de91a50d45b83ad2b999a32f96846a8d7ed005368ca618b3f7022dc1cb5c32',1,'ads1x15_voltage.h']]], + ['ads1115value_15',['ADS1115value',['../ads1x15_8h.html#aef84aad5457f448a1e9c488503ff60f3',1,'ADS1115value(): ads1x15.h'],['../ads1x15_8h.html#ae1571805b29318a59c364332d228f319',1,'ADS1115Value(): ads1x15.h']]], + ['ads1x15_16',['ADS1x15',['../class_a_d_s1x15.html',1,'ADS1x15< T_Ada_1x15 >'],['../class_a_d_s1x15.html#a222eece7162f1774e5970fc9f14dd6a2',1,'ADS1x15::ADS1x15()']]], + ['ads1x15_2ecpp_17',['ads1x15.cpp',['../ads1x15_8cpp.html',1,'']]], + ['ads1x15_2eh_18',['ads1x15.h',['../ads1x15_8h.html',1,'']]], + ['ads1x15_5fvoltage_2ecpp_19',['ads1x15_voltage.cpp',['../ads1x15__voltage_8cpp.html',1,'']]], + ['ads1x15_5fvoltage_2eh_20',['ads1x15_voltage.h',['../ads1x15__voltage_8h.html',1,'']]], + ['ads1x15chip_5ft_21',['ADS1x15CHIP_t',['../ads1x15__voltage_8h.html#a287de91a50d45b83ad2b999a32f96846',1,'ads1x15_voltage.h']]], + ['ads1x15value_22',['ADS1x15Value',['../class_a_d_s1x15_value.html',1,'ADS1x15Value< T_ads_1x15 >'],['../class_a_d_s1x15_value.html#ab6f5ad81976b4a0f2ac8e43432b9a247',1,'ADS1x15Value::ADS1x15Value()']]], + ['ads1x15voltage_23',['ADS1x15Voltage',['../class_a_d_s1x15_voltage.html',1,'ADS1x15Voltage'],['../class_a_d_s1x15_voltage.html#a923d54c2370d71f3eff5fa82214e3590',1,'ADS1x15Voltage::ADS1x15Voltage()']]], + ['all_24',['ALL',['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbdab1d5eac4b1dca480c8056eaea7663b7a',1,'sensesp_app.h']]], + ['altitude_25',['altitude',['../struct_position.html#add1df8470102854f3950fc9dd2fee06d',1,'Position']]], + ['analog_5finput_2ecpp_26',['analog_input.cpp',['../analog__input_8cpp.html',1,'']]], + ['analog_5finput_2eh_27',['analog_input.h',['../analog__input_8h.html',1,'']]], + ['analog_5freader_2eh_28',['analog_reader.h',['../analog__reader_8h.html',1,'']]], + ['analoginput_29',['AnalogInput',['../class_analog_input.html',1,'AnalogInput'],['../class_analog_input.html#a63db2d6f83b69573a4739466a6e429e6',1,'AnalogInput::AnalogInput()']]], + ['analogvoltage_30',['AnalogVoltage',['../class_analog_voltage.html',1,'AnalogVoltage'],['../class_analog_voltage.html#aa702f3b91648bbffa9cd86b5c0200a25',1,'AnalogVoltage::AnalogVoltage()']]], + ['analogvoltage_2ecpp_31',['analogvoltage.cpp',['../analogvoltage_8cpp.html',1,'']]], + ['analogvoltage_2eh_32',['analogvoltage.h',['../analogvoltage_8h.html',1,'']]], + ['angle_5fcorrection_2ecpp_33',['angle_correction.cpp',['../angle__correction_8cpp.html',1,'']]], + ['angle_5fcorrection_2eh_34',['angle_correction.h',['../angle__correction_8h.html',1,'']]], + ['anglecorrection_35',['AngleCorrection',['../class_angle_correction.html',1,'AngleCorrection'],['../class_angle_correction.html#a6a023df6e49e8ada977738dc8cbe150c',1,'AngleCorrection::AngleCorrection()']]], + ['app_36',['app',['../sensesp_8h.html#aaa2ffd80e6f851dc6bb43c95a2c7d26f',1,'app(): sensesp.h'],['../main_8cpp.html#a6d9293a0861bd0a401705876575bf2d1',1,'app([]() { SetupSerialDebug(115200);sensesp_app=new SensESPApp("sensesp-hysteresis-example", "My WiFi SSID", "my_wifi_password", "skserver.lan", 80, NONE);const char *sk_path="indoor.illumination";const char *analog_in_config_path="/indoor_illumination/analog_in";uint read_delay=500;float output_scale=3.3;auto *analog_input=new AnalogInput(pin, read_delay, analog_in_config_path, output_scale);analog_input ->connect_to(new Hysteresis< float, bool >(0.3, 0.5, false, true, "/transforms/hysteresis")) ->connect_to(new SKOutputBool(sk_path));analog_input ->connect_to(new Hysteresis< float, bool >(0.6, 1.0, false, true, "/transforms/hysteresis2")) ->connect_to(new SKOutputBool(sk_path));sensesp_app->enable();}): main.cpp']]], + ['append_37',['append',['../class_s_k_delta.html#afacfa3952be6179d0e96960575f393a8',1,'SKDelta']]], + ['as_5fsignalk_38',['as_signalk',['../class_s_k_emitter.html#ab25ae819460f8a07fee381cc06332f95',1,'SKEmitter::as_signalk()'],['../class_s_k_output.html#a638cad044b186372707c776fcd9a69bd',1,'SKOutput::as_signalk()'],['../class_s_k_output_time.html#aaf792b14c69ced31c6a3c2bd0d1a32e4',1,'SKOutputTime::as_signalk()'],['../class_s_k_output.html#a1cfe49843fc8745ffefa59d36df67bb4',1,'SKOutput::as_signalk()'],['../class_s_k_output.html#a1cfe49843fc8745ffefa59d36df67bb4',1,'SKOutput::as_signalk()']]], + ['attach_39',['attach',['../class_observable.html#af72ed9c9cf7157a33caad4b930232e69',1,'Observable::attach()'],['../sensesp__app_8cpp.html#aafcec3d306fa4a9995d6d51e2b179116',1,'attach(): sensesp_app.cpp']]], + ['authorizing_40',['authorizing',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba1f27ab35c30a3960dc1b8f11202c743d',1,'ws_client.h']]] +]; diff --git a/docs/search/all_1.html b/docs/generated/docs/search/all_1.html similarity index 84% rename from docs/search/all_1.html rename to docs/generated/docs/search/all_1.html index 2f4679366..51aff6f69 100644 --- a/docs/search/all_1.html +++ b/docs/generated/docs/search/all_1.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_1.js b/docs/generated/docs/search/all_1.js new file mode 100644 index 000000000..fa02078cc --- /dev/null +++ b/docs/generated/docs/search/all_1.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['baseanalogreader_41',['BaseAnalogReader',['../class_base_analog_reader.html',1,'']]], + ['baseline_5fcourse_42',['baseline_course',['../struct_n_m_e_a_data.html#ad752076d48c74317d72a26643fef7fef',1,'NMEAData']]], + ['baseline_5flength_43',['baseline_length',['../struct_n_m_e_a_data.html#a96cce54518c05c611d50c159ea5122d6',1,'NMEAData']]], + ['baseline_5fprojection_44',['baseline_projection',['../struct_n_m_e_a_data.html#a3ae9e3d23c088e1c435acf4c232d6a5c',1,'NMEAData']]], + ['bme280_45',['BME280',['../class_b_m_e280.html',1,'BME280'],['../class_b_m_e280.html#a7eb425e9c7b1eebc6bad4288de80dcab',1,'BME280::BME280()'],['../class_b_m_e280_value.html#a333a82519078ad9ec9b3d5828b42bc2b',1,'BME280Value::bme280()']]], + ['bme280_2ecpp_46',['bme280.cpp',['../bme280_8cpp.html',1,'']]], + ['bme280_2eh_47',['bme280.h',['../bme280_8h.html',1,'']]], + ['bme280valtype_48',['BME280ValType',['../bme280_8h.html#acce372cdae7772cfadaa815858c0956d',1,'bme280.h']]], + ['bme280value_49',['BME280Value',['../class_b_m_e280_value.html',1,'BME280Value'],['../class_b_m_e280_value.html#a59605de196c5141aac67b51522902183',1,'BME280Value::BME280Value()'],['../bme280_8h.html#af37089b3d8f44826d66821c4a89498bc',1,'BME280value(): bme280.h']]], + ['bmp280_50',['BMP280',['../class_b_m_p280.html',1,'BMP280'],['../class_b_m_p280.html#a70a4ccddabb11d3da232a4b0339d4851',1,'BMP280::BMP280()'],['../class_b_m_p280_value.html#a93dfd7d1bb90299ba31505749b482aae',1,'BMP280Value::bmp280()']]], + ['bmp280_2ecpp_51',['bmp280.cpp',['../bmp280_8cpp.html',1,'']]], + ['bmp280_2eh_52',['bmp280.h',['../bmp280_8h.html',1,'']]], + ['bmp280valtype_53',['BMP280ValType',['../bmp280_8h.html#ab9dfceb0d5985ce5ae28521c2ddb5bf4',1,'bmp280.h']]], + ['bmp280value_54',['BMP280Value',['../class_b_m_p280_value.html',1,'BMP280Value'],['../class_b_m_p280_value.html#a9862d2cc3be55366831f97613a805973',1,'BMP280Value::BMP280Value()'],['../bmp280_8h.html#adc2b0c1f8c770323d86e72b706958989',1,'BMP280value(): bmp280.h']]], + ['booleanconsumer_55',['BooleanConsumer',['../valueconsumer_8h.html#abea8a189967941972b3e7c5a329c4963',1,'valueconsumer.h']]], + ['booleanproducer_56',['BooleanProducer',['../valueproducer_8h.html#a79edc4b65652f6948d690891bb6d7e0c',1,'valueproducer.h']]], + ['booleantransform_57',['BooleanTransform',['../transform_8h.html#ac1617ff234bef4e8a50341c1d6943246',1,'transform.h']]], + ['bus_5fvoltage_58',['bus_voltage',['../ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a111ba01d5017c5f1829f20d73348f03f',1,'ina219.h']]] +]; diff --git a/docs/search/all_10.html b/docs/generated/docs/search/all_10.html similarity index 84% rename from docs/search/all_10.html rename to docs/generated/docs/search/all_10.html index 170dc09c6..e6ca18b46 100644 --- a/docs/search/all_10.html +++ b/docs/generated/docs/search/all_10.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_10.js b/docs/generated/docs/search/all_10.js new file mode 100644 index 000000000..07450629a --- /dev/null +++ b/docs/generated/docs/search/all_10.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['r1_338',['R1',['../class_voltage_divider_r2.html#a927b6c4d26bc24dfd326f63a0a127f66',1,'VoltageDividerR2']]], + ['r2_339',['R2',['../class_voltage_divider_r1.html#ad00c68d3e756cdb88d099ac0c0eadd1e',1,'VoltageDividerR1']]], + ['rate_5fof_5fpitch_340',['rate_of_pitch',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95eaaaafd973e0adb0637c636ee1934f6200',1,'orientation_9dof_input.h']]], + ['rate_5fof_5froll_341',['rate_of_roll',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea8987706e9866024a60124d12510d11c6',1,'orientation_9dof_input.h']]], + ['rate_5fof_5fturn_342',['rate_of_turn',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea2bfd167dc9dfcb7a507d2e7ea5a6c1d8',1,'orientation_9dof_input.h']]], + ['read_343',['read',['../class_base_analog_reader.html#a47be844ead62b7e39e44b00587b756e7',1,'BaseAnalogReader']]], + ['read9dof_344',['Read9DOF',['../class_read9_d_o_f.html',1,'Read9DOF'],['../class_read9_d_o_f.html#ae2faf1080765ed56709e63f4bfa58289',1,'Read9DOF::Read9DOF()']]], + ['read_5fjson_345',['read_json',['../spiffs__storage_8h.html#a3ca6038ce2edba53098d8ca7ffdaa35d',1,'spiffs_storage.h']]], + ['read_5fstring_346',['read_string',['../spiffs__storage_8cpp.html#a7429780969e66149e25ea6088bf65b7a',1,'read_string(const String filename): spiffs_storage.cpp'],['../spiffs__storage_8h.html#a7429780969e66149e25ea6088bf65b7a',1,'read_string(const String filename): spiffs_storage.cpp']]], + ['reconstruct_5fnmea_5fsentence_347',['reconstruct_nmea_sentence',['../nmea__parser_8cpp.html#a69a390886762ecd9593ebeada6f3e52d',1,'nmea_parser.cpp']]], + ['register_5faddress_348',['register_address',['../class_dallas_temperature_sensors.html#a020ae149bf4372f926d4414ac5c67f5a',1,'DallasTemperatureSensors']]], + ['report_5fsuccess_349',['report_success',['../nmea__parser_8cpp.html#af7a3600deec155122015fcfedfc126a7',1,'nmea_parser.cpp']]], + ['reset_350',['reset',['../class_sens_e_s_p_app.html#a0f7605a2c63a3ed250e1c742608956b2',1,'SensESPApp']]], + ['reset_5fsettings_351',['reset_settings',['../class_networking.html#a207f306c10b8f65ca0904cc26a9ef15c',1,'Networking']]], + ['restart_352',['restart',['../class_w_s_client.html#a478877d14e5a303c24ea60a4cc4f8752',1,'WSClient']]], + ['roll_353',['roll',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea47adc77fa7e4e33d5e567d3377ceda90',1,'orientation_9dof_input.h']]], + ['rtk_5fage_354',['rtk_age',['../struct_n_m_e_a_data.html#a5271f014cd9d9b7ebcfa64d772006044',1,'NMEAData']]], + ['rtk_5ffixed_5finteger_355',['rtk_fixed_integer',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a05e849a8cef5c44456bd54132f622ef2',1,'nmea_parser.cpp']]], + ['rtk_5ffloat_356',['rtk_float',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a1b64cc0e9a9ebc1afccab8e472ed2e3c',1,'nmea_parser.cpp']]], + ['rtk_5fratio_357',['rtk_ratio',['../struct_n_m_e_a_data.html#a590b94e1133efeaa9a05456da0dab2dd',1,'NMEAData']]] +]; diff --git a/docs/search/all_11.html b/docs/generated/docs/search/all_11.html similarity index 84% rename from docs/search/all_11.html rename to docs/generated/docs/search/all_11.html index 10fcd0919..7cf685f14 100644 --- a/docs/search/all_11.html +++ b/docs/generated/docs/search/all_11.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_11.js b/docs/generated/docs/search/all_11.js new file mode 100644 index 000000000..89d2dc330 --- /dev/null +++ b/docs/generated/docs/search/all_11.js @@ -0,0 +1,107 @@ +var searchData= +[ + ['sample_358',['Sample',['../class_curve_interpolator_1_1_sample.html',1,'CurveInterpolator::Sample'],['../class_curve_interpolator_1_1_sample.html#a7ad23733bf31c9a8ccbe9689b55f6d67',1,'CurveInterpolator::Sample::Sample()'],['../class_curve_interpolator_1_1_sample.html#aa2ed35560a823ced306ef02a50d95cac',1,'CurveInterpolator::Sample::Sample(float input, float output)'],['../class_curve_interpolator_1_1_sample.html#a5f69567a227e29b795b68e4310a9da40',1,'CurveInterpolator::Sample::Sample(JsonObject &obj)']]], + ['save_5fconfig_5fcallback_359',['save_config_callback',['../networking_8cpp.html#a7930cb24915efc348611f4c48d1d5e4c',1,'networking.cpp']]], + ['save_5fconfiguration_360',['save_configuration',['../class_configurable.html#a657419f13060caa20c45a41935b9d53a',1,'Configurable']]], + ['send_5fdelta_361',['send_delta',['../class_w_s_client.html#ab6bcc3fb4cfe71aff3929480fab9bd5a',1,'WSClient']]], + ['sensesp_2eh_362',['sensesp.h',['../sensesp_8h.html',1,'']]], + ['sensesp_5fapp_363',['sensesp_app',['../sensesp__app_8cpp.html#a9b53af60ecde971876d66994134fbfff',1,'sensesp_app(): sensesp_app.cpp'],['../sensesp__app_8h.html#a9b53af60ecde971876d66994134fbfff',1,'sensesp_app(): sensesp_app.cpp']]], + ['sensesp_5fapp_2ecpp_364',['sensesp_app.cpp',['../sensesp__app_8cpp.html',1,'']]], + ['sensesp_5fapp_2eh_365',['sensesp_app.h',['../sensesp__app_8h.html',1,'']]], + ['sensesp_5fapp_5fbuilder_2eh_366',['sensesp_app_builder.h',['../sensesp__app__builder_8h.html',1,'']]], + ['sensespapp_367',['SensESPApp',['../class_sens_e_s_p_app.html',1,'SensESPApp'],['../class_sens_e_s_p_app.html#ad50404ad55ffff730011c74a2bac8334',1,'SensESPApp::SensESPApp()']]], + ['sensespappbuilder_368',['SensESPAppBuilder',['../class_sens_e_s_p_app_builder.html',1,'SensESPAppBuilder'],['../class_sens_e_s_p_app.html#a1c94b1836273e4d6f132f5e2c29ba648',1,'SensESPApp::SensESPAppBuilder()'],['../class_sens_e_s_p_app_builder.html#a820e3351c223431dd5ace3020eae7c12',1,'SensESPAppBuilder::SensESPAppBuilder()']]], + ['sensor_369',['Sensor',['../class_sensor.html',1,'Sensor'],['../class_sensor.html#a921d5f94f7f77fa42b5950a807a8e79c',1,'Sensor::Sensor()']]], + ['sensor_2ecpp_370',['sensor.cpp',['../sensor_8cpp.html',1,'']]], + ['sensor_2eh_371',['sensor.h',['../sensor_8h.html',1,'']]], + ['sensor_5ffxos_5ffxas_372',['sensor_fxos_fxas',['../orientation__9dof__input_8cpp.html#a98d89d1a44b4415ca4d8ae0c8ce74ee6',1,'orientation_9dof_input.cpp']]], + ['sensor_5fnxp_5ffxos8700_5ffxas21002_2ecpp_373',['sensor_nxp_fxos8700_fxas21002.cpp',['../sensor__nxp__fxos8700__fxas21002_8cpp.html',1,'']]], + ['sensor_5fnxp_5ffxos8700_5ffxas21002_2eh_374',['sensor_nxp_fxos8700_fxas21002.h',['../sensor__nxp__fxos8700__fxas21002_8h.html',1,'']]], + ['sensornxp_5ffxos8700_5ffxas21002_375',['SensorNXP_FXOS8700_FXAS21002',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html',1,'SensorNXP_FXOS8700_FXAS21002'],['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a681937828c756188c18330a7aacd1ecb',1,'SensorNXP_FXOS8700_FXAS21002::SensorNXP_FXOS8700_FXAS21002()']]], + ['sensors_376',['sensors',['../class_dallas_temperature_sensors.html#abd79995496fd66d416e6d9cd1ff56342',1,'DallasTemperatureSensors']]], + ['sentence_377',['sentence',['../class_sentence_parser.html#aa079d8ee1b96e2f03a9c7a1f2ddf7519',1,'SentenceParser::sentence()'],['../class_g_p_g_g_a_sentence_parser.html#ac70d60b587cd0e48479c397bb30983a3',1,'GPGGASentenceParser::sentence()'],['../class_g_p_g_l_l_sentence_parser.html#acbee347184ae22343a9af2515ae57c98',1,'GPGLLSentenceParser::sentence()'],['../class_g_p_r_m_c_sentence_parser.html#a75afdae2ce4e8a27676d86ef2f5cbf9f',1,'GPRMCSentenceParser::sentence()'],['../class_p_s_t_i_sentence_parser.html#add6764d7c0579101840b82a86f6bd2ef',1,'PSTISentenceParser::sentence()'],['../class_p_s_t_i030_sentence_parser.html#adf5b386bffd76b1055d70aa59615d493',1,'PSTI030SentenceParser::sentence()'],['../class_p_s_t_i032_sentence_parser.html#acbe297f07ea6729d870ec8222535b1ce',1,'PSTI032SentenceParser::sentence()']]], + ['sentenceparser_378',['SentenceParser',['../class_sentence_parser.html',1,'SentenceParser'],['../class_sentence_parser.html#a20be85c734aab87cf783aaa6a999a29a',1,'SentenceParser::SentenceParser()']]], + ['set_379',['set',['../class_observable_value.html#a51cf25d4951d3214021da0c25985838d',1,'ObservableValue']]], + ['set_5fconfiguration_380',['set_configuration',['../class_networking.html#a59d475a2f12b88ef8334274a9a0b1cee',1,'Networking::set_configuration()'],['../class_w_s_client.html#ad099870379ee102fa4f5b3b584b50658',1,'WSClient::set_configuration()'],['../class_one_wire_temperature.html#a83bce20a52e396dbd97a43a6e72b2824',1,'OneWireTemperature::set_configuration()'],['../class_s_k_output.html#a406e7e56220dd41bd567c56c0e6b9a4d',1,'SKOutput::set_configuration()'],['../class_s_k_output_time.html#a41ad61c700a444916873e908612eca63',1,'SKOutputTime::set_configuration()'],['../class_configurable.html#a6e0281fe25cfbdf024bdb05147ffb52b',1,'Configurable::set_configuration()'],['../class_analog_voltage.html#a37e88929680d2cf431f2da3ee38c140f',1,'AnalogVoltage::set_configuration()'],['../class_angle_correction.html#a53b1594b6161feff6f218a2aa7a05ad3',1,'AngleCorrection::set_configuration()'],['../class_change_filter.html#a0bbe692080d7ee9a41fcd77a3f581ca9',1,'ChangeFilter::set_configuration()'],['../class_curve_interpolator.html#acfda195c475a261d2e2a3af365fd6c19',1,'CurveInterpolator::set_configuration()'],['../class_difference.html#a57e134a00cd6688d147f93c662520040',1,'Difference::set_configuration()'],['../class_frequency.html#a87d16c67ce064b9b0f671747808c3963',1,'Frequency::set_configuration()'],['../class_integrator.html#aa53205d3211635dad0a035adf5d511a6',1,'Integrator::set_configuration()'],['../class_lambda_transform.html#a94d320a35eee5177c8d85b4c0c21948a',1,'LambdaTransform::set_configuration()'],['../class_median.html#ac06073c22b922aceee9f01ddaccfb54a',1,'Median::set_configuration()'],['../class_moving_average.html#a9f02a3c253c6456e4d5c063ea5f6d364',1,'MovingAverage::set_configuration()'],['../class_numeric_threshold.html#a714de271f5489664146ac9090a0dc14b',1,'NumericThreshold::set_configuration()'],['../class_integer_threshold.html#a92097f9bf12f55f4ccea4c44e63b1ff2',1,'IntegerThreshold::set_configuration()'],['../class_voltage_divider_r1.html#a629323d44b24dabe6e54c06a80dfe280',1,'VoltageDividerR1::set_configuration()'],['../class_voltage_divider_r2.html#a805b64252dccfd3720ce5fc0f84964b3',1,'VoltageDividerR2::set_configuration()']]], + ['set_5fhostname_381',['set_hostname',['../class_sens_e_s_p_app_builder.html#a154893dfbbca4f214b733f3a0d147b76',1,'SensESPAppBuilder::set_hostname()'],['../class_s_k_delta.html#acd3c98ae0fe75f92d5d9c1e6a216a8dd',1,'SKDelta::set_hostname()']]], + ['set_5finput_382',['set_input',['../class_digital_output.html#a565a9c57af6dbc61d4895c4b35fe3a6a',1,'DigitalOutput::set_input()'],['../class_s_k_output.html#a58191f013e06068ca13ca85365fd0957',1,'SKOutput::set_input()'],['../class_value_consumer.html#a0a2ab6f7c8bfb460d8778f6ae727cde7',1,'ValueConsumer::set_input()'],['../class_a_d_s1x15_voltage.html#aee56be05b6373547f7b9a228c8234227',1,'ADS1x15Voltage::set_input()'],['../class_analog_voltage.html#a86c85f6bae3f7e478a48475a7d69b5c8',1,'AnalogVoltage::set_input()'],['../class_angle_correction.html#afd9a559ce1218e9b78137ff1a9c6d77d',1,'AngleCorrection::set_input()'],['../class_change_filter.html#a48249b125e44834d6641484b49f3a877',1,'ChangeFilter::set_input()'],['../class_curve_interpolator.html#af2ce224bb3f29245ea8d90cee0c5bdb6',1,'CurveInterpolator::set_input()'],['../class_debounce.html#a4101506b2f5c17184e976f2fb43b1b1b',1,'Debounce::set_input()'],['../class_difference.html#a432ef87751c6bee8e5dadc610dfcb4ff',1,'Difference::set_input()'],['../class_frequency.html#a99df388f446a8aa46f465fe464023f55',1,'Frequency::set_input()'],['../class_integrator.html#a7fb38d2d19aa3e918dbee34b9096f7a6',1,'Integrator::set_input()'],['../class_lambda_transform.html#a842321e8581af77178e2cd9016f27c28',1,'LambdaTransform::set_input()'],['../class_median.html#ad20ab4e65d66330c5fa1e1cf0f16036c',1,'Median::set_input()'],['../class_moving_average.html#a22a08de98351ed805b49beecb234ab0b',1,'MovingAverage::set_input()'],['../class_threshold_transform.html#ac83f16930cb638bb7995a89bada5da8d',1,'ThresholdTransform::set_input()'],['../class_time_string.html#adde406ecfdeea029a07c54c87f29580f',1,'TimeString::set_input()'],['../class_voltage_multiplier.html#a606d3a993996bc18fca30f9231c30518',1,'VoltageMultiplier::set_input()'],['../class_voltage_divider_r1.html#ad9cb0660e2c1e82a6740739fcfc2a360',1,'VoltageDividerR1::set_input()'],['../class_voltage_divider_r2.html#a43fa7bb9dc49c50de247aac272d7f697',1,'VoltageDividerR2::set_input()']]], + ['set_5fled_5fblinker_383',['set_led_blinker',['../class_sens_e_s_p_app_builder.html#afcbebdfc6392d7bca08371fdffed2779',1,'SensESPAppBuilder']]], + ['set_5fled_5fpin_384',['set_led_pin',['../class_sens_e_s_p_app_builder.html#aa00b3826099409cd15defce2cba7ce71',1,'SensESPAppBuilder']]], + ['set_5fpriority_385',['set_priority',['../class_enable.html#affdeaa165e0c553dd3490487a65432c8',1,'Enable']]], + ['set_5fserver_5fconnected_386',['set_server_connected',['../class_led_blinker.html#a0cdd9d7e8cc453edd234ce2785ce28ea',1,'LedBlinker']]], + ['set_5fserver_5fdisconnected_387',['set_server_disconnected',['../class_led_blinker.html#ab0f765b76f30406a7b53d4360c897d64',1,'LedBlinker']]], + ['set_5fsk_5fpath_388',['set_sk_path',['../class_s_k_emitter.html#a670348fb1ef1bf3d5e1ba49660fc15d9',1,'SKEmitter']]], + ['set_5fsk_5fserver_389',['set_sk_server',['../class_sens_e_s_p_app_builder.html#a2a1b039efc3345f1d909b7adea3342ee',1,'SensESPAppBuilder']]], + ['set_5fstandard_5fsensors_390',['set_standard_sensors',['../class_sens_e_s_p_app_builder.html#aa17d9342f404c76087f27bd6d34729e0',1,'SensESPAppBuilder']]], + ['set_5fstate_391',['set_state',['../class_led_blinker.html#aa9870e4cb1a35a175edcd710142b8595',1,'LedBlinker']]], + ['set_5fwifi_392',['set_wifi',['../class_sens_e_s_p_app_builder.html#a81a82a604d3720c50b1bbe7d7c649172',1,'SensESPAppBuilder']]], + ['set_5fwifi_5fconnected_393',['set_wifi_connected',['../class_led_blinker.html#a394a529a52a7ee1e0321498de017f788',1,'LedBlinker']]], + ['set_5fwifi_5fdisconnected_394',['set_wifi_disconnected',['../class_led_blinker.html#a9c0b4f9aaacc14ab555df6abb43e8ae5',1,'LedBlinker']]], + ['setup_395',['setup',['../class_networking.html#a94815dd34af734e9fc3839cbe6279355',1,'Networking']]], + ['setup_2eh_396',['setup.h',['../setup_8h.html',1,'']]], + ['setup_5fanalog_5finput_397',['setup_analog_input',['../wiring__helpers_8cpp.html#a3a4bbd0371b8285dbb7b8666d50a53a3',1,'setup_analog_input(String sk_path, float k, float c, String config_path): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a70ac1c40d730c9e0f9b93b1f4dd5f0f9',1,'setup_analog_input(String sk_path, float k=1, float c=0, String config_path=""): wiring_helpers.cpp']]], + ['setup_5fdiscovery_398',['setup_discovery',['../discovery_8cpp.html#aeea49ee803402167d8d79ca58268363e',1,'setup_discovery(const char *hostname): discovery.cpp'],['../discovery_8h.html#aeea49ee803402167d8d79ca58268363e',1,'setup_discovery(const char *hostname): discovery.cpp']]], + ['setup_5ffuel_5fflow_5fmeter_399',['setup_fuel_flow_meter',['../wiring__helpers_8cpp.html#ae36e0604b36693bd720bffcf4145baf9',1,'setup_fuel_flow_meter(int inflow_pin, int return_flow_pin): wiring_helpers.cpp'],['../wiring__helpers_8h.html#ae36e0604b36693bd720bffcf4145baf9',1,'setup_fuel_flow_meter(int inflow_pin, int return_flow_pin): wiring_helpers.cpp']]], + ['setup_5fgps_400',['setup_gps',['../wiring__helpers_8cpp.html#a8f7d5e59747355ce523001faddc7ada9',1,'setup_gps(Stream *rx_stream): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a8f7d5e59747355ce523001faddc7ada9',1,'setup_gps(Stream *rx_stream): wiring_helpers.cpp']]], + ['setup_5fonewire_5ftemperature_401',['setup_onewire_temperature',['../wiring__helpers_8cpp.html#a17220137bcd65b6f922f5a14165a8fcf',1,'setup_onewire_temperature(SensESPApp *seapp, DallasTemperatureSensors *dts, String sk_path, String config_path, String schema): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a37c83d7d3ac2abb00e8f9e86c1da52d3',1,'setup_onewire_temperature(DallasTemperatureSensors *dts, String sk_path, String config_path): wiring_helpers.h']]], + ['setup_5fota_402',['setup_ota',['../ota_8cpp.html#a33a44650f7c396edaeee69c33952d906',1,'setup_ota(): ota.cpp'],['../ota_8h.html#a33a44650f7c396edaeee69c33952d906',1,'setup_ota(): ota.cpp']]], + ['setup_5frpm_5fmeter_403',['setup_rpm_meter',['../wiring__helpers_8cpp.html#aa6279a7bab0b61c448263a90303bb7e0',1,'setup_rpm_meter(SensESPApp *seapp, int input_pin): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a99ed20d80aca90bb060c88019c5f739f',1,'setup_rpm_meter(int input_pin): wiring_helpers.h']]], + ['setup_5fsaved_5fssid_404',['setup_saved_ssid',['../class_networking.html#a91507b52fbc31dd34d143c8a5634027e',1,'Networking']]], + ['setup_5fspiffs_5fstorage_405',['setup_spiffs_storage',['../spiffs__storage_8cpp.html#a1dfee751479797b385c81cacb151c115',1,'setup_spiffs_storage(): spiffs_storage.cpp'],['../spiffs__storage_8h.html#a1dfee751479797b385c81cacb151c115',1,'setup_spiffs_storage(): spiffs_storage.cpp']]], + ['setup_5fstandard_5fsensors_406',['setup_standard_sensors',['../sensesp__app_8cpp.html#a7c23c6671a7c574688672c9ba0a0e41d',1,'sensesp_app.cpp']]], + ['setup_5fwifi_5fmanager_407',['setup_wifi_manager',['../class_networking.html#a082fa99914f8f6f277b640667877c85e',1,'Networking']]], + ['setupserialdebug_408',['SetupSerialDebug',['../sensesp__app_8cpp.html#a26cd8b11d153355437b86342648b9d70',1,'SetupSerialDebug(uint32_t baudrate): sensesp_app.cpp'],['../sensesp__app_8h.html#a26cd8b11d153355437b86342648b9d70',1,'SetupSerialDebug(uint32_t baudrate): sensesp_app.cpp']]], + ['should_5fsave_5fconfig_409',['should_save_config',['../networking_8cpp.html#ade4bb65788e7b6ea2d2e3e026baf7310',1,'networking.cpp']]], + ['sht31_410',['SHT31',['../class_s_h_t31.html',1,'SHT31'],['../class_s_h_t31_value.html#af5cb2bc533abf1fb620473d581dab56a',1,'SHT31Value::sht31()'],['../class_s_h_t31.html#a01363a697cf87524b3afdd62bd9c103f',1,'SHT31::SHT31()']]], + ['sht31_2ecpp_411',['sht31.cpp',['../sht31_8cpp.html',1,'']]], + ['sht31_2eh_412',['sht31.h',['../sht31_8h.html',1,'']]], + ['sht31valtype_413',['SHT31ValType',['../sht31_8h.html#a6c9ef8dce1c0c00daf564286ec45ce04',1,'sht31.h']]], + ['sht31value_414',['SHT31Value',['../class_s_h_t31_value.html',1,'SHT31Value'],['../class_s_h_t31_value.html#a2407a923743f358ee2a566de926fa69f',1,'SHT31Value::SHT31Value()'],['../sht31_8h.html#a4c30892c341612f9799ac178cf78112d',1,'SHT31value(): sht31.h']]], + ['shunt_5fvoltage_415',['shunt_voltage',['../ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a02073ae5cd2835f972526f8a03dd2af1',1,'ina219.h']]], + ['signalk_5fdelta_2ecpp_416',['signalk_delta.cpp',['../signalk__delta_8cpp.html',1,'']]], + ['signalk_5fdelta_2eh_417',['signalk_delta.h',['../signalk__delta_8h.html',1,'']]], + ['signalk_5femitter_2ecpp_418',['signalk_emitter.cpp',['../signalk__emitter_8cpp.html',1,'']]], + ['signalk_5femitter_2eh_419',['signalk_emitter.h',['../signalk__emitter_8h.html',1,'']]], + ['signalk_5flistener_2ecpp_420',['signalk_listener.cpp',['../signalk__listener_8cpp.html',1,'']]], + ['signalk_5flistener_2eh_421',['signalk_listener.h',['../signalk__listener_8h.html',1,'']]], + ['signalk_5foutput_2eh_422',['signalk_output.h',['../signalk__output_8h.html',1,'']]], + ['signalk_5fposition_2ecpp_423',['signalk_position.cpp',['../signalk__position_8cpp.html',1,'']]], + ['signalk_5fposition_2eh_424',['signalk_position.h',['../signalk__position_8h.html',1,'']]], + ['signalk_5ftime_2ecpp_425',['signalk_time.cpp',['../signalk__time_8cpp.html',1,'']]], + ['signalk_5ftime_2eh_426',['signalk_time.h',['../signalk__time_8h.html',1,'']]], + ['signalk_5fvalue_5flistener_2eh_427',['signalk_value_listener.h',['../signalk__value__listener_8h.html',1,'']]], + ['simulator_5fmode_428',['simulator_mode',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a32b763dac1af6b0b08ab952ea202f6a3',1,'nmea_parser.cpp']]], + ['sk_5fdelta_429',['sk_delta',['../sensesp__app_8cpp.html#a34899f6b1a4ca06784bcbc532d96b286',1,'sensesp_app.cpp']]], + ['sk_5fpath_430',['sk_path',['../class_s_k_emitter.html#a06dbe70e930074437b12b86ac4e2464c',1,'SKEmitter::sk_path()'],['../class_s_k_listener.html#aea949b68b41530f13cf565a0398880f5',1,'SKListener::sk_path()']]], + ['skboollistener_431',['SKBoolListener',['../signalk__value__listener_8h.html#a8f575605d1ef3b54dda1b6c42176ea58',1,'signalk_value_listener.h']]], + ['skdelta_432',['SKDelta',['../class_s_k_delta.html',1,'SKDelta'],['../class_s_k_delta.html#a3d4825fc72903feaebe635dc643d2b16',1,'SKDelta::SKDelta()']]], + ['skemitter_433',['SKEmitter',['../class_s_k_emitter.html',1,'SKEmitter'],['../class_s_k_emitter.html#aeba0ccd27a8b6bad1e2ddbf2603a5d8d',1,'SKEmitter::SKEmitter()']]], + ['skintlistener_434',['SKIntListener',['../signalk__value__listener_8h.html#adf04f595b2363166ad957fdf9ce49df8',1,'signalk_value_listener.h']]], + ['skips_435',['skips',['../class_change_filter.html#ae51076f79fdfc36e34b8383a0e13e700',1,'ChangeFilter']]], + ['sklistener_436',['SKListener',['../class_s_k_listener.html',1,'SKListener'],['../class_s_k_listener.html#ad72197ab8a7a24d83152df74477527b1',1,'SKListener::SKListener()']]], + ['sknumericlistener_437',['SKNumericListener',['../signalk__value__listener_8h.html#a75e67b33609f9d94e37f31d5b8d28323',1,'signalk_value_listener.h']]], + ['skoutput_438',['SKOutput',['../class_s_k_output.html',1,'SKOutput< T >'],['../class_s_k_output.html#a88f9638dd4779818b41a62738ba44876',1,'SKOutput::SKOutput()'],['../class_s_k_output.html#a811a99c30626b6840000b0c152aa1f37',1,'SKOutput::SKOutput(String sk_path, String config_path="")']]], + ['skoutputbool_439',['SKOutputBool',['../signalk__output_8h.html#a1a26c344db2dff33a77cf620aafa6c0c',1,'signalk_output.h']]], + ['skoutputint_440',['SKOutputInt',['../signalk__output_8h.html#a2a0e216e5ada5e31f7a6d995d2c52642',1,'signalk_output.h']]], + ['skoutputnumber_441',['SKOutputNumber',['../signalk__output_8h.html#a6c84656f504f6de21c63c1d54d6f39e1',1,'signalk_output.h']]], + ['skoutputposition_442',['SKOutputPosition',['../signalk__position_8h.html#af7b68a40dd9aa2220abb8e1bd8998455',1,'signalk_position.h']]], + ['skoutputstring_443',['SKOutputString',['../signalk__output_8h.html#a008f63a91ea787950cb6c17e4c031859',1,'signalk_output.h']]], + ['skoutputtime_444',['SKOutputTime',['../class_s_k_output_time.html',1,'SKOutputTime'],['../class_s_k_output_time.html#ab77e9bdfeb69fd37c6fc87ac247146e4',1,'SKOutputTime::SKOutputTime()']]], + ['skstringlistener_445',['SKStringListener',['../signalk__value__listener_8h.html#a754369a24853b40cebe8febff7b43e65',1,'signalk_value_listener.h']]], + ['skvaluelistener_446',['SKValueListener',['../class_s_k_value_listener.html',1,'SKValueListener< T >'],['../class_s_k_value_listener.html#ad8b01da288238c75b8f4e2f119e5e136',1,'SKValueListener::SKValueListener()']]], + ['speed_447',['speed',['../struct_n_m_e_a_data.html#afe6efa0ec62ce332673ab98b282990c8',1,'NMEAData']]], + ['spiffs_5fstorage_2ecpp_448',['spiffs_storage.cpp',['../spiffs__storage_8cpp.html',1,'']]], + ['spiffs_5fstorage_2eh_449',['spiffs_storage.h',['../spiffs__storage_8h.html',1,'']]], + ['standardsensors_450',['StandardSensors',['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbd',1,'sensesp_app.h']]], + ['stream_5fraw_5fvalues_451',['stream_raw_values',['../class_orientation9_d_o_f.html#a4631c8cdba0a0e3cb174ce508c30950f',1,'Orientation9DOF']]], + ['string_5fto_5fowda_452',['string_to_owda',['../onewire__temperature_8cpp.html#a2ea2a536fdbbb476ae3fb824d73d3e1a',1,'onewire_temperature.cpp']]], + ['stringconsumer_453',['StringConsumer',['../valueconsumer_8h.html#a1d91b84157f6818bb8b8b04caede8a02',1,'valueconsumer.h']]], + ['stringproducer_454',['StringProducer',['../valueproducer_8h.html#ab845e985974e3ae4c050b8f221337b0d',1,'valueproducer.h']]], + ['stringsensor_455',['StringSensor',['../class_string_sensor.html',1,'StringSensor'],['../class_string_sensor.html#a8ed16d934bf90314e4f00dba25b1d202',1,'StringSensor::StringSensor()']]], + ['stringtransform_456',['StringTransform',['../transform_8h.html#a463af5c6e30307ac67004d67dd014030',1,'transform.h']]], + ['symmetrictransform_457',['SymmetricTransform',['../class_symmetric_transform.html',1,'SymmetricTransform< T >'],['../class_symmetric_transform.html#a77383aeb8a2dc0e27a2fbc24b451bc90',1,'SymmetricTransform::SymmetricTransform()']]], + ['symmetrictransform_3c_20float_20_3e_458',['SymmetricTransform< float >',['../class_symmetric_transform.html',1,'']]], + ['system_5finfo_2ecpp_459',['system_info.cpp',['../system__info_8cpp.html',1,'']]], + ['system_5finfo_2eh_460',['system_info.h',['../system__info_8h.html',1,'']]], + ['systemhz_461',['SystemHz',['../class_system_hz.html',1,'SystemHz'],['../class_system_hz.html#a72aa9d59ca93c864b3c4bba55fdd4ec6',1,'SystemHz::SystemHz()']]] +]; diff --git a/docs/search/all_12.html b/docs/generated/docs/search/all_12.html similarity index 84% rename from docs/search/all_12.html rename to docs/generated/docs/search/all_12.html index 0876adf45..b8bb4910e 100644 --- a/docs/search/all_12.html +++ b/docs/generated/docs/search/all_12.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_12.js b/docs/generated/docs/search/all_12.js new file mode 100644 index 000000000..92b74f6a7 --- /dev/null +++ b/docs/generated/docs/search/all_12.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['temperature_462',['temperature',['../bme280_8h.html#acce372cdae7772cfadaa815858c0956da9922a43d37bee3212593f77ce4ec82f3',1,'temperature(): bme280.h'],['../bmp280_8h.html#ab9dfceb0d5985ce5ae28521c2ddb5bf4a9922a43d37bee3212593f77ce4ec82f3',1,'temperature(): bmp280.h'],['../sht31_8h.html#a6c9ef8dce1c0c00daf564286ec45ce04a9922a43d37bee3212593f77ce4ec82f3',1,'temperature(): sht31.h']]], + ['threshold_2ecpp_463',['threshold.cpp',['../threshold_8cpp.html',1,'']]], + ['threshold_2eh_464',['threshold.h',['../threshold_8h.html',1,'']]], + ['thresholdtransform_465',['ThresholdTransform',['../class_threshold_transform.html',1,'ThresholdTransform< C, P >'],['../class_threshold_transform.html#a4c948e2da55fdff4efdd479f93523866',1,'ThresholdTransform::ThresholdTransform()']]], + ['thresholdtransform_3c_20float_2c_20bool_20_3e_466',['ThresholdTransform< float, bool >',['../class_threshold_transform.html',1,'']]], + ['thresholdtransform_3c_20int_2c_20bool_20_3e_467',['ThresholdTransform< int, bool >',['../class_threshold_transform.html',1,'']]], + ['timestring_468',['TimeString',['../class_time_string.html',1,'TimeString'],['../class_time_string.html#adc18ed47c4b6d88acceec81741aab5c3',1,'TimeString::TimeString()']]], + ['timestring_2ecpp_469',['timestring.cpp',['../timestring_8cpp.html',1,'']]], + ['timestring_2eh_470',['timestring.h',['../timestring_8h.html',1,'']]], + ['transform_471',['Transform',['../class_transform.html',1,'Transform< C, P >'],['../class_transform.html#a764037842596e71f15621e3732dac75a',1,'Transform::Transform()']]], + ['transform_2ecpp_472',['transform.cpp',['../transform_8cpp.html',1,'']]], + ['transform_2eh_473',['transform.h',['../transform_8h.html',1,'']]], + ['transform_3c_20float_2c_20bool_20_3e_474',['Transform< float, bool >',['../class_transform.html',1,'']]], + ['transform_3c_20float_2c_20float_20_3e_475',['Transform< float, float >',['../class_transform.html',1,'']]], + ['transform_3c_20in_2c_20out_20_3e_476',['Transform< IN, OUT >',['../class_transform.html',1,'']]], + ['transform_3c_20int_2c_20bool_20_3e_477',['Transform< int, bool >',['../class_transform.html',1,'']]], + ['transform_3c_20int_2c_20float_20_3e_478',['Transform< int, float >',['../class_transform.html',1,'']]], + ['transform_3c_20t_2c_20t_20_3e_479',['Transform< T, T >',['../class_transform.html',1,'']]], + ['transform_3c_20time_5ft_2c_20string_20_3e_480',['Transform< time_t, String >',['../class_transform.html',1,'']]], + ['transformbase_481',['TransformBase',['../class_transform_base.html',1,'TransformBase'],['../class_transform_base.html#a4f28a4ec27046ac3ef1546eda4b5b43b',1,'TransformBase::TransformBase()']]], + ['true_5fcourse_482',['true_course',['../struct_n_m_e_a_data.html#a91263e0aa16f47a7535d8d4a09b2ffca',1,'NMEAData']]] +]; diff --git a/docs/search/all_13.html b/docs/generated/docs/search/all_13.html similarity index 84% rename from docs/search/all_13.html rename to docs/generated/docs/search/all_13.html index dc6c0496a..bb149d4e2 100644 --- a/docs/search/all_13.html +++ b/docs/generated/docs/search/all_13.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_13.js b/docs/generated/docs/search/all_13.js new file mode 100644 index 000000000..8fe46a9bd --- /dev/null +++ b/docs/generated/docs/search/all_13.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['ultrasonic_5fdistance_2ecpp_483',['ultrasonic_distance.cpp',['../ultrasonic__distance_8cpp.html',1,'']]], + ['ultrasonic_5fdistance_2eh_484',['ultrasonic_distance.h',['../ultrasonic__distance_8h.html',1,'']]], + ['ultrasonicdistance_485',['UltrasonicDistance',['../class_ultrasonic_distance.html',1,'UltrasonicDistance'],['../class_ultrasonic_distance.html#a5aaf744be7d7be1fbb3a96cbda8e1cbd',1,'UltrasonicDistance::UltrasonicDistance()']]], + ['ultrasonicsens_486',['UltrasonicSens',['../ultrasonic__distance_8h.html#a338eb3dc4d54d3371114ad3304ffab4f',1,'ultrasonic_distance.h']]], + ['up_487',['up',['../struct_e_n_u_vector.html#ac4254f925ae071868c7961a006cdf768',1,'ENUVector']]], + ['uptime_488',['Uptime',['../class_uptime.html',1,'Uptime'],['../class_uptime.html#a3723d5d7c5b11879065dc3defb6e171f',1,'Uptime::Uptime()'],['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda51305f206950897626327f194518087d',1,'UPTIME(): sensesp_app.h']]], + ['use_5flib_5fwebsocket_489',['USE_LIB_WEBSOCKET',['../sensesp__app_8h.html#a8abe44af131f55591035d3587ca9484d',1,'sensesp_app.h']]] +]; diff --git a/docs/search/all_14.html b/docs/generated/docs/search/all_14.html similarity index 84% rename from docs/search/all_14.html rename to docs/generated/docs/search/all_14.html index 7fe46634d..08e1d0bcf 100644 --- a/docs/search/all_14.html +++ b/docs/generated/docs/search/all_14.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_14.js b/docs/generated/docs/search/all_14.js new file mode 100644 index 000000000..74f09505e --- /dev/null +++ b/docs/generated/docs/search/all_14.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['valueconsumer_490',['ValueConsumer',['../class_value_consumer.html',1,'']]], + ['valueconsumer_2eh_491',['valueconsumer.h',['../valueconsumer_8h.html',1,'']]], + ['valueproducer_492',['ValueProducer',['../class_value_producer.html',1,'ValueProducer< T >'],['../class_value_producer.html#a0ef05992883120f7202c14fd8e577103',1,'ValueProducer::ValueProducer()']]], + ['valueproducer_2eh_493',['valueproducer.h',['../valueproducer_8h.html',1,'']]], + ['valueproducer_3c_20enuvector_20_3e_494',['ValueProducer< ENUVector >',['../class_value_producer.html',1,'']]], + ['valueproducer_3c_20float_20_3e_495',['ValueProducer< float >',['../class_value_producer.html',1,'']]], + ['valueproducer_3c_20int_20_3e_496',['ValueProducer< int >',['../class_value_producer.html',1,'']]], + ['valueproducer_3c_20position_20_3e_497',['ValueProducer< Position >',['../class_value_producer.html',1,'']]], + ['valueproducer_3c_20string_20_3e_498',['ValueProducer< String >',['../class_value_producer.html',1,'']]], + ['valueproducer_3c_20time_5ft_20_3e_499',['ValueProducer< time_t >',['../class_value_producer.html',1,'']]], + ['valueproducer_3c_20uint32_5ft_20_3e_500',['ValueProducer< uint32_t >',['../class_value_producer.html',1,'']]], + ['variation_501',['variation',['../struct_n_m_e_a_data.html#ab5b508669ea5109f812b28cdba65c402',1,'NMEAData']]], + ['vin_502',['Vin',['../class_voltage_divider_r1.html#a0431451b00c45c89d3ac5bf4fec692c3',1,'VoltageDividerR1::Vin()'],['../class_voltage_divider_r2.html#a482239a7e4031b16091886109efd2296',1,'VoltageDividerR2::Vin()']]], + ['void_5fcb_5ffunc_503',['void_cb_func',['../sensesp_8h.html#abb3668fa85a914138ab7c0c4329681ec',1,'sensesp.h']]], + ['voltage_5fmultiplier_2ecpp_504',['voltage_multiplier.cpp',['../voltage__multiplier_8cpp.html',1,'']]], + ['voltage_5fmultiplier_2eh_505',['voltage_multiplier.h',['../voltage__multiplier_8h.html',1,'']]], + ['voltagedivider_2ecpp_506',['voltagedivider.cpp',['../voltagedivider_8cpp.html',1,'']]], + ['voltagedivider_2eh_507',['voltagedivider.h',['../voltagedivider_8h.html',1,'']]], + ['voltagedividerr1_508',['VoltageDividerR1',['../class_voltage_divider_r1.html',1,'VoltageDividerR1'],['../class_voltage_divider_r1.html#a559bd31c65cb8a407e7e28d968d97678',1,'VoltageDividerR1::VoltageDividerR1()']]], + ['voltagedividerr2_509',['VoltageDividerR2',['../class_voltage_divider_r2.html',1,'VoltageDividerR2'],['../class_voltage_divider_r2.html#a609ab5e2db4122ddc875a94ba8f9d325',1,'VoltageDividerR2::VoltageDividerR2()']]], + ['voltagemultiplier_510',['VoltageMultiplier',['../class_voltage_multiplier.html',1,'VoltageMultiplier'],['../class_voltage_multiplier.html#a987803f756c42ddfd2f5bf18ad01d779',1,'VoltageMultiplier::VoltageMultiplier()']]] +]; diff --git a/docs/search/all_15.html b/docs/generated/docs/search/all_15.html similarity index 84% rename from docs/search/all_15.html rename to docs/generated/docs/search/all_15.html index c0fc0aab7..e438c039e 100644 --- a/docs/search/all_15.html +++ b/docs/generated/docs/search/all_15.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_15.js b/docs/generated/docs/search/all_15.js new file mode 100644 index 000000000..e418c5a86 --- /dev/null +++ b/docs/generated/docs/search/all_15.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['websocketclientevent_511',['webSocketClientEvent',['../ws__client_8cpp.html#a5e74f160471b58a262cceef5edaea7e0',1,'ws_client.cpp']]], + ['wifi_5fconfig_5fportal_5ftimeout_512',['WIFI_CONFIG_PORTAL_TIMEOUT',['../networking_8cpp.html#a6beb3d9ab4141921e87c56b399230fce',1,'networking.cpp']]], + ['wifi_5fsignal_513',['WIFI_SIGNAL',['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda16948e5a45a0e6caffb0b1b85f342b7e',1,'sensesp_app.h']]], + ['wifisignal_514',['WifiSignal',['../class_wifi_signal.html',1,'WifiSignal'],['../class_wifi_signal.html#ad471294e67baafcf42e0b17f5d0f00ec',1,'WifiSignal::WifiSignal()']]], + ['wiring_5fhelpers_2ecpp_515',['wiring_helpers.cpp',['../wiring__helpers_8cpp.html',1,'']]], + ['wiring_5fhelpers_2eh_516',['wiring_helpers.h',['../wiring__helpers_8h.html',1,'']]], + ['write_5fjson_517',['write_json',['../spiffs__storage_8h.html#a48b9b058342e94d2f8c0c2670799b9fe',1,'spiffs_storage.h']]], + ['write_5fstring_518',['write_string',['../spiffs__storage_8cpp.html#ae1cd66733f6f724334874c5ff65b958b',1,'write_string(const String filename, String data): spiffs_storage.cpp'],['../spiffs__storage_8h.html#ae1cd66733f6f724334874c5ff65b958b',1,'write_string(const String filename, String data): spiffs_storage.cpp']]], + ['ws_5fclient_519',['ws_client',['../ws__client_8cpp.html#a4d8d7cfce2bd21646b059e9aa4d0349b',1,'ws_client(): ws_client.cpp'],['../sensesp__app_8cpp.html#aeb920b4c25bb4d9442ce03911e40d074',1,'ws_client(): sensesp_app.cpp']]], + ['ws_5fclient_2ecpp_520',['ws_client.cpp',['../ws__client_8cpp.html',1,'']]], + ['ws_5fclient_2eh_521',['ws_client.h',['../ws__client_8h.html',1,'']]], + ['ws_5fconnected_5fcb_522',['ws_connected_cb',['../sensesp__app_8cpp.html#a16ab74864a3ce810c06ceed3810a8245',1,'sensesp_app.cpp']]], + ['ws_5fdelta_5fcb_523',['ws_delta_cb',['../sensesp__app_8cpp.html#a76c1c042dbf7ae6cd2b10d537dfd789c',1,'sensesp_app.cpp']]], + ['wsclient_524',['WSClient',['../class_w_s_client.html',1,'WSClient'],['../class_w_s_client.html#a1c800c9ef6791e3103a3ec3eb2ef38f7',1,'WSClient::WSClient()']]] +]; diff --git a/docs/generated/docs/search/all_16.html b/docs/generated/docs/search/all_16.html new file mode 100644 index 000000000..cd0301f12 --- /dev/null +++ b/docs/generated/docs/search/all_16.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/all_16.js b/docs/generated/docs/search/all_16.js new file mode 100644 index 000000000..676519cc1 --- /dev/null +++ b/docs/generated/docs/search/all_16.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_7ehttpserver_525',['~HTTPServer',['../class_h_t_t_p_server.html#af09066b05417f9a9ce9f1cd8e5ad9e18',1,'HTTPServer']]] +]; diff --git a/docs/search/all_2.html b/docs/generated/docs/search/all_2.html similarity index 84% rename from docs/search/all_2.html rename to docs/generated/docs/search/all_2.html index 4c33d8557..1f81f6645 100644 --- a/docs/search/all_2.html +++ b/docs/generated/docs/search/all_2.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_2.js b/docs/generated/docs/search/all_2.js new file mode 100644 index 000000000..4ce5bd28b --- /dev/null +++ b/docs/generated/docs/search/all_2.js @@ -0,0 +1,33 @@ +var searchData= +[ + ['cal16_5f400_59',['cal16_400',['../ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0a01a08da826cf9ddb397bf94f3cea755c',1,'ina219.h']]], + ['cal32_5f1_60',['cal32_1',['../ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0a588648d40e059f0ff2d9297aedbbf915',1,'ina219.h']]], + ['cal32_5f2_61',['cal32_2',['../ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0ae0ccdd359f693e07141b4bcef13e149a',1,'ina219.h']]], + ['change_5ffilter_2ecpp_62',['change_filter.cpp',['../change__filter_8cpp.html',1,'']]], + ['change_5ffilter_2eh_63',['change_filter.h',['../change__filter_8h.html',1,'']]], + ['changefilter_64',['ChangeFilter',['../class_change_filter.html',1,'ChangeFilter'],['../class_change_filter.html#ae7e753c0391e335c7b6cc4ec14bad7c9',1,'ChangeFilter::ChangeFilter()']]], + ['check_5fconnection_65',['check_connection',['../class_networking.html#ae4b12924970227730df3377144301a7c',1,'Networking']]], + ['chip_66',['chip',['../class_a_d_s1x15_voltage.html#a48d2d14becbbe8147a166cf9ac24adbb',1,'ADS1x15Voltage']]], + ['clear_5fsamples_67',['clear_samples',['../class_curve_interpolator.html#a89d37139f9b601e8a1c74335811c2af2',1,'CurveInterpolator']]], + ['clearsamples_68',['clearSamples',['../class_curve_interpolator.html#afb1dbb8e85015e2909dff8495875f8f5',1,'CurveInterpolator']]], + ['compass_5fhdg_69',['compass_hdg',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea1aca2377e3a0b9909c2dc93959beb751',1,'orientation_9dof_input.h']]], + ['config_5fpath_70',['config_path',['../class_configurable.html#aaa54fa6156d9c7f5848d670bd9b18aa9',1,'Configurable']]], + ['configurable_71',['Configurable',['../class_configurable.html',1,'Configurable'],['../class_configurable.html#a8972a439fb9b734ff68d27c699640f78',1,'Configurable::Configurable()']]], + ['configurable_2ecpp_72',['configurable.cpp',['../configurable_8cpp.html',1,'']]], + ['configurable_2eh_73',['configurable.h',['../configurable_8h.html',1,'']]], + ['configurables_74',['configurables',['../configurable_8cpp.html#a19ac563e52fea3af6b643155f9d258b6',1,'configurables(): configurable.cpp'],['../configurable_8h.html#a19ac563e52fea3af6b643155f9d258b6',1,'configurables(): configurable.cpp']]], + ['configure_75',['configure',['../class_base_analog_reader.html#a4967330c789c7bce878ceeeb2108ea65',1,'BaseAnalogReader']]], + ['connect_76',['connect',['../class_w_s_client.html#a1612670a5dccbc8a39518ae972fbae90',1,'WSClient::connect()'],['../class_sens_e_s_p_app.html#aa41795cde59d1bb57906dff6102ee7dc',1,'SensESPApp::connect()'],['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a00127c0fb0aa12d05fbaa1887552d074',1,'SensorNXP_FXOS8700_FXAS21002::connect()']]], + ['connect_5f1to1_5fh_77',['connect_1to1_h',['../class_sens_e_s_p_app.html#aa6e3bc4bb1c696cc0bef02835ce0f7bf',1,'SensESPApp']]], + ['connect_5ffrom_78',['connect_from',['../class_value_consumer.html#a913d68690f22e5829fd8fca4f893adf5',1,'ValueConsumer']]], + ['connect_5fto_79',['connect_to',['../class_value_producer.html#a5920fda501e9eb4328f4a7d14d02fa39',1,'ValueProducer::connect_to(ValueConsumer< T > *consumer, uint8_t input_channel=0)'],['../class_value_producer.html#a3156eb097154b0a64227b0c8ef36aefd',1,'ValueProducer::connect_to(Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)']]], + ['connected_80',['connected',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba8ba3de7243211c98f5ec24395c73d65b',1,'ws_client.h']]], + ['connectfrom_81',['connectFrom',['../class_value_consumer.html#a236eaf49e25b8cab99845a76dd1fb73e',1,'ValueConsumer::connectFrom()'],['../class_transform.html#a145d0f289f0e63caf31f0f728d63f97e',1,'Transform::connectFrom()']]], + ['connecting_82',['connecting',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9bab4dbdd36e3f602f54d0024fd818e12d6',1,'ws_client.h']]], + ['connectionstate_83',['ConnectionState',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9b',1,'ws_client.h']]], + ['connectto_84',['connectTo',['../class_value_producer.html#a567a7940bdda6bace2c50704242f1d96',1,'ValueProducer::connectTo(ValueConsumer< T > *consumer, uint8_t input_channel=0)'],['../class_value_producer.html#ae22489a1be8fbee367e4ef21f73abfb3',1,'ValueProducer::connectTo(Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)']]], + ['current_85',['current',['../ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a8225bfb34b5298eb7529ec580a4d178e',1,'ina219.h']]], + ['curveinterpolator_86',['CurveInterpolator',['../class_curve_interpolator.html',1,'CurveInterpolator'],['../class_curve_interpolator.html#a09bdf144307f1264c36d5afaea5c96a3',1,'CurveInterpolator::CurveInterpolator()']]], + ['curveinterpolator_2ecpp_87',['curveinterpolator.cpp',['../curveinterpolator_8cpp.html',1,'']]], + ['curveinterpolator_2eh_88',['curveinterpolator.h',['../curveinterpolator_8h.html',1,'']]] +]; diff --git a/docs/search/all_3.html b/docs/generated/docs/search/all_3.html similarity index 84% rename from docs/search/all_3.html rename to docs/generated/docs/search/all_3.html index b634070bc..2e31ab911 100644 --- a/docs/search/all_3.html +++ b/docs/generated/docs/search/all_3.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_3.js b/docs/generated/docs/search/all_3.js new file mode 100644 index 000000000..2a0b3d582 --- /dev/null +++ b/docs/generated/docs/search/all_3.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['dallastemperaturesensors_89',['DallasTemperatureSensors',['../class_dallas_temperature_sensors.html',1,'DallasTemperatureSensors'],['../class_dallas_temperature_sensors.html#a778aa28e0e329028f2811c5ed71cb11d',1,'DallasTemperatureSensors::DallasTemperatureSensors()']]], + ['data_5favailable_90',['data_available',['../class_s_k_delta.html#a74ab20a661a4f80a336b50fccc4bd9bc',1,'SKDelta']]], + ['datetime_91',['datetime',['../struct_n_m_e_a_data.html#aae3cb7b0e14cc41ad1c271b9afaae27d',1,'NMEAData']]], + ['debounce_92',['Debounce',['../class_debounce.html',1,'Debounce'],['../class_debounce.html#ade9ea26c6050fc08d43e0758c2a572b2',1,'Debounce::Debounce()']]], + ['debounce_2ecpp_93',['debounce.cpp',['../debounce_8cpp.html',1,'']]], + ['debounce_2eh_94',['debounce.h',['../debounce_8h.html',1,'']]], + ['debug_95',['Debug',['../sensesp_8h.html#a5ae2f374710d648c2027c78237f5df01',1,'Debug(): sensesp_app.cpp'],['../sensesp__app_8cpp.html#a5ae2f374710d648c2027c78237f5df01',1,'Debug(): sensesp_app.cpp']]], + ['description_96',['description',['../struct_param_info.html#a4cc8fb2021184f5b228e6307f3507a38',1,'ParamInfo']]], + ['dgnss_5ffix_97',['dgnss_fix',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a8d26d1fa1d0cda42a29843162786a0b6',1,'nmea_parser.cpp']]], + ['dgps_5fage_98',['dgps_age',['../struct_n_m_e_a_data.html#af61e9824ffaf9b43c1a95d8d7a93bc10',1,'NMEAData']]], + ['dgps_5fid_99',['dgps_id',['../struct_n_m_e_a_data.html#a99328058cfe4cf26b5025511d64ce576',1,'NMEAData']]], + ['difference_100',['Difference',['../class_difference.html',1,'Difference'],['../class_difference.html#ab37fbe4fe6592f7591a124c1b90f8f48',1,'Difference::Difference()']]], + ['difference_2ecpp_101',['difference.cpp',['../difference_8cpp.html',1,'']]], + ['difference_2eh_102',['difference.h',['../difference_8h.html',1,'']]], + ['digital_5finput_2ecpp_103',['digital_input.cpp',['../digital__input_8cpp.html',1,'']]], + ['digital_5finput_2eh_104',['digital_input.h',['../digital__input_8h.html',1,'']]], + ['digital_5foutput_2ecpp_105',['digital_output.cpp',['../digital__output_8cpp.html',1,'']]], + ['digital_5foutput_2eh_106',['digital_output.h',['../digital__output_8h.html',1,'']]], + ['digitalinput_107',['DigitalInput',['../class_digital_input.html',1,'DigitalInput'],['../class_digital_input.html#ac87da1c4d7b53427d71d71b34d25c6eb',1,'DigitalInput::DigitalInput()']]], + ['digitalinputcounter_108',['DigitalInputCounter',['../class_digital_input_counter.html',1,'DigitalInputCounter'],['../class_digital_input_counter.html#adde82c1aeae1f8f452b3bbb31a3114a5',1,'DigitalInputCounter::DigitalInputCounter()']]], + ['digitalinputvalue_109',['DigitalInputValue',['../class_digital_input_value.html',1,'DigitalInputValue'],['../class_digital_input_value.html#ad7195dc579200d7e8b04fb00fff3ea35',1,'DigitalInputValue::DigitalInputValue()']]], + ['digitaloutput_110',['DigitalOutput',['../class_digital_output.html',1,'DigitalOutput'],['../class_digital_output.html#a49b9011baf6e4280e6a4f8be0177bc1b',1,'DigitalOutput::DigitalOutput()']]], + ['disconnected_111',['disconnected',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba519f950c18a0ec32082cf9984cd2b225',1,'ws_client.h']]], + ['discovery_2ecpp_112',['discovery.cpp',['../discovery_8cpp.html',1,'']]], + ['discovery_2eh_113',['discovery.h',['../discovery_8h.html',1,'']]] +]; diff --git a/docs/search/all_4.html b/docs/generated/docs/search/all_4.html similarity index 84% rename from docs/search/all_4.html rename to docs/generated/docs/search/all_4.html index dd062aeae..0540c1633 100644 --- a/docs/search/all_4.html +++ b/docs/generated/docs/search/all_4.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_4.js b/docs/generated/docs/search/all_4.js new file mode 100644 index 000000000..92f82f6f3 --- /dev/null +++ b/docs/generated/docs/search/all_4.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['east_114',['east',['../struct_e_n_u_vector.html#affaf84db367ff8259448116fe4c75370',1,'ENUVector']]], + ['enable_115',['Enable',['../class_enable.html',1,'Enable'],['../class_h_t_t_p_server.html#a6f5600d8187ec82cb83e84252a387c38',1,'HTTPServer::enable()'],['../class_w_s_client.html#a1313d063fd61739f7e3ca9b2c126b048',1,'WSClient::enable()'],['../class_sens_e_s_p_app.html#a3d70c22bfd1bf842f6daa83ab2f50f79',1,'SensESPApp::enable()'],['../class_a_d_s1x15.html#a86230f10cfa6fcccbb189d91fbcbb6d8',1,'ADS1x15::enable()'],['../class_a_d_s1x15_value.html#ae0ee6cebb76815406ef8d9ee816e33ec',1,'ADS1x15Value::enable()'],['../class_analog_input.html#a34942eae263f68e8f44fa3f405d057fb',1,'AnalogInput::enable()'],['../class_b_m_e280_value.html#afac9027689bc79c15e329bebec201c1b',1,'BME280Value::enable()'],['../class_b_m_p280_value.html#a29c3968e8ceb876e9e5731d1df863b63',1,'BMP280Value::enable()'],['../class_digital_input_value.html#a504c6c9ad6578156df7eb524f9635912',1,'DigitalInputValue::enable()'],['../class_digital_input_counter.html#a9848278592225d90ff71b99ce940771e',1,'DigitalInputCounter::enable()'],['../class_g_p_s_input.html#af94497b920d346ed5ccad18bd4dbfd9c',1,'GPSInput::enable()'],['../class_i_n_a219_value.html#a25ba9003cc31670bbcf36d5b8cd0a3f4',1,'INA219Value::enable()'],['../class_m_a_x31856_thermocouple.html#a37980d9b2f2682da48c16cc60b3b6565',1,'MAX31856Thermocouple::enable()'],['../class_dallas_temperature_sensors.html#ae30b8206143d488a4d887b4294da6bb2',1,'DallasTemperatureSensors::enable()'],['../class_one_wire_temperature.html#a86817f083dfb5e9373b48d8fd1f8d165',1,'OneWireTemperature::enable()'],['../class_read9_d_o_f.html#a3b193507742276276121243b8c280c72',1,'Read9DOF::enable()'],['../class_s_h_t31_value.html#a0104d033db3ee61af842bf4c320d0602',1,'SHT31Value::enable()'],['../class_system_hz.html#a2f2337dcbe45cce879392f28579e233d',1,'SystemHz::enable()'],['../class_free_mem.html#aa3487ef2dff96a33778881da391b2129',1,'FreeMem::enable()'],['../class_uptime.html#a677ab855187348527ccdb0725552e02a',1,'Uptime::enable()'],['../class_i_p_addr_dev.html#afd8dec59375d39cf785819f8ea3685a1',1,'IPAddrDev::enable()'],['../class_wifi_signal.html#ac326583e59ad78951c1ba2f56091e2b3',1,'WifiSignal::enable()'],['../class_ultrasonic_distance.html#a03aafa94461f81daefa1bdaf8186a7b2',1,'UltrasonicDistance::enable()'],['../class_enable.html#a62ea021bf8d986150be346977a8eede3',1,'Enable::enable()'],['../class_frequency.html#a0d6846952b3295809421ac18633e397e',1,'Frequency::enable()'],['../class_integrator.html#ad52503a30ef9abf171209988d256ec22',1,'Integrator::enable()'],['../class_enable.html#a62d0a37863086502e168bfa8ab94ebc0',1,'Enable::Enable()']]], + ['enable_2ecpp_116',['enable.cpp',['../enable_8cpp.html',1,'']]], + ['enable_2eh_117',['enable.h',['../enable_8h.html',1,'']]], + ['enable_5fall_118',['enable_all',['../class_enable.html#a0c8851096f3f60293bd4ffee5c7cd1ef',1,'Enable']]], + ['enable_5fled_119',['ENABLE_LED',['../sensesp__app_8h.html#add0ff5bdcc203b4a438aa1f46260283d',1,'sensesp_app.h']]], + ['enableall_120',['enableAll',['../class_enable.html#addb956e5a06d89d698efd787205a9dc2',1,'Enable']]], + ['enu_5fvelocity_121',['enu_velocity',['../struct_n_m_e_a_data.html#a1b62fa2b8b0b62d9cef48f7576e0da30',1,'NMEAData']]], + ['enuvector_122',['ENUVector',['../struct_e_n_u_vector.html',1,'']]], + ['error_123',['error',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520ad606e435413ea0944dd00d49e901e4ed',1,'nmea_parser.cpp']]], + ['estimated_5fmode_124',['estimated_mode',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a59f188885f9974ee947a7e5af4b9f5bc',1,'nmea_parser.cpp']]] +]; diff --git a/docs/search/all_5.html b/docs/generated/docs/search/all_5.html similarity index 84% rename from docs/search/all_5.html rename to docs/generated/docs/search/all_5.html index f0780fdd3..ebec30bfa 100644 --- a/docs/search/all_5.html +++ b/docs/generated/docs/search/all_5.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_5.js b/docs/generated/docs/search/all_5.js new file mode 100644 index 000000000..9f338c6a0 --- /dev/null +++ b/docs/generated/docs/search/all_5.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['filter_125',['filter',['../sensor__nxp__fxos8700__fxas21002_8cpp.html#a95a042ebf2273805da333239d975ecae',1,'sensor_nxp_fxos8700_fxas21002.cpp']]], + ['flip_126',['flip',['../class_led_blinker.html#af00270a463b74c855dfc95d98c7bfd7e',1,'LedBlinker']]], + ['free_5fmemory_127',['FREE_MEMORY',['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda5891c7e995ff517e945876b41f35bbb7',1,'sensesp_app.h']]], + ['freemem_128',['FreeMem',['../class_free_mem.html',1,'FreeMem'],['../class_free_mem.html#aa8b5f3ef10c4148f75d6dc531a3d46c3',1,'FreeMem::FreeMem()']]], + ['frequency_129',['Frequency',['../class_frequency.html',1,'Frequency'],['../class_frequency.html#abbaff61b74433bb8a990685be24c3c8b',1,'Frequency::Frequency()'],['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda0ef2c92b2317b95f9ef1ae102029d676',1,'FREQUENCY(): sensesp_app.h']]], + ['frequency_2ecpp_130',['frequency.cpp',['../frequency_8cpp.html',1,'']]], + ['frequency_2eh_131',['frequency.h',['../frequency_8h.html',1,'']]], + ['fxas_132',['fxas',['../sensor__nxp__fxos8700__fxas21002_8cpp.html#a4b1ab4b048fbbcd75a1e22958393fb95',1,'sensor_nxp_fxos8700_fxas21002.cpp']]], + ['fxos_133',['fxos',['../sensor__nxp__fxos8700__fxas21002_8cpp.html#a3aa61c72e9dcb6f6313835817ba9d134',1,'sensor_nxp_fxos8700_fxas21002.cpp']]] +]; diff --git a/docs/search/all_6.html b/docs/generated/docs/search/all_6.html similarity index 84% rename from docs/search/all_6.html rename to docs/generated/docs/search/all_6.html index 39b0f555c..31cbd052e 100644 --- a/docs/search/all_6.html +++ b/docs/generated/docs/search/all_6.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_6.js b/docs/generated/docs/search/all_6.js new file mode 100644 index 000000000..d79b0772c --- /dev/null +++ b/docs/generated/docs/search/all_6.js @@ -0,0 +1,45 @@ +var searchData= +[ + ['gain_134',['gain',['../class_a_d_s1x15_voltage.html#a240ceea4ec8b5c29d26a3d856ae73690',1,'ADS1x15Voltage']]], + ['gathercalibrationdataonce_135',['gatherCalibrationDataOnce',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#ab3532ac68215da8b09b1004766175024',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['gatherorientationdataonce_136',['gatherOrientationDataOnce',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#afad8509ff38a0b8cc9415c1d17193259',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['geoidal_5fseparation_137',['geoidal_separation',['../struct_n_m_e_a_data.html#a3acdff78f354082419d01ebfe8846f7f',1,'NMEAData']]], + ['get_138',['get',['../class_value_producer.html#adaf30ea1027efa0c83c75dfe3afc0c1a',1,'ValueProducer']]], + ['get_5fapp_139',['get_app',['../class_sens_e_s_p_app_builder.html#a4a6855b053816852d61fd7012ea46e1f',1,'SensESPAppBuilder']]], + ['get_5fconfig_5fschema_140',['get_config_schema',['../class_networking.html#a253025ed2a3c36eb998e7b900155359e',1,'Networking::get_config_schema()'],['../class_w_s_client.html#a78fbe2ccf0f84423abbf9d1047aff0bc',1,'WSClient::get_config_schema()'],['../class_one_wire_temperature.html#a4331b2b91d6c7d000454e741cdce9d0a',1,'OneWireTemperature::get_config_schema()'],['../class_s_k_output.html#a0f29018517bcb51943dae1dd7bbace0a',1,'SKOutput::get_config_schema()'],['../class_s_k_output_time.html#aa283f508ef59103626c835cd37b9bfb3',1,'SKOutputTime::get_config_schema()'],['../class_configurable.html#a73131c4e7dd8134f23a93de861e1c0e4',1,'Configurable::get_config_schema()'],['../class_analog_voltage.html#ae9dcab3d6891a5e53c99746b476c6f72',1,'AnalogVoltage::get_config_schema()'],['../class_angle_correction.html#ad31bbb6a8fd400879eceba5f0b2880fe',1,'AngleCorrection::get_config_schema()'],['../class_change_filter.html#a769403176db0e4a619811bbba603d597',1,'ChangeFilter::get_config_schema()'],['../class_curve_interpolator.html#a6f9c593782d05c95ba92810b8f70f287',1,'CurveInterpolator::get_config_schema()'],['../class_difference.html#ac5b6559e3820f2f58bed5d120a440a55',1,'Difference::get_config_schema()'],['../class_frequency.html#a93e3f28917f7faa7411b95745171f6af',1,'Frequency::get_config_schema()'],['../class_integrator.html#a513afaf30460fee68abd295780527d05',1,'Integrator::get_config_schema()'],['../class_lambda_transform.html#adc6dbf53cef06623010cae1cbd1cdbd0',1,'LambdaTransform::get_config_schema()'],['../class_median.html#aa8515edf3b34ee8439bd77dcfc69a93f',1,'Median::get_config_schema()'],['../class_moving_average.html#ad6f06b147a017e528e3d8b991cec2763',1,'MovingAverage::get_config_schema()'],['../class_numeric_threshold.html#a230334ae33c4f4803edea06bcf9ea2f6',1,'NumericThreshold::get_config_schema()'],['../class_integer_threshold.html#a23437fadcb2212cadb7d25724d2fd90c',1,'IntegerThreshold::get_config_schema()'],['../class_voltage_divider_r1.html#a0945340bdc351b89a43dcf46ed073fe0',1,'VoltageDividerR1::get_config_schema()'],['../class_voltage_divider_r2.html#ae37065fd9bd093497ff74a9faf5b6cea',1,'VoltageDividerR2::get_config_schema()']]], + ['get_5fconfiguration_141',['get_configuration',['../class_networking.html#a4071208242243ae91f48884294a18429',1,'Networking::get_configuration()'],['../class_w_s_client.html#ae4b637b051ecf7ee14181208c6f37855',1,'WSClient::get_configuration()'],['../class_one_wire_temperature.html#a00867083ea90878580cc2cc7d3502bda',1,'OneWireTemperature::get_configuration()'],['../class_s_k_output.html#a9151c5f1c00b08a5b68dcb2ec7a2ed45',1,'SKOutput::get_configuration()'],['../class_s_k_output_time.html#a90ec92a794a311e97b0d89c2941de921',1,'SKOutputTime::get_configuration()'],['../class_configurable.html#a20b0c34bc7386994b6f24863c58a39e7',1,'Configurable::get_configuration()'],['../class_analog_voltage.html#a2b3422b5f6712829e5c093c80f986183',1,'AnalogVoltage::get_configuration()'],['../class_angle_correction.html#aaef0a4f1bd578470a12d046cd745df3b',1,'AngleCorrection::get_configuration()'],['../class_change_filter.html#a92d946de57540d88deb54364a8827f7d',1,'ChangeFilter::get_configuration()'],['../class_curve_interpolator.html#ab375c3b1d191900f1c5561d87ad634cb',1,'CurveInterpolator::get_configuration()'],['../class_difference.html#ae36f623e39d0dceb670ae023e3ce1f52',1,'Difference::get_configuration()'],['../class_frequency.html#a35901f2d996c2e598e1ca0f95ea0e62b',1,'Frequency::get_configuration()'],['../class_integrator.html#a15cc585266b8a2308fa3cc9467693384',1,'Integrator::get_configuration()'],['../class_lambda_transform.html#a508f3eda704b68427d60ed4c00fc8d5d',1,'LambdaTransform::get_configuration()'],['../class_median.html#a658c5210822133ab9f7b8eab173e0edb',1,'Median::get_configuration()'],['../class_moving_average.html#a803ba927db89306b62ebff4375e25ada',1,'MovingAverage::get_configuration()'],['../class_numeric_threshold.html#a3b5472c133ce858cf575716bb682cabe',1,'NumericThreshold::get_configuration()'],['../class_integer_threshold.html#a87724e11f2fade5b245f4099a9f0323c',1,'IntegerThreshold::get_configuration()'],['../class_voltage_divider_r1.html#ac076d517bc3fb64717457a07f477d740',1,'VoltageDividerR1::get_configuration()'],['../class_voltage_divider_r2.html#af76ca11d13ac2ab6e16133a1e1292ef9',1,'VoltageDividerR2::get_configuration()']]], + ['get_5fdelta_142',['get_delta',['../class_s_k_delta.html#ab1592b494b343964703102a4797d3bbc',1,'SKDelta']]], + ['get_5fenable_5fpriority_143',['get_enable_priority',['../class_enable.html#a52c13a29b7cdd574f65e8dffa5c24470',1,'Enable']]], + ['get_5fhostname_144',['get_hostname',['../class_networking.html#a7a3cac2e878aa2c513451f235c70aff7',1,'Networking::get_hostname()'],['../class_sens_e_s_p_app.html#ac068882b9e9f6092da0818c5e42b48b8',1,'SensESPApp::get_hostname()']]], + ['get_5flisten_5fdelay_145',['get_listen_delay',['../class_s_k_listener.html#ad0b2ccb89c8551552b293b337d1ecdf8',1,'SKListener']]], + ['get_5flisteners_146',['get_listeners',['../class_s_k_listener.html#af415adffba7b9ea5b4a379c5344553c3',1,'SKListener']]], + ['get_5fnext_5faddress_147',['get_next_address',['../class_dallas_temperature_sensors.html#a1e1b9cd3dd2bde0d51ef657a490881eb',1,'DallasTemperatureSensors']]], + ['get_5fproperty_5frow_148',['get_property_row',['../networking_8cpp.html#a48cbc1e96bb919a4d4e7631d26744d13',1,'networking.cpp']]], + ['get_5fschema_5ftype_5fstring_149',['get_schema_type_string',['../lambda__transform_8cpp.html#ad157c07ea0943b787f0fb03fa11669bf',1,'get_schema_type_string(const T dummy): lambda_transform.cpp'],['../lambda__transform_8cpp.html#ab2b46faeee0a0a89516c536f0b3fb7c7',1,'get_schema_type_string(const int dummy): lambda_transform.cpp'],['../lambda__transform_8cpp.html#a1ba339fb0c0884b466ff07c096632b6c',1,'get_schema_type_string(const float dummy): lambda_transform.cpp'],['../lambda__transform_8cpp.html#a088917acfc20b1694a87b1bac518676b',1,'get_schema_type_string(const String dummy): lambda_transform.cpp'],['../lambda__transform_8cpp.html#aeff670170ffe32f04eaecd5f5135c7ce',1,'get_schema_type_string(const bool dummy): lambda_transform.cpp'],['../lambda__transform_8h.html#ad157c07ea0943b787f0fb03fa11669bf',1,'get_schema_type_string(const T dummy): lambda_transform.cpp'],['../lambda__transform_8h.html#ab2b46faeee0a0a89516c536f0b3fb7c7',1,'get_schema_type_string(const int dummy): lambda_transform.cpp'],['../lambda__transform_8h.html#a1ba339fb0c0884b466ff07c096632b6c',1,'get_schema_type_string(const float dummy): lambda_transform.cpp'],['../lambda__transform_8h.html#a088917acfc20b1694a87b1bac518676b',1,'get_schema_type_string(const String dummy): lambda_transform.cpp'],['../lambda__transform_8h.html#aeff670170ffe32f04eaecd5f5135c7ce',1,'get_schema_type_string(const bool dummy): lambda_transform.cpp']]], + ['get_5fsensors_150',['get_sensors',['../class_sensor.html#a772509291ea3a645853975e404ad89f9',1,'Sensor']]], + ['get_5fserver_5faddress_151',['get_server_address',['../class_w_s_client.html#a88daee9c4c5b497558c3d07591baa3e0',1,'WSClient']]], + ['get_5fserver_5fport_152',['get_server_port',['../class_w_s_client.html#a26e9057dc9c94a940684716c9c65d113',1,'WSClient']]], + ['get_5fsk_5fpath_153',['get_sk_path',['../class_s_k_emitter.html#ab619d4a66c7683bf06350809e8c2153f',1,'SKEmitter::get_sk_path()'],['../class_s_k_listener.html#acd3c93850871a4ef30d01e3ed08c3fe1',1,'SKListener::get_sk_path()']]], + ['get_5fsources_154',['get_sources',['../class_s_k_emitter.html#a14e45e259c78d1e4ab7bdcce94fc8b02',1,'SKEmitter']]], + ['get_5ftransforms_155',['get_transforms',['../class_transform_base.html#a17bfeb1e7a836b7bc597aa7d7c4ac116',1,'TransformBase']]], + ['get_5fvalue_5fname_156',['get_value_name',['../class_system_hz.html#aafe9250142a6c4b234f3d8e64771ce95',1,'SystemHz::get_value_name()'],['../class_free_mem.html#a114359cfbb1cffce40e545bf00889757',1,'FreeMem::get_value_name()'],['../class_uptime.html#a43cdcac661b684e1c746fcdf7224e68f',1,'Uptime::get_value_name()'],['../class_i_p_addr_dev.html#aad770ae7db264bfc4bc33d3d1dca71fb',1,'IPAddrDev::get_value_name()'],['../class_wifi_signal.html#af2eff535c0ed56dfe91f2c6a17078912',1,'WifiSignal::get_value_name()']]], + ['getaccelerationx_157',['getAccelerationX',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a715cdbdb39e3f12ef813ce3b4c624853',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getaccelerationy_158',['getAccelerationY',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a0a5315f9c1d7bd39f0a50adebd6cd23d',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getaccelerationz_159',['getAccelerationZ',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a410876582b8246975d97655b6288cee5',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getheadingradians_160',['getHeadingRadians',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#aa1db3fbf356c73d64797aed9fa18efa7',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getpitchradians_161',['getPitchRadians',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#aaef033f4cd54969b7057aeed0c8803d8',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getrateofpitch_162',['getRateOfPitch',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a265caeca219432e14d561f15047b51b1',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getrateofroll_163',['getRateOfRoll',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a3f54d150ff5159eeec3fd4188c8766ba',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getrateofturn_164',['getRateOfTurn',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a41a2d8f8e7f6fc97039f074498f1b9f7',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getrollradians_165',['getRollRadians',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#ae1c06e8c4f18bfaaf4bb094a973c70d9',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['gnss_5ffix_166',['gnss_fix',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520adea098971e394461267006ddf5d2d4b0',1,'nmea_parser.cpp']]], + ['gnss_5fquality_167',['gnss_quality',['../struct_n_m_e_a_data.html#a8048e071ffb9f37ff425305525f2223a',1,'NMEAData']]], + ['gnssquality_168',['GNSSQuality',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520',1,'nmea_parser.cpp']]], + ['gnssqualitystrings_169',['gnssQualityStrings',['../nmea__parser_8cpp.html#a78e0374f91eaf4035ec29121f7e40064',1,'nmea_parser.cpp']]], + ['gpggasentenceparser_170',['GPGGASentenceParser',['../class_g_p_g_g_a_sentence_parser.html',1,'GPGGASentenceParser'],['../class_g_p_g_g_a_sentence_parser.html#a1a3a77042194bd6ef59b7960c0f35fd1',1,'GPGGASentenceParser::GPGGASentenceParser()']]], + ['gpgllsentenceparser_171',['GPGLLSentenceParser',['../class_g_p_g_l_l_sentence_parser.html',1,'GPGLLSentenceParser'],['../class_g_p_g_l_l_sentence_parser.html#af4335548b0e919cb23ec9149bc2e8012',1,'GPGLLSentenceParser::GPGLLSentenceParser()']]], + ['gprmcsentenceparser_172',['GPRMCSentenceParser',['../class_g_p_r_m_c_sentence_parser.html',1,'GPRMCSentenceParser'],['../class_g_p_r_m_c_sentence_parser.html#a8ea0212728334cc4b6fa4aa650fa2e58',1,'GPRMCSentenceParser::GPRMCSentenceParser()']]], + ['gps_2ecpp_173',['gps.cpp',['../gps_8cpp.html',1,'']]], + ['gps_2eh_174',['gps.h',['../gps_8h.html',1,'']]], + ['gpsinput_175',['GPSInput',['../class_g_p_s_input.html',1,'GPSInput'],['../class_g_p_s_input.html#ac434000c2641c7ef06badb2d51f79520',1,'GPSInput::GPSInput()']]] +]; diff --git a/docs/search/all_7.html b/docs/generated/docs/search/all_7.html similarity index 84% rename from docs/search/all_7.html rename to docs/generated/docs/search/all_7.html index 9cd0196e7..18c555de2 100644 --- a/docs/search/all_7.html +++ b/docs/generated/docs/search/all_7.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_7.js b/docs/generated/docs/search/all_7.js new file mode 100644 index 000000000..aa7b43437 --- /dev/null +++ b/docs/generated/docs/search/all_7.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['handle_176',['handle',['../class_n_m_e_a_parser.html#a8687b75207c6df0c049721fe5a586913',1,'NMEAParser']]], + ['handle_5fconfig_177',['handle_config',['../class_h_t_t_p_server.html#a3b7406f8ac0cb9b90e86513acee23542',1,'HTTPServer']]], + ['handle_5fdevice_5freset_178',['handle_device_reset',['../class_h_t_t_p_server.html#ab088a2530794acb9db8a8e1910729c35',1,'HTTPServer']]], + ['handle_5fdevice_5frestart_179',['handle_device_restart',['../class_h_t_t_p_server.html#a8b03465f1ad5631d0e20cc67e5419562',1,'HTTPServer']]], + ['handle_5finfo_180',['handle_info',['../class_h_t_t_p_server.html#ac854fa80c31eba36ad3f2dd5f02d4a14',1,'HTTPServer']]], + ['handle_5fnot_5ffound_181',['handle_not_found',['../class_h_t_t_p_server.html#aafce79dc976b69b318f8fe69f45542be',1,'HTTPServer']]], + ['handle_5fota_182',['handle_ota',['../ota_8cpp.html#afe226f1d9a9fde6f6a37a1bf42d76f03',1,'ota.cpp']]], + ['horizontal_5fdilution_183',['horizontal_dilution',['../struct_n_m_e_a_data.html#aa6d1ee7ee222393032e1f57cde891b31',1,'NMEAData']]], + ['hostname_184',['hostname',['../sensesp__app_8cpp.html#ad73d4df2ce4b897a6f527dcc95adde4c',1,'sensesp_app.cpp']]], + ['http_2ecpp_185',['http.cpp',['../http_8cpp.html',1,'']]], + ['http_2eh_186',['http.h',['../http_8h.html',1,'']]], + ['http_5fserver_187',['http_server',['../sensesp__app_8cpp.html#ac8b4b8d72f01d6be9d8b054526139b5b',1,'sensesp_app.cpp']]], + ['http_5fserver_5fport_188',['HTTP_SERVER_PORT',['../http_8cpp.html#a4f905ddd4da1a3e205a8935f4babb25b',1,'http.cpp']]], + ['httpserver_189',['HTTPServer',['../class_h_t_t_p_server.html',1,'HTTPServer'],['../class_sens_e_s_p_app.html#adb5f6061831be202d2cc58ebdffa44d5',1,'SensESPApp::HTTPServer()'],['../class_h_t_t_p_server.html#adacba9a090d5b0465da86dd6c82953a9',1,'HTTPServer::HTTPServer()']]], + ['humidity_190',['humidity',['../bme280_8h.html#acce372cdae7772cfadaa815858c0956daf78a0094726cca324b69464b475ed069',1,'humidity(): bme280.h'],['../sht31_8h.html#a6c9ef8dce1c0c00daf564286ec45ce04af78a0094726cca324b69464b475ed069',1,'humidity(): sht31.h']]], + ['hysteresis_191',['Hysteresis',['../class_hysteresis.html',1,'Hysteresis< IN, OUT >'],['../class_hysteresis.html#aa3f2f59d852e7ab8d8ee0b9cb799a04d',1,'Hysteresis::Hysteresis()']]], + ['hysteresis_2eh_192',['hysteresis.h',['../hysteresis_8h.html',1,'']]], + ['hysteresis_5fparam_5finfo_193',['hysteresis_param_info',['../hysteresis_8h.html#a7e7f7cc8e64ad4edaf12f0937589db19',1,'hysteresis.h']]] +]; diff --git a/docs/search/all_8.html b/docs/generated/docs/search/all_8.html similarity index 84% rename from docs/search/all_8.html rename to docs/generated/docs/search/all_8.html index 1e8fb9ceb..0f9eb416d 100644 --- a/docs/search/all_8.html +++ b/docs/generated/docs/search/all_8.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_8.js b/docs/generated/docs/search/all_8.js new file mode 100644 index 000000000..b065ac270 --- /dev/null +++ b/docs/generated/docs/search/all_8.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['in_5frange_194',['in_range',['../class_threshold_transform.html#a874992f571166f58cd7ef73856d30509',1,'ThresholdTransform']]], + ['ina219_195',['INA219',['../class_i_n_a219.html',1,'INA219'],['../class_i_n_a219.html#a3bdfe18ddb1ca53b53f48ac8672a94d0',1,'INA219::ina219()'],['../class_i_n_a219_value.html#afbc6bf7ce37f6c243d0f944bfa9cfef3',1,'INA219Value::ina219()'],['../class_i_n_a219.html#adc0300a6f6fa99ee85786a354614e343',1,'INA219::INA219()']]], + ['ina219_2ecpp_196',['ina219.cpp',['../ina219_8cpp.html',1,'']]], + ['ina219_2eh_197',['ina219.h',['../ina219_8h.html',1,'']]], + ['ina219cal_5ft_198',['INA219CAL_t',['../ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0',1,'ina219.h']]], + ['ina219valtype_199',['INA219ValType',['../ina219_8h.html#a80681f57fd3d14d390d830a2ea845654',1,'ina219.h']]], + ['ina219value_200',['INA219Value',['../class_i_n_a219_value.html',1,'INA219Value'],['../class_i_n_a219_value.html#a929d4abc76063b697a4836da30d1d5c6',1,'INA219Value::INA219Value()'],['../ina219_8h.html#aab1b0e7a44b1751e455f2f0716da1794',1,'INA219value(): ina219.h']]], + ['index_2eh_201',['index.h',['../index_8h.html',1,'']]], + ['initfilter_202',['initFilter',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a68de3c26ea9715291dcaee9d1260c149',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['input_203',['input',['../class_curve_interpolator_1_1_sample.html#a43dd7cc1fd950a03a6674056194e935b',1,'CurveInterpolator::Sample']]], + ['input_5fbuffer_5flength_204',['INPUT_BUFFER_LENGTH',['../nmea__parser_8h.html#a6088978b66925a9ff44bbdf302f00726',1,'nmea_parser.h']]], + ['integerconsumer_205',['IntegerConsumer',['../valueconsumer_8h.html#a45a844f7269f830a1f708f965627248c',1,'valueconsumer.h']]], + ['integerproducer_206',['IntegerProducer',['../valueproducer_8h.html#ab74ca4be7de22a21f73128ea38a4cbbb',1,'valueproducer.h']]], + ['integersensor_207',['IntegerSensor',['../class_integer_sensor.html',1,'IntegerSensor'],['../class_integer_sensor.html#a2214ecc518fbbb314be8ca987aa0e730',1,'IntegerSensor::IntegerSensor()']]], + ['integerthreshold_208',['IntegerThreshold',['../class_integer_threshold.html',1,'IntegerThreshold'],['../class_integer_threshold.html#a63bb646505b2c51b0d57b0799d062d86',1,'IntegerThreshold::IntegerThreshold()']]], + ['integertransform_209',['IntegerTransform',['../transform_8h.html#ae9c0b5d70ecdf35d4bd3a0a4bd4e0d17',1,'transform.h']]], + ['integrator_210',['Integrator',['../class_integrator.html',1,'Integrator'],['../class_integrator.html#a787de1dd45b1ced5607e6209f0e01dd0',1,'Integrator::Integrator()']]], + ['integrator_2ecpp_211',['integrator.cpp',['../integrator_8cpp.html',1,'']]], + ['integrator_2eh_212',['integrator.h',['../integrator_8h.html',1,'']]], + ['interrupt_5ftype_213',['interrupt_type',['../class_digital_input.html#aa4e30fc0836ce2d0934b9eb5d507f116',1,'DigitalInput']]], + ['ip_5faddress_214',['IP_ADDRESS',['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbdad623eb60dd773b245fe13ee928fd47c8',1,'sensesp_app.h']]], + ['ipaddrdev_215',['IPAddrDev',['../class_i_p_addr_dev.html',1,'IPAddrDev'],['../class_i_p_addr_dev.html#ae5d89601ff69fb635850bbaacdd61664',1,'IPAddrDev::IPAddrDev()']]], + ['is_5fconnected_216',['is_connected',['../class_w_s_client.html#a6ae43b80f511194b43b0dff2763d68b1',1,'WSClient']]], + ['issignalkconnected_217',['isSignalKConnected',['../class_sens_e_s_p_app.html#adee3f53bc75ae6d5d73a8707dd75600e',1,'SensESPApp']]], + ['iswificonnected_218',['isWifiConnected',['../class_sens_e_s_p_app.html#a15f6e0569533b417e9724540d758c884',1,'SensESPApp']]] +]; diff --git a/docs/search/all_9.html b/docs/generated/docs/search/all_9.html similarity index 84% rename from docs/search/all_9.html rename to docs/generated/docs/search/all_9.html index 27df366b2..d27c0f7c2 100644 --- a/docs/search/all_9.html +++ b/docs/generated/docs/search/all_9.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_9.js b/docs/generated/docs/search/all_9.js new file mode 100644 index 000000000..48943790e --- /dev/null +++ b/docs/generated/docs/search/all_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['js_5fjsoneditor_2eh_219',['js_jsoneditor.h',['../js__jsoneditor_8h.html',1,'']]], + ['js_5fsensesp_2eh_220',['js_sensesp.h',['../js__sensesp_8h.html',1,'']]] +]; diff --git a/docs/search/all_a.html b/docs/generated/docs/search/all_a.html similarity index 84% rename from docs/search/all_a.html rename to docs/generated/docs/search/all_a.html index 63f9254d8..2c8b75b32 100644 --- a/docs/search/all_a.html +++ b/docs/generated/docs/search/all_a.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_a.js b/docs/generated/docs/search/all_a.js new file mode 100644 index 000000000..7fc1ebbea --- /dev/null +++ b/docs/generated/docs/search/all_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['key_221',['key',['../struct_param_info.html#a92b4878247486f15fdecf4fc1b6be4e3',1,'ParamInfo']]] +]; diff --git a/docs/search/all_b.html b/docs/generated/docs/search/all_b.html similarity index 84% rename from docs/search/all_b.html rename to docs/generated/docs/search/all_b.html index 44ae3e475..9a220b127 100644 --- a/docs/search/all_b.html +++ b/docs/generated/docs/search/all_b.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_b.js b/docs/generated/docs/search/all_b.js new file mode 100644 index 000000000..127f52962 --- /dev/null +++ b/docs/generated/docs/search/all_b.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['lambda_5ftransform_2ecpp_222',['lambda_transform.cpp',['../lambda__transform_8cpp.html',1,'']]], + ['lambda_5ftransform_2eh_223',['lambda_transform.h',['../lambda__transform_8h.html',1,'']]], + ['lambdatransform_224',['LambdaTransform',['../class_lambda_transform.html',1,'LambdaTransform< IN, OUT, P1, P2, P3, P4, P5, P6 >'],['../class_lambda_transform.html#af6d167a7ea4ba47ae7cb4bd3432e253d',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input), String config_path="")'],['../class_lambda_transform.html#a939ffd37ee47ac29939718a7bd7454c8',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input), const ParamInfo *param_info, String config_path="")'],['../class_lambda_transform.html#ac3925c430e7e61d7444ed8964c757129',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input, P1 param1), P1 param1, const ParamInfo *param_info, String config_path="")'],['../class_lambda_transform.html#a51a052896ce2249e89e3f4309d91dba6',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2), P1 param1, P2 param2, const ParamInfo *param_info, String config_path="")'],['../class_lambda_transform.html#aefd5de0dfb1b4275e8fc558d7fb684b3',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3), P1 param1, P2 param2, P3 param3, const ParamInfo *param_info, String config_path="")'],['../class_lambda_transform.html#a5e427944d82efb35a67d4c2328a5cf0f',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4), P1 param1, P2 param2, P3 param3, P4 param4, const ParamInfo *param_info, String config_path="")'],['../class_lambda_transform.html#a89c2e0c71f2b07f38e457c9c4b02787c',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4, P5 param5), P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, const ParamInfo *param_info, String config_path="")'],['../class_lambda_transform.html#aaac239466264ed93d07c40d407f6feec',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, P6 param6), P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, P6 param6, const ParamInfo *param_info, String config_path="")']]], + ['lambdatransform_3c_20float_2c_20float_2c_20float_2c_20float_20_3e_225',['LambdaTransform< float, float, float, float >',['../class_lambda_transform.html',1,'']]], + ['lambdatransform_3c_20in_2c_20out_2c_20in_2c_20in_2c_20out_2c_20out_20_3e_226',['LambdaTransform< IN, OUT, IN, IN, OUT, OUT >',['../class_lambda_transform.html',1,'']]], + ['last_5ftime_227',['last_time',['../class_debounce.html#a9d6da3eb69ba8fe8ef73a564cfad2e21',1,'Debounce']]], + ['latitude_228',['latitude',['../struct_position.html#ac6606384ff43b39b8614dd3b590d6b36',1,'Position']]], + ['led_5fblinker_229',['led_blinker',['../sensesp__app_8cpp.html#a1221597f95eb6877af3f88a79e735aa7',1,'sensesp_app.cpp']]], + ['led_5fblinker_2ecpp_230',['led_blinker.cpp',['../led__blinker_8cpp.html',1,'']]], + ['led_5fblinker_2eh_231',['led_blinker.h',['../led__blinker_8h.html',1,'']]], + ['led_5fpin_232',['LED_PIN',['../sensesp__app_8h.html#ab4553be4db9860d940f81d7447173b2f',1,'sensesp_app.h']]], + ['ledblinker_233',['LedBlinker',['../class_led_blinker.html',1,'LedBlinker'],['../class_led_blinker.html#a89ec1ec8b1fa698c58f95227a8fc9d3c',1,'LedBlinker::LedBlinker()']]], + ['linear_234',['Linear',['../class_linear.html',1,'Linear'],['../class_linear.html#ad9477f54820b5a234339d342836e9869',1,'Linear::Linear()']]], + ['linear_2ecpp_235',['linear.cpp',['../linear_8cpp.html',1,'']]], + ['linear_2eh_236',['linear.h',['../linear_8h.html',1,'']]], + ['load_5fconfiguration_237',['load_configuration',['../class_configurable.html#ac2ba4044c81acc2fc6bf95cce411f6a4',1,'Configurable']]], + ['load_5fvoltage_238',['load_voltage',['../ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a3edc24834fa7d8deb140997b6e64b067',1,'ina219.h']]], + ['longitude_239',['longitude',['../struct_position.html#a76a87a4287c53ae7e53eba716e740c12',1,'Position']]], + ['loop_240',['loop',['../class_w_s_client.html#ae23657a7da08a9413a09e9054495904e',1,'WSClient']]] +]; diff --git a/docs/search/all_c.html b/docs/generated/docs/search/all_c.html similarity index 84% rename from docs/search/all_c.html rename to docs/generated/docs/search/all_c.html index 3de15867d..ec92b7189 100644 --- a/docs/search/all_c.html +++ b/docs/generated/docs/search/all_c.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_c.js b/docs/generated/docs/search/all_c.js new file mode 100644 index 000000000..5651c719b --- /dev/null +++ b/docs/generated/docs/search/all_c.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['m_5fpi_241',['M_PI',['../angle__correction_8cpp.html#ae71449b1cc6e6250b91f539153a7a0d3',1,'angle_correction.cpp']]], + ['main_2ecpp_242',['main.cpp',['../main_8cpp.html',1,'']]], + ['manual_5finput_243',['manual_input',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a4692e23f3770a255f880456f7fbec485',1,'nmea_parser.cpp']]], + ['max31856_244',['max31856',['../class_m_a_x31856_thermocouple.html#ab5bf3c1660f17374bcb02f65b6cd6e94',1,'MAX31856Thermocouple']]], + ['max31856_5fthermocouple_2ecpp_245',['max31856_thermocouple.cpp',['../max31856__thermocouple_8cpp.html',1,'']]], + ['max31856_5fthermocouple_2eh_246',['max31856_thermocouple.h',['../max31856__thermocouple_8h.html',1,'']]], + ['max31856thermocouple_247',['MAX31856Thermocouple',['../class_m_a_x31856_thermocouple.html',1,'MAX31856Thermocouple'],['../class_m_a_x31856_thermocouple.html#a2e8fb0d3c58fe34f9d49554b418596a8',1,'MAX31856Thermocouple::MAX31856Thermocouple()']]], + ['max_5fanalog_5foutput_248',['MAX_ANALOG_OUTPUT',['../analogvoltage_8h.html#acd21751cadfe75b41534fa2d356d29a3',1,'analogvoltage.h']]], + ['max_5fdelta_249',['max_delta',['../class_change_filter.html#a95afe5f733a86231157059b272b4295a',1,'ChangeFilter']]], + ['max_5fskips_250',['max_skips',['../class_change_filter.html#a3cac91e9ec0a56ae72ad4e0e27fef205',1,'ChangeFilter']]], + ['max_5fterms_251',['MAX_TERMS',['../nmea__parser_8h.html#a6487a496a45b3acfe263589909cfc101',1,'nmea_parser.h']]], + ['max_5fvalue_252',['max_value',['../class_threshold_transform.html#af5ba3ee8aefbc3c4cd81890e781511f3',1,'ThresholdTransform']]], + ['median_253',['Median',['../class_median.html',1,'Median'],['../class_median.html#a14ee18d6419bc212b33fd1d96d6cca2b',1,'Median::Median()']]], + ['median_2ecpp_254',['median.cpp',['../median_8cpp.html',1,'']]], + ['median_2eh_255',['median.h',['../median_8h.html',1,'']]], + ['min_5fdelta_256',['min_delta',['../class_change_filter.html#af9585e67bbf9636617127ef86f4ada81',1,'ChangeFilter']]], + ['min_5fprint_5finterval_5fms_257',['MIN_PRINT_INTERVAL_MS',['../sensor__nxp__fxos8700__fxas21002_8cpp.html#a9f38c1bd6c384c20a2559bbe12f87d18',1,'sensor_nxp_fxos8700_fxas21002.cpp']]], + ['min_5fvalue_258',['min_value',['../class_threshold_transform.html#aa38bf7e3031c7946e5b0bf6b0d9ccd7e',1,'ThresholdTransform']]], + ['moving_5faverage_2ecpp_259',['moving_average.cpp',['../moving__average_8cpp.html',1,'']]], + ['moving_5faverage_2eh_260',['moving_average.h',['../moving__average_8h.html',1,'']]], + ['movingaverage_261',['MovingAverage',['../class_moving_average.html',1,'MovingAverage'],['../class_moving_average.html#adda127d69bc5441a3f4ca98d51c87f4b',1,'MovingAverage::MovingAverage()']]], + ['ms_5fmin_5fdelay_262',['ms_min_delay',['../class_debounce.html#a446259f6501c61e5188dda23f420dbfe',1,'Debounce']]] +]; diff --git a/docs/search/all_d.html b/docs/generated/docs/search/all_d.html similarity index 84% rename from docs/search/all_d.html rename to docs/generated/docs/search/all_d.html index a2d5bd7ed..606caba19 100644 --- a/docs/search/all_d.html +++ b/docs/generated/docs/search/all_d.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_d.js b/docs/generated/docs/search/all_d.js new file mode 100644 index 000000000..e14658376 --- /dev/null +++ b/docs/generated/docs/search/all_d.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['networking_263',['Networking',['../class_networking.html',1,'Networking'],['../class_networking.html#abffdf8c391f0e371da4ff59a05b1c085',1,'Networking::Networking()'],['../sensesp__app_8cpp.html#a21904bc00717232c9d580c83d004b2d9',1,'networking(): sensesp_app.cpp']]], + ['networking_2ecpp_264',['networking.cpp',['../networking_8cpp.html',1,'']]], + ['networking_2eh_265',['networking.h',['../networking_8h.html',1,'']]], + ['nmea_5fdata_266',['nmea_data',['../class_g_p_s_input.html#ae31d915c7701418b950dcbba4f87f72a',1,'GPSInput::nmea_data()'],['../class_sentence_parser.html#a77a87f5f20ac471591d2110856e8232b',1,'SentenceParser::nmea_data()']]], + ['nmea_5fparser_2ecpp_267',['nmea_parser.cpp',['../nmea__parser_8cpp.html',1,'']]], + ['nmea_5fparser_2eh_268',['nmea_parser.h',['../nmea__parser_8h.html',1,'']]], + ['nmeadata_269',['NMEAData',['../struct_n_m_e_a_data.html',1,'']]], + ['nmeaparser_270',['NMEAParser',['../class_n_m_e_a_parser.html',1,'NMEAParser'],['../class_n_m_e_a_parser.html#acf7b68ddc8fc466324abede2dd592ad0',1,'NMEAParser::NMEAParser()']]], + ['no_5fgps_271',['no_gps',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520acad07a79b4226b1e51ce24a510e6aef0',1,'nmea_parser.cpp']]], + ['none_272',['NONE',['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbdac157bdf0b85a40d2619cbc8bc1ae5fe2',1,'sensesp_app.h']]], + ['north_273',['north',['../struct_e_n_u_vector.html#a4cf8b3abdd2edd2f9a463fc6394dbb50',1,'ENUVector']]], + ['notify_274',['notify',['../class_observable.html#a099bf851e05bb8c1a25e83f2a1389e58',1,'Observable']]], + ['null_5fow_5faddr_275',['null_ow_addr',['../onewire__temperature_8cpp.html#af247f8ddcd26451c72c7706fc884a6dc',1,'onewire_temperature.cpp']]], + ['num_5fsatellites_276',['num_satellites',['../struct_n_m_e_a_data.html#ac5e91779da683f23c11da42c1db41b60',1,'NMEAData']]], + ['numericconsumer_277',['NumericConsumer',['../valueconsumer_8h.html#a1220e1ddede7c4512fde395262841b74',1,'valueconsumer.h']]], + ['numericproducer_278',['NumericProducer',['../valueproducer_8h.html#aaf22f94e9cc9067637cd0625ad9fe352',1,'valueproducer.h']]], + ['numericsensor_279',['NumericSensor',['../class_numeric_sensor.html',1,'NumericSensor'],['../class_numeric_sensor.html#a456c5509bf2af2007bd9ee1703e8315f',1,'NumericSensor::NumericSensor()']]], + ['numericthreshold_280',['NumericThreshold',['../class_numeric_threshold.html',1,'NumericThreshold'],['../class_numeric_threshold.html#a60e21bb34053c5b97d14d654f083b17c',1,'NumericThreshold::NumericThreshold()']]], + ['numerictransform_281',['NumericTransform',['../transform_8h.html#ac62af394caec478e4d32c254c96af25b',1,'transform.h']]] +]; diff --git a/docs/search/all_e.html b/docs/generated/docs/search/all_e.html similarity index 84% rename from docs/search/all_e.html rename to docs/generated/docs/search/all_e.html index f9a056dcd..310da244c 100644 --- a/docs/search/all_e.html +++ b/docs/generated/docs/search/all_e.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_e.js b/docs/generated/docs/search/all_e.js new file mode 100644 index 000000000..f9e220edf --- /dev/null +++ b/docs/generated/docs/search/all_e.js @@ -0,0 +1,34 @@ +var searchData= +[ + ['observable_282',['Observable',['../class_observable.html',1,'']]], + ['observable_2ecpp_283',['observable.cpp',['../observable_8cpp.html',1,'']]], + ['observable_2eh_284',['observable.h',['../observable_8h.html',1,'']]], + ['observablevalue_285',['ObservableValue',['../class_observable_value.html',1,'ObservableValue< T >'],['../class_observable_value.html#a92bc2f2646592dc209717bb546d86a2c',1,'ObservableValue::ObservableValue()'],['../class_observable_value.html#adaf97ca440787ba883915603056f002b',1,'ObservableValue::ObservableValue(const T &value)']]], + ['observablevalue_2eh_286',['observablevalue.h',['../observablevalue_8h.html',1,'']]], + ['observablevalue_3c_20enuvector_20_3e_287',['ObservableValue< ENUVector >',['../class_observable_value.html',1,'']]], + ['observablevalue_3c_20float_20_3e_288',['ObservableValue< float >',['../class_observable_value.html',1,'']]], + ['observablevalue_3c_20int_20_3e_289',['ObservableValue< int >',['../class_observable_value.html',1,'']]], + ['observablevalue_3c_20position_20_3e_290',['ObservableValue< Position >',['../class_observable_value.html',1,'']]], + ['observablevalue_3c_20string_20_3e_291',['ObservableValue< String >',['../class_observable_value.html',1,'']]], + ['observablevalue_3c_20time_5ft_20_3e_292',['ObservableValue< time_t >',['../class_observable_value.html',1,'']]], + ['on_5fconnected_293',['on_connected',['../class_w_s_client.html#a262d41693fab15daa3acac9de78fbf35',1,'WSClient']]], + ['on_5fdisconnected_294',['on_disconnected',['../class_w_s_client.html#ae110b10f209f55a82e2d700c8c9149a7',1,'WSClient']]], + ['on_5ferror_295',['on_error',['../class_w_s_client.html#af921852d17f75f46999c2cc1442c4723',1,'WSClient']]], + ['on_5freceive_5fdelta_296',['on_receive_delta',['../class_w_s_client.html#a2b235f3e62668b6e7923cbbcba00e5c1',1,'WSClient']]], + ['onewire_5ftemperature_2ecpp_297',['onewire_temperature.cpp',['../onewire__temperature_8cpp.html',1,'']]], + ['onewire_5ftemperature_2eh_298',['onewire_temperature.h',['../onewire__temperature_8h.html',1,'']]], + ['onewiretemperature_299',['OneWireTemperature',['../class_one_wire_temperature.html',1,'OneWireTemperature'],['../class_one_wire_temperature.html#a1058bb2484427bbf21f7f9e4ea9751f9',1,'OneWireTemperature::OneWireTemperature()']]], + ['operator_3c_300',['operator<',['../class_enable.html#a5e6385aea4a61b890368ce0b411f690c',1,'Enable::operator<()'],['../class_curve_interpolator_1_1_sample.html#a1cf03a106b3a98056fdb448df6fb9c17',1,'CurveInterpolator::Sample::operator<()']]], + ['operator_3d_301',['operator=',['../class_observable_value.html#a900b99ef37a8d31e84c48a97b8eff10d',1,'ObservableValue']]], + ['orientation9dof_302',['Orientation9DOF',['../class_orientation9_d_o_f.html',1,'Orientation9DOF'],['../class_orientation9_d_o_f.html#ad27863d8df7610c8e6c74c874a91fbba',1,'Orientation9DOF::Orientation9DOF()']]], + ['orientation_5f9dof_303',['orientation_9dof',['../class_read9_d_o_f.html#a15c1bf2b7dc82f06a72d259f0d804977',1,'Read9DOF']]], + ['orientation_5f9dof_5finput_2ecpp_304',['orientation_9dof_input.cpp',['../orientation__9dof__input_8cpp.html',1,'']]], + ['orientation_5f9dof_5finput_2eh_305',['orientation_9dof_input.h',['../orientation__9dof__input_8h.html',1,'']]], + ['orientationvaltype_306',['OrientationValType',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95e',1,'orientation_9dof_input.h']]], + ['ota_2ecpp_307',['ota.cpp',['../ota_8cpp.html',1,'']]], + ['ota_2eh_308',['ota.h',['../ota_8h.html',1,'']]], + ['out_5frange_309',['out_range',['../class_threshold_transform.html#af5e848363d0046d8688c2f7da432aac9',1,'ThresholdTransform']]], + ['output_310',['output',['../class_value_producer.html#a9d3882f6de7ef8b05e78947cf9df2697',1,'ValueProducer::output()'],['../class_curve_interpolator_1_1_sample.html#ada14a8de02c7cc737db52aa3a54a330b',1,'CurveInterpolator::Sample::output()']]], + ['owda_5fto_5fstring_311',['owda_to_string',['../onewire__temperature_8cpp.html#ad0134b3041182b5f8c3004025183e6eb',1,'onewire_temperature.cpp']]], + ['owdevaddr_312',['OWDevAddr',['../onewire__temperature_8h.html#aaada9c625aab143feda6189e26144775',1,'onewire_temperature.h']]] +]; diff --git a/docs/search/all_f.html b/docs/generated/docs/search/all_f.html similarity index 84% rename from docs/search/all_f.html rename to docs/generated/docs/search/all_f.html index f6997fa5f..de78f8117 100644 --- a/docs/search/all_f.html +++ b/docs/generated/docs/search/all_f.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/all_f.js b/docs/generated/docs/search/all_f.js new file mode 100644 index 000000000..f42ee2017 --- /dev/null +++ b/docs/generated/docs/search/all_f.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['paraminfo_313',['ParamInfo',['../struct_param_info.html',1,'']]], + ['parse_314',['parse',['../class_sentence_parser.html#ad92490af20d92f942b2e52abfc26007f',1,'SentenceParser::parse(char *buffer, int term_offsets[], int num_terms)=0'],['../class_sentence_parser.html#a74ed90a9386887e9ff2c13dbb12a556e',1,'SentenceParser::parse(char *buffer, int term_offsets[], int num_terms, std::map< String, SentenceParser * > &sentence_parsers)'],['../class_g_p_g_g_a_sentence_parser.html#a6bce986c2fb84af7c54477cd7d43f1b1',1,'GPGGASentenceParser::parse()'],['../class_g_p_g_l_l_sentence_parser.html#ab1583e721b24183fcc59f2b2826b8c52',1,'GPGLLSentenceParser::parse()'],['../class_g_p_r_m_c_sentence_parser.html#a67589bcbddabbe32aac949c3ca9f4a75',1,'GPRMCSentenceParser::parse()'],['../class_p_s_t_i_sentence_parser.html#a308af730f992717a0d1e84416396ae38',1,'PSTISentenceParser::parse(char *buffer, int term_offsets[], int num_terms) override final'],['../class_p_s_t_i_sentence_parser.html#a94f6b75ee9ad9965c4a5cf27e44a12e5',1,'PSTISentenceParser::parse(char *buffer, int term_offsets[], int num_terms, std::map< String, SentenceParser * > &sentence_parsers)'],['../class_p_s_t_i030_sentence_parser.html#aee500dadf0a5ff089d8281c642cdb9bc',1,'PSTI030SentenceParser::parse()'],['../class_p_s_t_i032_sentence_parser.html#ac25a7c9f31987ce7a01ce499f045a6a9',1,'PSTI032SentenceParser::parse()']]], + ['parse_5fav_315',['parse_AV',['../nmea__parser_8cpp.html#af394f12d9ff6fb97e4c158dac1eb6dc0',1,'nmea_parser.cpp']]], + ['parse_5fdate_316',['parse_date',['../nmea__parser_8cpp.html#a29c34542d9842302271bb6a0380d4d4d',1,'nmea_parser.cpp']]], + ['parse_5fdouble_317',['parse_double',['../nmea__parser_8cpp.html#a3f3c4d059e6d6bcc7040f624486d37ae',1,'nmea_parser.cpp']]], + ['parse_5few_318',['parse_EW',['../nmea__parser_8cpp.html#a113615295f150c16f895c9e2525bbd6e',1,'nmea_parser.cpp']]], + ['parse_5ffloat_319',['parse_float',['../nmea__parser_8cpp.html#ac534d920f6775ddb34453e554699e1b4',1,'nmea_parser.cpp']]], + ['parse_5fint_320',['parse_int',['../nmea__parser_8cpp.html#a4de8e35130646cbb488072ff8e457126',1,'nmea_parser.cpp']]], + ['parse_5flatlon_321',['parse_latlon',['../nmea__parser_8cpp.html#a21e8f85a497e58ad08d5c473e89a8463',1,'nmea_parser.cpp']]], + ['parse_5fm_322',['parse_M',['../nmea__parser_8cpp.html#a4021e9ad227b156bfdedaa8fd938590b',1,'nmea_parser.cpp']]], + ['parse_5fns_323',['parse_NS',['../nmea__parser_8cpp.html#a18bf596259e1849f3b6bdbdd765ab606',1,'nmea_parser.cpp']]], + ['parse_5fpsti030_5fmode_324',['parse_PSTI030_mode',['../nmea__parser_8cpp.html#a37bce694f34f625b2c3e29a1a74c1570',1,'nmea_parser.cpp']]], + ['parse_5ftime_325',['parse_time',['../nmea__parser_8cpp.html#a202c8d748e820b33d2fb1a324710698b',1,'nmea_parser.cpp']]], + ['parse_5fvalue_326',['parse_value',['../class_s_k_listener.html#a68a944ab34d3179f0bd0fab320d47a59',1,'SKListener::parse_value()'],['../class_s_k_value_listener.html#a1ececa80ce9841cc5cbef88797148484',1,'SKValueListener::parse_value()']]], + ['pin_327',['pin',['../class_digital_input.html#a92b46ff35c6b0fcf13644727c0a6b61f',1,'DigitalInput']]], + ['pitch_328',['pitch',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea7d727d167958e799288fbf3b43894883',1,'orientation_9dof_input.h']]], + ['position_329',['Position',['../struct_position.html',1,'Position'],['../struct_n_m_e_a_data.html#a249d831d604857b04284d4c33719005e',1,'NMEAData::position()']]], + ['power_330',['power',['../ina219_8h.html#a80681f57fd3d14d390d830a2ea845654af8c33b3fcc6333e88c55e603007e9fe4',1,'ina219.h']]], + ['precise_5fgnss_331',['precise_gnss',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520afa0a09a3165e3cc313372a0b424b149c',1,'nmea_parser.cpp']]], + ['pressure_332',['pressure',['../bme280_8h.html#acce372cdae7772cfadaa815858c0956da8e7f8389b914e827058d694b31468b3a',1,'pressure(): bme280.h'],['../bmp280_8h.html#ab9dfceb0d5985ce5ae28521c2ddb5bf4a8e7f8389b914e827058d694b31468b3a',1,'pressure(): bmp280.h']]], + ['printsensordetails_333',['printSensorDetails',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a85ab2b1718a9e1bc39759ecd9b97730c',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['progmem_334',['PROGMEM',['../index_8h.html#a9e09bea0eddc6841460f6654d2ba1a5f',1,'PROGMEM(): index.h'],['../js__jsoneditor_8h.html#a53fb277b2065a969013a1bc4b071abd1',1,'PROGMEM(): js_jsoneditor.h'],['../js__sensesp_8h.html#a8de262bdd3fe0e74c591a5174112011f',1,'PROGMEM(): js_sensesp.h'],['../setup_8h.html#a183306764a8509f2c9635a13289ea64f',1,'PROGMEM(): setup.h']]], + ['psti030sentenceparser_335',['PSTI030SentenceParser',['../class_p_s_t_i030_sentence_parser.html',1,'PSTI030SentenceParser'],['../class_p_s_t_i030_sentence_parser.html#aa368abaa7d559a9a0893d3846a01fdb7',1,'PSTI030SentenceParser::PSTI030SentenceParser()']]], + ['psti032sentenceparser_336',['PSTI032SentenceParser',['../class_p_s_t_i032_sentence_parser.html',1,'PSTI032SentenceParser'],['../class_p_s_t_i032_sentence_parser.html#af44c303ec78c3a24a18eacb265cee013',1,'PSTI032SentenceParser::PSTI032SentenceParser()']]], + ['pstisentenceparser_337',['PSTISentenceParser',['../class_p_s_t_i_sentence_parser.html',1,'PSTISentenceParser'],['../class_p_s_t_i_sentence_parser.html#a4bb2246e947c443d5bca3706e2853cd0',1,'PSTISentenceParser::PSTISentenceParser()']]] +]; diff --git a/docs/search/classes_0.html b/docs/generated/docs/search/classes_0.html similarity index 84% rename from docs/search/classes_0.html rename to docs/generated/docs/search/classes_0.html index b3c6ec6af..7e0afc844 100644 --- a/docs/search/classes_0.html +++ b/docs/generated/docs/search/classes_0.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_0.js b/docs/generated/docs/search/classes_0.js new file mode 100644 index 000000000..e2972d84e --- /dev/null +++ b/docs/generated/docs/search/classes_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['ads1x15_526',['ADS1x15',['../class_a_d_s1x15.html',1,'']]], + ['ads1x15value_527',['ADS1x15Value',['../class_a_d_s1x15_value.html',1,'']]], + ['ads1x15voltage_528',['ADS1x15Voltage',['../class_a_d_s1x15_voltage.html',1,'']]], + ['analoginput_529',['AnalogInput',['../class_analog_input.html',1,'']]], + ['analogvoltage_530',['AnalogVoltage',['../class_analog_voltage.html',1,'']]], + ['anglecorrection_531',['AngleCorrection',['../class_angle_correction.html',1,'']]] +]; diff --git a/docs/search/classes_1.html b/docs/generated/docs/search/classes_1.html similarity index 84% rename from docs/search/classes_1.html rename to docs/generated/docs/search/classes_1.html index b744c4d15..b27354fbe 100644 --- a/docs/search/classes_1.html +++ b/docs/generated/docs/search/classes_1.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_1.js b/docs/generated/docs/search/classes_1.js new file mode 100644 index 000000000..cfba51cbf --- /dev/null +++ b/docs/generated/docs/search/classes_1.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['baseanalogreader_532',['BaseAnalogReader',['../class_base_analog_reader.html',1,'']]], + ['bme280_533',['BME280',['../class_b_m_e280.html',1,'']]], + ['bme280value_534',['BME280Value',['../class_b_m_e280_value.html',1,'']]], + ['bmp280_535',['BMP280',['../class_b_m_p280.html',1,'']]], + ['bmp280value_536',['BMP280Value',['../class_b_m_p280_value.html',1,'']]] +]; diff --git a/docs/search/classes_10.html b/docs/generated/docs/search/classes_10.html similarity index 84% rename from docs/search/classes_10.html rename to docs/generated/docs/search/classes_10.html index 269003271..eca7860d1 100644 --- a/docs/search/classes_10.html +++ b/docs/generated/docs/search/classes_10.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_10.js b/docs/generated/docs/search/classes_10.js new file mode 100644 index 000000000..fafd4a702 --- /dev/null +++ b/docs/generated/docs/search/classes_10.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['thresholdtransform_610',['ThresholdTransform',['../class_threshold_transform.html',1,'']]], + ['thresholdtransform_3c_20float_2c_20bool_20_3e_611',['ThresholdTransform< float, bool >',['../class_threshold_transform.html',1,'']]], + ['thresholdtransform_3c_20int_2c_20bool_20_3e_612',['ThresholdTransform< int, bool >',['../class_threshold_transform.html',1,'']]], + ['timestring_613',['TimeString',['../class_time_string.html',1,'']]], + ['transform_614',['Transform',['../class_transform.html',1,'']]], + ['transform_3c_20float_2c_20bool_20_3e_615',['Transform< float, bool >',['../class_transform.html',1,'']]], + ['transform_3c_20float_2c_20float_20_3e_616',['Transform< float, float >',['../class_transform.html',1,'']]], + ['transform_3c_20in_2c_20out_20_3e_617',['Transform< IN, OUT >',['../class_transform.html',1,'']]], + ['transform_3c_20int_2c_20bool_20_3e_618',['Transform< int, bool >',['../class_transform.html',1,'']]], + ['transform_3c_20int_2c_20float_20_3e_619',['Transform< int, float >',['../class_transform.html',1,'']]], + ['transform_3c_20t_2c_20t_20_3e_620',['Transform< T, T >',['../class_transform.html',1,'']]], + ['transform_3c_20time_5ft_2c_20string_20_3e_621',['Transform< time_t, String >',['../class_transform.html',1,'']]], + ['transformbase_622',['TransformBase',['../class_transform_base.html',1,'']]] +]; diff --git a/docs/search/classes_11.html b/docs/generated/docs/search/classes_11.html similarity index 84% rename from docs/search/classes_11.html rename to docs/generated/docs/search/classes_11.html index e9f8eabba..4b6ea6793 100644 --- a/docs/search/classes_11.html +++ b/docs/generated/docs/search/classes_11.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_11.js b/docs/generated/docs/search/classes_11.js new file mode 100644 index 000000000..fb2d04a48 --- /dev/null +++ b/docs/generated/docs/search/classes_11.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ultrasonicdistance_623',['UltrasonicDistance',['../class_ultrasonic_distance.html',1,'']]], + ['uptime_624',['Uptime',['../class_uptime.html',1,'']]] +]; diff --git a/docs/generated/docs/search/classes_12.html b/docs/generated/docs/search/classes_12.html new file mode 100644 index 000000000..770988abb --- /dev/null +++ b/docs/generated/docs/search/classes_12.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/classes_12.js b/docs/generated/docs/search/classes_12.js new file mode 100644 index 000000000..1d070cfa8 --- /dev/null +++ b/docs/generated/docs/search/classes_12.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['valueconsumer_625',['ValueConsumer',['../class_value_consumer.html',1,'']]], + ['valueproducer_626',['ValueProducer',['../class_value_producer.html',1,'']]], + ['valueproducer_3c_20enuvector_20_3e_627',['ValueProducer< ENUVector >',['../class_value_producer.html',1,'']]], + ['valueproducer_3c_20float_20_3e_628',['ValueProducer< float >',['../class_value_producer.html',1,'']]], + ['valueproducer_3c_20int_20_3e_629',['ValueProducer< int >',['../class_value_producer.html',1,'']]], + ['valueproducer_3c_20position_20_3e_630',['ValueProducer< Position >',['../class_value_producer.html',1,'']]], + ['valueproducer_3c_20string_20_3e_631',['ValueProducer< String >',['../class_value_producer.html',1,'']]], + ['valueproducer_3c_20time_5ft_20_3e_632',['ValueProducer< time_t >',['../class_value_producer.html',1,'']]], + ['valueproducer_3c_20uint32_5ft_20_3e_633',['ValueProducer< uint32_t >',['../class_value_producer.html',1,'']]], + ['voltagedividerr1_634',['VoltageDividerR1',['../class_voltage_divider_r1.html',1,'']]], + ['voltagedividerr2_635',['VoltageDividerR2',['../class_voltage_divider_r2.html',1,'']]], + ['voltagemultiplier_636',['VoltageMultiplier',['../class_voltage_multiplier.html',1,'']]] +]; diff --git a/docs/generated/docs/search/classes_13.html b/docs/generated/docs/search/classes_13.html new file mode 100644 index 000000000..adcfe8d36 --- /dev/null +++ b/docs/generated/docs/search/classes_13.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/classes_13.js b/docs/generated/docs/search/classes_13.js new file mode 100644 index 000000000..bae8ce972 --- /dev/null +++ b/docs/generated/docs/search/classes_13.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['wifisignal_637',['WifiSignal',['../class_wifi_signal.html',1,'']]], + ['wsclient_638',['WSClient',['../class_w_s_client.html',1,'']]] +]; diff --git a/docs/search/classes_2.html b/docs/generated/docs/search/classes_2.html similarity index 84% rename from docs/search/classes_2.html rename to docs/generated/docs/search/classes_2.html index 7878acb4f..5d005980e 100644 --- a/docs/search/classes_2.html +++ b/docs/generated/docs/search/classes_2.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_2.js b/docs/generated/docs/search/classes_2.js new file mode 100644 index 000000000..2a30fb3cc --- /dev/null +++ b/docs/generated/docs/search/classes_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['changefilter_537',['ChangeFilter',['../class_change_filter.html',1,'']]], + ['configurable_538',['Configurable',['../class_configurable.html',1,'']]], + ['curveinterpolator_539',['CurveInterpolator',['../class_curve_interpolator.html',1,'']]] +]; diff --git a/docs/search/classes_3.html b/docs/generated/docs/search/classes_3.html similarity index 84% rename from docs/search/classes_3.html rename to docs/generated/docs/search/classes_3.html index c231d86f0..fd173aea6 100644 --- a/docs/search/classes_3.html +++ b/docs/generated/docs/search/classes_3.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_3.js b/docs/generated/docs/search/classes_3.js new file mode 100644 index 000000000..826da1839 --- /dev/null +++ b/docs/generated/docs/search/classes_3.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['dallastemperaturesensors_540',['DallasTemperatureSensors',['../class_dallas_temperature_sensors.html',1,'']]], + ['debounce_541',['Debounce',['../class_debounce.html',1,'']]], + ['difference_542',['Difference',['../class_difference.html',1,'']]], + ['digitalinput_543',['DigitalInput',['../class_digital_input.html',1,'']]], + ['digitalinputcounter_544',['DigitalInputCounter',['../class_digital_input_counter.html',1,'']]], + ['digitalinputvalue_545',['DigitalInputValue',['../class_digital_input_value.html',1,'']]], + ['digitaloutput_546',['DigitalOutput',['../class_digital_output.html',1,'']]] +]; diff --git a/docs/search/classes_4.html b/docs/generated/docs/search/classes_4.html similarity index 84% rename from docs/search/classes_4.html rename to docs/generated/docs/search/classes_4.html index 86dd4384f..5414d88dc 100644 --- a/docs/search/classes_4.html +++ b/docs/generated/docs/search/classes_4.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_4.js b/docs/generated/docs/search/classes_4.js new file mode 100644 index 000000000..160a516ff --- /dev/null +++ b/docs/generated/docs/search/classes_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['enable_547',['Enable',['../class_enable.html',1,'']]], + ['enuvector_548',['ENUVector',['../struct_e_n_u_vector.html',1,'']]] +]; diff --git a/docs/search/classes_5.html b/docs/generated/docs/search/classes_5.html similarity index 84% rename from docs/search/classes_5.html rename to docs/generated/docs/search/classes_5.html index 7aaef4df3..31c340e78 100644 --- a/docs/search/classes_5.html +++ b/docs/generated/docs/search/classes_5.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_5.js b/docs/generated/docs/search/classes_5.js new file mode 100644 index 000000000..0296a8a11 --- /dev/null +++ b/docs/generated/docs/search/classes_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['freemem_549',['FreeMem',['../class_free_mem.html',1,'']]], + ['frequency_550',['Frequency',['../class_frequency.html',1,'']]] +]; diff --git a/docs/search/classes_6.html b/docs/generated/docs/search/classes_6.html similarity index 84% rename from docs/search/classes_6.html rename to docs/generated/docs/search/classes_6.html index aad7834e8..df33297b1 100644 --- a/docs/search/classes_6.html +++ b/docs/generated/docs/search/classes_6.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_6.js b/docs/generated/docs/search/classes_6.js new file mode 100644 index 000000000..9233b99fc --- /dev/null +++ b/docs/generated/docs/search/classes_6.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['gpggasentenceparser_551',['GPGGASentenceParser',['../class_g_p_g_g_a_sentence_parser.html',1,'']]], + ['gpgllsentenceparser_552',['GPGLLSentenceParser',['../class_g_p_g_l_l_sentence_parser.html',1,'']]], + ['gprmcsentenceparser_553',['GPRMCSentenceParser',['../class_g_p_r_m_c_sentence_parser.html',1,'']]], + ['gpsinput_554',['GPSInput',['../class_g_p_s_input.html',1,'']]] +]; diff --git a/docs/search/classes_7.html b/docs/generated/docs/search/classes_7.html similarity index 84% rename from docs/search/classes_7.html rename to docs/generated/docs/search/classes_7.html index 794e3948f..01628373f 100644 --- a/docs/search/classes_7.html +++ b/docs/generated/docs/search/classes_7.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_7.js b/docs/generated/docs/search/classes_7.js new file mode 100644 index 000000000..fd2908bd5 --- /dev/null +++ b/docs/generated/docs/search/classes_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['httpserver_555',['HTTPServer',['../class_h_t_t_p_server.html',1,'']]], + ['hysteresis_556',['Hysteresis',['../class_hysteresis.html',1,'']]] +]; diff --git a/docs/search/classes_8.html b/docs/generated/docs/search/classes_8.html similarity index 84% rename from docs/search/classes_8.html rename to docs/generated/docs/search/classes_8.html index 1ba60c903..4760d7426 100644 --- a/docs/search/classes_8.html +++ b/docs/generated/docs/search/classes_8.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_8.js b/docs/generated/docs/search/classes_8.js new file mode 100644 index 000000000..71f26bd23 --- /dev/null +++ b/docs/generated/docs/search/classes_8.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['ina219_557',['INA219',['../class_i_n_a219.html',1,'']]], + ['ina219value_558',['INA219Value',['../class_i_n_a219_value.html',1,'']]], + ['integersensor_559',['IntegerSensor',['../class_integer_sensor.html',1,'']]], + ['integerthreshold_560',['IntegerThreshold',['../class_integer_threshold.html',1,'']]], + ['integrator_561',['Integrator',['../class_integrator.html',1,'']]], + ['ipaddrdev_562',['IPAddrDev',['../class_i_p_addr_dev.html',1,'']]] +]; diff --git a/docs/search/classes_9.html b/docs/generated/docs/search/classes_9.html similarity index 84% rename from docs/search/classes_9.html rename to docs/generated/docs/search/classes_9.html index 565e7d7a0..964374e10 100644 --- a/docs/search/classes_9.html +++ b/docs/generated/docs/search/classes_9.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_9.js b/docs/generated/docs/search/classes_9.js new file mode 100644 index 000000000..45f5f0568 --- /dev/null +++ b/docs/generated/docs/search/classes_9.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['lambdatransform_563',['LambdaTransform',['../class_lambda_transform.html',1,'']]], + ['lambdatransform_3c_20float_2c_20float_2c_20float_2c_20float_20_3e_564',['LambdaTransform< float, float, float, float >',['../class_lambda_transform.html',1,'']]], + ['lambdatransform_3c_20in_2c_20out_2c_20in_2c_20in_2c_20out_2c_20out_20_3e_565',['LambdaTransform< IN, OUT, IN, IN, OUT, OUT >',['../class_lambda_transform.html',1,'']]], + ['ledblinker_566',['LedBlinker',['../class_led_blinker.html',1,'']]], + ['linear_567',['Linear',['../class_linear.html',1,'']]] +]; diff --git a/docs/search/classes_a.html b/docs/generated/docs/search/classes_a.html similarity index 84% rename from docs/search/classes_a.html rename to docs/generated/docs/search/classes_a.html index ca7479a3d..1b9b5946d 100644 --- a/docs/search/classes_a.html +++ b/docs/generated/docs/search/classes_a.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_a.js b/docs/generated/docs/search/classes_a.js new file mode 100644 index 000000000..6c80c09f2 --- /dev/null +++ b/docs/generated/docs/search/classes_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['max31856thermocouple_568',['MAX31856Thermocouple',['../class_m_a_x31856_thermocouple.html',1,'']]], + ['median_569',['Median',['../class_median.html',1,'']]], + ['movingaverage_570',['MovingAverage',['../class_moving_average.html',1,'']]] +]; diff --git a/docs/search/classes_b.html b/docs/generated/docs/search/classes_b.html similarity index 84% rename from docs/search/classes_b.html rename to docs/generated/docs/search/classes_b.html index ef8480206..dfb2b0a55 100644 --- a/docs/search/classes_b.html +++ b/docs/generated/docs/search/classes_b.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_b.js b/docs/generated/docs/search/classes_b.js new file mode 100644 index 000000000..71bc43971 --- /dev/null +++ b/docs/generated/docs/search/classes_b.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['networking_571',['Networking',['../class_networking.html',1,'']]], + ['nmeadata_572',['NMEAData',['../struct_n_m_e_a_data.html',1,'']]], + ['nmeaparser_573',['NMEAParser',['../class_n_m_e_a_parser.html',1,'']]], + ['numericsensor_574',['NumericSensor',['../class_numeric_sensor.html',1,'']]], + ['numericthreshold_575',['NumericThreshold',['../class_numeric_threshold.html',1,'']]] +]; diff --git a/docs/search/classes_c.html b/docs/generated/docs/search/classes_c.html similarity index 84% rename from docs/search/classes_c.html rename to docs/generated/docs/search/classes_c.html index 052ea3c79..c080bf715 100644 --- a/docs/search/classes_c.html +++ b/docs/generated/docs/search/classes_c.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_c.js b/docs/generated/docs/search/classes_c.js new file mode 100644 index 000000000..6eed6cd47 --- /dev/null +++ b/docs/generated/docs/search/classes_c.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['observable_576',['Observable',['../class_observable.html',1,'']]], + ['observablevalue_577',['ObservableValue',['../class_observable_value.html',1,'']]], + ['observablevalue_3c_20enuvector_20_3e_578',['ObservableValue< ENUVector >',['../class_observable_value.html',1,'']]], + ['observablevalue_3c_20float_20_3e_579',['ObservableValue< float >',['../class_observable_value.html',1,'']]], + ['observablevalue_3c_20int_20_3e_580',['ObservableValue< int >',['../class_observable_value.html',1,'']]], + ['observablevalue_3c_20position_20_3e_581',['ObservableValue< Position >',['../class_observable_value.html',1,'']]], + ['observablevalue_3c_20string_20_3e_582',['ObservableValue< String >',['../class_observable_value.html',1,'']]], + ['observablevalue_3c_20time_5ft_20_3e_583',['ObservableValue< time_t >',['../class_observable_value.html',1,'']]], + ['onewiretemperature_584',['OneWireTemperature',['../class_one_wire_temperature.html',1,'']]], + ['orientation9dof_585',['Orientation9DOF',['../class_orientation9_d_o_f.html',1,'']]] +]; diff --git a/docs/search/classes_d.html b/docs/generated/docs/search/classes_d.html similarity index 84% rename from docs/search/classes_d.html rename to docs/generated/docs/search/classes_d.html index de68b5ab8..dfd670fc8 100644 --- a/docs/search/classes_d.html +++ b/docs/generated/docs/search/classes_d.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_d.js b/docs/generated/docs/search/classes_d.js new file mode 100644 index 000000000..3c208335f --- /dev/null +++ b/docs/generated/docs/search/classes_d.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['paraminfo_586',['ParamInfo',['../struct_param_info.html',1,'']]], + ['position_587',['Position',['../struct_position.html',1,'']]], + ['psti030sentenceparser_588',['PSTI030SentenceParser',['../class_p_s_t_i030_sentence_parser.html',1,'']]], + ['psti032sentenceparser_589',['PSTI032SentenceParser',['../class_p_s_t_i032_sentence_parser.html',1,'']]], + ['pstisentenceparser_590',['PSTISentenceParser',['../class_p_s_t_i_sentence_parser.html',1,'']]] +]; diff --git a/docs/search/classes_e.html b/docs/generated/docs/search/classes_e.html similarity index 84% rename from docs/search/classes_e.html rename to docs/generated/docs/search/classes_e.html index 4ba8b8292..32f736c30 100644 --- a/docs/search/classes_e.html +++ b/docs/generated/docs/search/classes_e.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_e.js b/docs/generated/docs/search/classes_e.js new file mode 100644 index 000000000..ce3ec3465 --- /dev/null +++ b/docs/generated/docs/search/classes_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['read9dof_591',['Read9DOF',['../class_read9_d_o_f.html',1,'']]] +]; diff --git a/docs/search/classes_f.html b/docs/generated/docs/search/classes_f.html similarity index 84% rename from docs/search/classes_f.html rename to docs/generated/docs/search/classes_f.html index e85049739..a85cdbc70 100644 --- a/docs/search/classes_f.html +++ b/docs/generated/docs/search/classes_f.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/classes_f.js b/docs/generated/docs/search/classes_f.js new file mode 100644 index 000000000..d0fc0543f --- /dev/null +++ b/docs/generated/docs/search/classes_f.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['sample_592',['Sample',['../class_curve_interpolator_1_1_sample.html',1,'CurveInterpolator']]], + ['sensespapp_593',['SensESPApp',['../class_sens_e_s_p_app.html',1,'']]], + ['sensespappbuilder_594',['SensESPAppBuilder',['../class_sens_e_s_p_app_builder.html',1,'']]], + ['sensor_595',['Sensor',['../class_sensor.html',1,'']]], + ['sensornxp_5ffxos8700_5ffxas21002_596',['SensorNXP_FXOS8700_FXAS21002',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html',1,'']]], + ['sentenceparser_597',['SentenceParser',['../class_sentence_parser.html',1,'']]], + ['sht31_598',['SHT31',['../class_s_h_t31.html',1,'']]], + ['sht31value_599',['SHT31Value',['../class_s_h_t31_value.html',1,'']]], + ['skdelta_600',['SKDelta',['../class_s_k_delta.html',1,'']]], + ['skemitter_601',['SKEmitter',['../class_s_k_emitter.html',1,'']]], + ['sklistener_602',['SKListener',['../class_s_k_listener.html',1,'']]], + ['skoutput_603',['SKOutput',['../class_s_k_output.html',1,'']]], + ['skoutputtime_604',['SKOutputTime',['../class_s_k_output_time.html',1,'']]], + ['skvaluelistener_605',['SKValueListener',['../class_s_k_value_listener.html',1,'']]], + ['stringsensor_606',['StringSensor',['../class_string_sensor.html',1,'']]], + ['symmetrictransform_607',['SymmetricTransform',['../class_symmetric_transform.html',1,'']]], + ['symmetrictransform_3c_20float_20_3e_608',['SymmetricTransform< float >',['../class_symmetric_transform.html',1,'']]], + ['systemhz_609',['SystemHz',['../class_system_hz.html',1,'']]] +]; diff --git a/docs/generated/docs/search/close.svg b/docs/generated/docs/search/close.svg new file mode 100644 index 000000000..a933eea1a --- /dev/null +++ b/docs/generated/docs/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/docs/search/defines_0.html b/docs/generated/docs/search/defines_0.html similarity index 84% rename from docs/search/defines_0.html rename to docs/generated/docs/search/defines_0.html index dbe0642ef..0ede6c4b3 100644 --- a/docs/search/defines_0.html +++ b/docs/generated/docs/search/defines_0.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/defines_0.js b/docs/generated/docs/search/defines_0.js new file mode 100644 index 000000000..8a16fa5eb --- /dev/null +++ b/docs/generated/docs/search/defines_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['enable_5fled_1140',['ENABLE_LED',['../sensesp__app_8h.html#add0ff5bdcc203b4a438aa1f46260283d',1,'sensesp_app.h']]] +]; diff --git a/docs/search/defines_1.html b/docs/generated/docs/search/defines_1.html similarity index 84% rename from docs/search/defines_1.html rename to docs/generated/docs/search/defines_1.html index 7af932407..259a51af6 100644 --- a/docs/search/defines_1.html +++ b/docs/generated/docs/search/defines_1.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/defines_1.js b/docs/generated/docs/search/defines_1.js new file mode 100644 index 000000000..e5b52d9aa --- /dev/null +++ b/docs/generated/docs/search/defines_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['http_5fserver_5fport_1141',['HTTP_SERVER_PORT',['../http_8cpp.html#a4f905ddd4da1a3e205a8935f4babb25b',1,'http.cpp']]] +]; diff --git a/docs/search/defines_2.html b/docs/generated/docs/search/defines_2.html similarity index 84% rename from docs/search/defines_2.html rename to docs/generated/docs/search/defines_2.html index 462922115..731dc4c9a 100644 --- a/docs/search/defines_2.html +++ b/docs/generated/docs/search/defines_2.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/defines_2.js b/docs/generated/docs/search/defines_2.js new file mode 100644 index 000000000..64617f82b --- /dev/null +++ b/docs/generated/docs/search/defines_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['led_5fpin_1142',['LED_PIN',['../sensesp__app_8h.html#ab4553be4db9860d940f81d7447173b2f',1,'sensesp_app.h']]] +]; diff --git a/docs/generated/docs/search/defines_3.html b/docs/generated/docs/search/defines_3.html new file mode 100644 index 000000000..1d84c7858 --- /dev/null +++ b/docs/generated/docs/search/defines_3.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/defines_3.js b/docs/generated/docs/search/defines_3.js new file mode 100644 index 000000000..a7c3fc0f1 --- /dev/null +++ b/docs/generated/docs/search/defines_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['m_5fpi_1143',['M_PI',['../angle__correction_8cpp.html#ae71449b1cc6e6250b91f539153a7a0d3',1,'angle_correction.cpp']]], + ['max_5fanalog_5foutput_1144',['MAX_ANALOG_OUTPUT',['../analogvoltage_8h.html#acd21751cadfe75b41534fa2d356d29a3',1,'analogvoltage.h']]], + ['min_5fprint_5finterval_5fms_1145',['MIN_PRINT_INTERVAL_MS',['../sensor__nxp__fxos8700__fxas21002_8cpp.html#a9f38c1bd6c384c20a2559bbe12f87d18',1,'sensor_nxp_fxos8700_fxas21002.cpp']]] +]; diff --git a/docs/generated/docs/search/defines_4.html b/docs/generated/docs/search/defines_4.html new file mode 100644 index 000000000..79271699e --- /dev/null +++ b/docs/generated/docs/search/defines_4.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/defines_4.js b/docs/generated/docs/search/defines_4.js new file mode 100644 index 000000000..1b26284f8 --- /dev/null +++ b/docs/generated/docs/search/defines_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['use_5flib_5fwebsocket_1146',['USE_LIB_WEBSOCKET',['../sensesp__app_8h.html#a8abe44af131f55591035d3587ca9484d',1,'sensesp_app.h']]] +]; diff --git a/docs/generated/docs/search/defines_5.html b/docs/generated/docs/search/defines_5.html new file mode 100644 index 000000000..03bea0f79 --- /dev/null +++ b/docs/generated/docs/search/defines_5.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/defines_5.js b/docs/generated/docs/search/defines_5.js new file mode 100644 index 000000000..04d4b4e4c --- /dev/null +++ b/docs/generated/docs/search/defines_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wifi_5fconfig_5fportal_5ftimeout_1147',['WIFI_CONFIG_PORTAL_TIMEOUT',['../networking_8cpp.html#a6beb3d9ab4141921e87c56b399230fce',1,'networking.cpp']]] +]; diff --git a/docs/search/enums_0.html b/docs/generated/docs/search/enums_0.html similarity index 84% rename from docs/search/enums_0.html rename to docs/generated/docs/search/enums_0.html index 7040a9c5d..9035e6aa1 100644 --- a/docs/search/enums_0.html +++ b/docs/generated/docs/search/enums_0.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/enums_0.js b/docs/generated/docs/search/enums_0.js new file mode 100644 index 000000000..7e5890dff --- /dev/null +++ b/docs/generated/docs/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ads1x15chip_5ft_1084',['ADS1x15CHIP_t',['../ads1x15__voltage_8h.html#a287de91a50d45b83ad2b999a32f96846',1,'ads1x15_voltage.h']]] +]; diff --git a/docs/search/enums_1.html b/docs/generated/docs/search/enums_1.html similarity index 84% rename from docs/search/enums_1.html rename to docs/generated/docs/search/enums_1.html index 0c65c0e09..ae1c6f74e 100644 --- a/docs/search/enums_1.html +++ b/docs/generated/docs/search/enums_1.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/enums_1.js b/docs/generated/docs/search/enums_1.js new file mode 100644 index 000000000..71fdfcf29 --- /dev/null +++ b/docs/generated/docs/search/enums_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['bme280valtype_1085',['BME280ValType',['../bme280_8h.html#acce372cdae7772cfadaa815858c0956d',1,'bme280.h']]], + ['bmp280valtype_1086',['BMP280ValType',['../bmp280_8h.html#ab9dfceb0d5985ce5ae28521c2ddb5bf4',1,'bmp280.h']]] +]; diff --git a/docs/generated/docs/search/enums_2.html b/docs/generated/docs/search/enums_2.html new file mode 100644 index 000000000..3c310ad98 --- /dev/null +++ b/docs/generated/docs/search/enums_2.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/enums_2.js b/docs/generated/docs/search/enums_2.js new file mode 100644 index 000000000..8da12269f --- /dev/null +++ b/docs/generated/docs/search/enums_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['connectionstate_1087',['ConnectionState',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9b',1,'ws_client.h']]] +]; diff --git a/docs/generated/docs/search/enums_3.html b/docs/generated/docs/search/enums_3.html new file mode 100644 index 000000000..bdf445fa4 --- /dev/null +++ b/docs/generated/docs/search/enums_3.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/enums_3.js b/docs/generated/docs/search/enums_3.js new file mode 100644 index 000000000..d2c4a96aa --- /dev/null +++ b/docs/generated/docs/search/enums_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['gnssquality_1088',['GNSSQuality',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520',1,'nmea_parser.cpp']]] +]; diff --git a/docs/generated/docs/search/enums_4.html b/docs/generated/docs/search/enums_4.html new file mode 100644 index 000000000..56322c052 --- /dev/null +++ b/docs/generated/docs/search/enums_4.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/enums_4.js b/docs/generated/docs/search/enums_4.js new file mode 100644 index 000000000..a29ef1baa --- /dev/null +++ b/docs/generated/docs/search/enums_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ina219cal_5ft_1089',['INA219CAL_t',['../ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0',1,'ina219.h']]], + ['ina219valtype_1090',['INA219ValType',['../ina219_8h.html#a80681f57fd3d14d390d830a2ea845654',1,'ina219.h']]] +]; diff --git a/docs/generated/docs/search/enums_5.html b/docs/generated/docs/search/enums_5.html new file mode 100644 index 000000000..856485a41 --- /dev/null +++ b/docs/generated/docs/search/enums_5.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/enums_5.js b/docs/generated/docs/search/enums_5.js new file mode 100644 index 000000000..5705a574d --- /dev/null +++ b/docs/generated/docs/search/enums_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['orientationvaltype_1091',['OrientationValType',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95e',1,'orientation_9dof_input.h']]] +]; diff --git a/docs/generated/docs/search/enums_6.html b/docs/generated/docs/search/enums_6.html new file mode 100644 index 000000000..8a2b6219f --- /dev/null +++ b/docs/generated/docs/search/enums_6.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/enums_6.js b/docs/generated/docs/search/enums_6.js new file mode 100644 index 000000000..004f97d87 --- /dev/null +++ b/docs/generated/docs/search/enums_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['sht31valtype_1092',['SHT31ValType',['../sht31_8h.html#a6c9ef8dce1c0c00daf564286ec45ce04',1,'sht31.h']]], + ['standardsensors_1093',['StandardSensors',['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbd',1,'sensesp_app.h']]] +]; diff --git a/docs/search/enumvalues_0.html b/docs/generated/docs/search/enumvalues_0.html similarity index 84% rename from docs/search/enumvalues_0.html rename to docs/generated/docs/search/enumvalues_0.html index 78895c79b..c2cd472ac 100644 --- a/docs/search/enumvalues_0.html +++ b/docs/generated/docs/search/enumvalues_0.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/enumvalues_0.js b/docs/generated/docs/search/enumvalues_0.js new file mode 100644 index 000000000..121c5e8fe --- /dev/null +++ b/docs/generated/docs/search/enumvalues_0.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['acceleration_5fx_1094',['acceleration_x',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea2cb838e8090509cdbe8d5cb0e2baea09',1,'orientation_9dof_input.h']]], + ['acceleration_5fy_1095',['acceleration_y',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea662c740c96b3f23ac9fff8f5b7fa6e1f',1,'orientation_9dof_input.h']]], + ['acceleration_5fz_1096',['acceleration_z',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95eaa69107d7ac45a55e7d4f70da85db52a1',1,'orientation_9dof_input.h']]], + ['ads1015chip_1097',['ADS1015chip',['../ads1x15__voltage_8h.html#a287de91a50d45b83ad2b999a32f96846a1efc5b453be0b8efe9d2827c22c94669',1,'ads1x15_voltage.h']]], + ['ads1115chip_1098',['ADS1115chip',['../ads1x15__voltage_8h.html#a287de91a50d45b83ad2b999a32f96846a8d7ed005368ca618b3f7022dc1cb5c32',1,'ads1x15_voltage.h']]], + ['all_1099',['ALL',['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbdab1d5eac4b1dca480c8056eaea7663b7a',1,'sensesp_app.h']]], + ['authorizing_1100',['authorizing',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba1f27ab35c30a3960dc1b8f11202c743d',1,'ws_client.h']]] +]; diff --git a/docs/search/enumvalues_1.html b/docs/generated/docs/search/enumvalues_1.html similarity index 84% rename from docs/search/enumvalues_1.html rename to docs/generated/docs/search/enumvalues_1.html index 9b02a4b38..fb0ff68ad 100644 --- a/docs/search/enumvalues_1.html +++ b/docs/generated/docs/search/enumvalues_1.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/enumvalues_1.js b/docs/generated/docs/search/enumvalues_1.js new file mode 100644 index 000000000..ac04fe00e --- /dev/null +++ b/docs/generated/docs/search/enumvalues_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bus_5fvoltage_1101',['bus_voltage',['../ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a111ba01d5017c5f1829f20d73348f03f',1,'ina219.h']]] +]; diff --git a/docs/generated/docs/search/enumvalues_10.html b/docs/generated/docs/search/enumvalues_10.html new file mode 100644 index 000000000..309790049 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_10.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/enumvalues_10.js b/docs/generated/docs/search/enumvalues_10.js new file mode 100644 index 000000000..cacc4c684 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_10.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['uptime_1135',['UPTIME',['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda51305f206950897626327f194518087d',1,'sensesp_app.h']]] +]; diff --git a/docs/generated/docs/search/enumvalues_11.html b/docs/generated/docs/search/enumvalues_11.html new file mode 100644 index 000000000..63e7412e1 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_11.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/enumvalues_11.js b/docs/generated/docs/search/enumvalues_11.js new file mode 100644 index 000000000..8272a4f7f --- /dev/null +++ b/docs/generated/docs/search/enumvalues_11.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wifi_5fsignal_1136',['WIFI_SIGNAL',['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda16948e5a45a0e6caffb0b1b85f342b7e',1,'sensesp_app.h']]] +]; diff --git a/docs/search/enumvalues_2.html b/docs/generated/docs/search/enumvalues_2.html similarity index 84% rename from docs/search/enumvalues_2.html rename to docs/generated/docs/search/enumvalues_2.html index 2482854d9..17b826033 100644 --- a/docs/search/enumvalues_2.html +++ b/docs/generated/docs/search/enumvalues_2.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/enumvalues_2.js b/docs/generated/docs/search/enumvalues_2.js new file mode 100644 index 000000000..fe235a62e --- /dev/null +++ b/docs/generated/docs/search/enumvalues_2.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['cal16_5f400_1102',['cal16_400',['../ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0a01a08da826cf9ddb397bf94f3cea755c',1,'ina219.h']]], + ['cal32_5f1_1103',['cal32_1',['../ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0a588648d40e059f0ff2d9297aedbbf915',1,'ina219.h']]], + ['cal32_5f2_1104',['cal32_2',['../ina219_8h.html#af0f21d23ba16939156ae369e49fc59d0ae0ccdd359f693e07141b4bcef13e149a',1,'ina219.h']]], + ['compass_5fhdg_1105',['compass_hdg',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea1aca2377e3a0b9909c2dc93959beb751',1,'orientation_9dof_input.h']]], + ['connected_1106',['connected',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba8ba3de7243211c98f5ec24395c73d65b',1,'ws_client.h']]], + ['connecting_1107',['connecting',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9bab4dbdd36e3f602f54d0024fd818e12d6',1,'ws_client.h']]], + ['current_1108',['current',['../ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a8225bfb34b5298eb7529ec580a4d178e',1,'ina219.h']]] +]; diff --git a/docs/search/enumvalues_3.html b/docs/generated/docs/search/enumvalues_3.html similarity index 84% rename from docs/search/enumvalues_3.html rename to docs/generated/docs/search/enumvalues_3.html index e6124b947..872076060 100644 --- a/docs/search/enumvalues_3.html +++ b/docs/generated/docs/search/enumvalues_3.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/enumvalues_3.js b/docs/generated/docs/search/enumvalues_3.js new file mode 100644 index 000000000..1a0d4d7e9 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['dgnss_5ffix_1109',['dgnss_fix',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a8d26d1fa1d0cda42a29843162786a0b6',1,'nmea_parser.cpp']]], + ['disconnected_1110',['disconnected',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba519f950c18a0ec32082cf9984cd2b225',1,'ws_client.h']]] +]; diff --git a/docs/search/enumvalues_4.html b/docs/generated/docs/search/enumvalues_4.html similarity index 84% rename from docs/search/enumvalues_4.html rename to docs/generated/docs/search/enumvalues_4.html index 8d234cfc1..f1a8897fb 100644 --- a/docs/search/enumvalues_4.html +++ b/docs/generated/docs/search/enumvalues_4.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/enumvalues_4.js b/docs/generated/docs/search/enumvalues_4.js new file mode 100644 index 000000000..98da3137d --- /dev/null +++ b/docs/generated/docs/search/enumvalues_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['error_1111',['error',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520ad606e435413ea0944dd00d49e901e4ed',1,'nmea_parser.cpp']]], + ['estimated_5fmode_1112',['estimated_mode',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a59f188885f9974ee947a7e5af4b9f5bc',1,'nmea_parser.cpp']]] +]; diff --git a/docs/search/enumvalues_5.html b/docs/generated/docs/search/enumvalues_5.html similarity index 84% rename from docs/search/enumvalues_5.html rename to docs/generated/docs/search/enumvalues_5.html index d16ee24be..396f936c1 100644 --- a/docs/search/enumvalues_5.html +++ b/docs/generated/docs/search/enumvalues_5.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/enumvalues_5.js b/docs/generated/docs/search/enumvalues_5.js new file mode 100644 index 000000000..b499ba36d --- /dev/null +++ b/docs/generated/docs/search/enumvalues_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['free_5fmemory_1113',['FREE_MEMORY',['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda5891c7e995ff517e945876b41f35bbb7',1,'sensesp_app.h']]], + ['frequency_1114',['FREQUENCY',['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda0ef2c92b2317b95f9ef1ae102029d676',1,'sensesp_app.h']]] +]; diff --git a/docs/search/enumvalues_6.html b/docs/generated/docs/search/enumvalues_6.html similarity index 84% rename from docs/search/enumvalues_6.html rename to docs/generated/docs/search/enumvalues_6.html index c39f08658..a1f802948 100644 --- a/docs/search/enumvalues_6.html +++ b/docs/generated/docs/search/enumvalues_6.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/enumvalues_6.js b/docs/generated/docs/search/enumvalues_6.js new file mode 100644 index 000000000..fc09f9339 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['gnss_5ffix_1115',['gnss_fix',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520adea098971e394461267006ddf5d2d4b0',1,'nmea_parser.cpp']]] +]; diff --git a/docs/search/enumvalues_7.html b/docs/generated/docs/search/enumvalues_7.html similarity index 84% rename from docs/search/enumvalues_7.html rename to docs/generated/docs/search/enumvalues_7.html index f75419fec..88b51765a 100644 --- a/docs/search/enumvalues_7.html +++ b/docs/generated/docs/search/enumvalues_7.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/enumvalues_7.js b/docs/generated/docs/search/enumvalues_7.js new file mode 100644 index 000000000..a4b6084c5 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['humidity_1116',['humidity',['../bme280_8h.html#acce372cdae7772cfadaa815858c0956daf78a0094726cca324b69464b475ed069',1,'humidity(): bme280.h'],['../sht31_8h.html#a6c9ef8dce1c0c00daf564286ec45ce04af78a0094726cca324b69464b475ed069',1,'humidity(): sht31.h']]] +]; diff --git a/docs/search/enumvalues_8.html b/docs/generated/docs/search/enumvalues_8.html similarity index 84% rename from docs/search/enumvalues_8.html rename to docs/generated/docs/search/enumvalues_8.html index 96b5b73e7..c7206fa7e 100644 --- a/docs/search/enumvalues_8.html +++ b/docs/generated/docs/search/enumvalues_8.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/enumvalues_8.js b/docs/generated/docs/search/enumvalues_8.js new file mode 100644 index 000000000..ed7d61ef9 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ip_5faddress_1117',['IP_ADDRESS',['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbdad623eb60dd773b245fe13ee928fd47c8',1,'sensesp_app.h']]] +]; diff --git a/docs/generated/docs/search/enumvalues_9.html b/docs/generated/docs/search/enumvalues_9.html new file mode 100644 index 000000000..8c3600477 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_9.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/enumvalues_9.js b/docs/generated/docs/search/enumvalues_9.js new file mode 100644 index 000000000..b8e780b83 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['load_5fvoltage_1118',['load_voltage',['../ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a3edc24834fa7d8deb140997b6e64b067',1,'ina219.h']]] +]; diff --git a/docs/generated/docs/search/enumvalues_a.html b/docs/generated/docs/search/enumvalues_a.html new file mode 100644 index 000000000..a706e4dfe --- /dev/null +++ b/docs/generated/docs/search/enumvalues_a.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/enumvalues_a.js b/docs/generated/docs/search/enumvalues_a.js new file mode 100644 index 000000000..23e7874c6 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['manual_5finput_1119',['manual_input',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a4692e23f3770a255f880456f7fbec485',1,'nmea_parser.cpp']]] +]; diff --git a/docs/generated/docs/search/enumvalues_b.html b/docs/generated/docs/search/enumvalues_b.html new file mode 100644 index 000000000..28482d803 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_b.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/enumvalues_b.js b/docs/generated/docs/search/enumvalues_b.js new file mode 100644 index 000000000..a29def927 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['no_5fgps_1120',['no_gps',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520acad07a79b4226b1e51ce24a510e6aef0',1,'nmea_parser.cpp']]], + ['none_1121',['NONE',['../sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbdac157bdf0b85a40d2619cbc8bc1ae5fe2',1,'sensesp_app.h']]] +]; diff --git a/docs/generated/docs/search/enumvalues_c.html b/docs/generated/docs/search/enumvalues_c.html new file mode 100644 index 000000000..7934e8e39 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_c.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/enumvalues_c.js b/docs/generated/docs/search/enumvalues_c.js new file mode 100644 index 000000000..9fc81f629 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['pitch_1122',['pitch',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea7d727d167958e799288fbf3b43894883',1,'orientation_9dof_input.h']]], + ['power_1123',['power',['../ina219_8h.html#a80681f57fd3d14d390d830a2ea845654af8c33b3fcc6333e88c55e603007e9fe4',1,'ina219.h']]], + ['precise_5fgnss_1124',['precise_gnss',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520afa0a09a3165e3cc313372a0b424b149c',1,'nmea_parser.cpp']]], + ['pressure_1125',['pressure',['../bme280_8h.html#acce372cdae7772cfadaa815858c0956da8e7f8389b914e827058d694b31468b3a',1,'pressure(): bme280.h'],['../bmp280_8h.html#ab9dfceb0d5985ce5ae28521c2ddb5bf4a8e7f8389b914e827058d694b31468b3a',1,'pressure(): bmp280.h']]] +]; diff --git a/docs/generated/docs/search/enumvalues_d.html b/docs/generated/docs/search/enumvalues_d.html new file mode 100644 index 000000000..f4e3cd021 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_d.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/enumvalues_d.js b/docs/generated/docs/search/enumvalues_d.js new file mode 100644 index 000000000..44ef76cf5 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_d.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['rate_5fof_5fpitch_1126',['rate_of_pitch',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95eaaaafd973e0adb0637c636ee1934f6200',1,'orientation_9dof_input.h']]], + ['rate_5fof_5froll_1127',['rate_of_roll',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea8987706e9866024a60124d12510d11c6',1,'orientation_9dof_input.h']]], + ['rate_5fof_5fturn_1128',['rate_of_turn',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea2bfd167dc9dfcb7a507d2e7ea5a6c1d8',1,'orientation_9dof_input.h']]], + ['roll_1129',['roll',['../orientation__9dof__input_8h.html#aee05f622fca61a6272817b66c58fc95ea47adc77fa7e4e33d5e567d3377ceda90',1,'orientation_9dof_input.h']]], + ['rtk_5ffixed_5finteger_1130',['rtk_fixed_integer',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a05e849a8cef5c44456bd54132f622ef2',1,'nmea_parser.cpp']]], + ['rtk_5ffloat_1131',['rtk_float',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a1b64cc0e9a9ebc1afccab8e472ed2e3c',1,'nmea_parser.cpp']]] +]; diff --git a/docs/generated/docs/search/enumvalues_e.html b/docs/generated/docs/search/enumvalues_e.html new file mode 100644 index 000000000..d8117df5a --- /dev/null +++ b/docs/generated/docs/search/enumvalues_e.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/enumvalues_e.js b/docs/generated/docs/search/enumvalues_e.js new file mode 100644 index 000000000..7dbc1871b --- /dev/null +++ b/docs/generated/docs/search/enumvalues_e.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['shunt_5fvoltage_1132',['shunt_voltage',['../ina219_8h.html#a80681f57fd3d14d390d830a2ea845654a02073ae5cd2835f972526f8a03dd2af1',1,'ina219.h']]], + ['simulator_5fmode_1133',['simulator_mode',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a32b763dac1af6b0b08ab952ea202f6a3',1,'nmea_parser.cpp']]] +]; diff --git a/docs/generated/docs/search/enumvalues_f.html b/docs/generated/docs/search/enumvalues_f.html new file mode 100644 index 000000000..825a1bf60 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_f.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/enumvalues_f.js b/docs/generated/docs/search/enumvalues_f.js new file mode 100644 index 000000000..1526be163 --- /dev/null +++ b/docs/generated/docs/search/enumvalues_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['temperature_1134',['temperature',['../bme280_8h.html#acce372cdae7772cfadaa815858c0956da9922a43d37bee3212593f77ce4ec82f3',1,'temperature(): bme280.h'],['../bmp280_8h.html#ab9dfceb0d5985ce5ae28521c2ddb5bf4a9922a43d37bee3212593f77ce4ec82f3',1,'temperature(): bmp280.h'],['../sht31_8h.html#a6c9ef8dce1c0c00daf564286ec45ce04a9922a43d37bee3212593f77ce4ec82f3',1,'temperature(): sht31.h']]] +]; diff --git a/docs/search/files_0.html b/docs/generated/docs/search/files_0.html similarity index 84% rename from docs/search/files_0.html rename to docs/generated/docs/search/files_0.html index 40cd45543..76b64f5bb 100644 --- a/docs/search/files_0.html +++ b/docs/generated/docs/search/files_0.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_0.js b/docs/generated/docs/search/files_0.js new file mode 100644 index 000000000..5d7a25749 --- /dev/null +++ b/docs/generated/docs/search/files_0.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['ads1x15_2ecpp_639',['ads1x15.cpp',['../ads1x15_8cpp.html',1,'']]], + ['ads1x15_2eh_640',['ads1x15.h',['../ads1x15_8h.html',1,'']]], + ['ads1x15_5fvoltage_2ecpp_641',['ads1x15_voltage.cpp',['../ads1x15__voltage_8cpp.html',1,'']]], + ['ads1x15_5fvoltage_2eh_642',['ads1x15_voltage.h',['../ads1x15__voltage_8h.html',1,'']]], + ['analog_5finput_2ecpp_643',['analog_input.cpp',['../analog__input_8cpp.html',1,'']]], + ['analog_5finput_2eh_644',['analog_input.h',['../analog__input_8h.html',1,'']]], + ['analog_5freader_2eh_645',['analog_reader.h',['../analog__reader_8h.html',1,'']]], + ['analogvoltage_2ecpp_646',['analogvoltage.cpp',['../analogvoltage_8cpp.html',1,'']]], + ['analogvoltage_2eh_647',['analogvoltage.h',['../analogvoltage_8h.html',1,'']]], + ['angle_5fcorrection_2ecpp_648',['angle_correction.cpp',['../angle__correction_8cpp.html',1,'']]], + ['angle_5fcorrection_2eh_649',['angle_correction.h',['../angle__correction_8h.html',1,'']]] +]; diff --git a/docs/search/files_1.html b/docs/generated/docs/search/files_1.html similarity index 84% rename from docs/search/files_1.html rename to docs/generated/docs/search/files_1.html index 646d1f4cc..c8edef8f3 100644 --- a/docs/search/files_1.html +++ b/docs/generated/docs/search/files_1.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_1.js b/docs/generated/docs/search/files_1.js new file mode 100644 index 000000000..45d0d073b --- /dev/null +++ b/docs/generated/docs/search/files_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['bme280_2ecpp_650',['bme280.cpp',['../bme280_8cpp.html',1,'']]], + ['bme280_2eh_651',['bme280.h',['../bme280_8h.html',1,'']]], + ['bmp280_2ecpp_652',['bmp280.cpp',['../bmp280_8cpp.html',1,'']]], + ['bmp280_2eh_653',['bmp280.h',['../bmp280_8h.html',1,'']]] +]; diff --git a/docs/search/files_10.html b/docs/generated/docs/search/files_10.html similarity index 84% rename from docs/search/files_10.html rename to docs/generated/docs/search/files_10.html index 42c42d6bc..48b44cb19 100644 --- a/docs/search/files_10.html +++ b/docs/generated/docs/search/files_10.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_10.js b/docs/generated/docs/search/files_10.js new file mode 100644 index 000000000..dbfae0cb9 --- /dev/null +++ b/docs/generated/docs/search/files_10.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ultrasonic_5fdistance_2ecpp_745',['ultrasonic_distance.cpp',['../ultrasonic__distance_8cpp.html',1,'']]], + ['ultrasonic_5fdistance_2eh_746',['ultrasonic_distance.h',['../ultrasonic__distance_8h.html',1,'']]] +]; diff --git a/docs/generated/docs/search/files_11.html b/docs/generated/docs/search/files_11.html new file mode 100644 index 000000000..96c63a61d --- /dev/null +++ b/docs/generated/docs/search/files_11.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/files_11.js b/docs/generated/docs/search/files_11.js new file mode 100644 index 000000000..87dee399c --- /dev/null +++ b/docs/generated/docs/search/files_11.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['valueconsumer_2eh_747',['valueconsumer.h',['../valueconsumer_8h.html',1,'']]], + ['valueproducer_2eh_748',['valueproducer.h',['../valueproducer_8h.html',1,'']]], + ['voltage_5fmultiplier_2ecpp_749',['voltage_multiplier.cpp',['../voltage__multiplier_8cpp.html',1,'']]], + ['voltage_5fmultiplier_2eh_750',['voltage_multiplier.h',['../voltage__multiplier_8h.html',1,'']]], + ['voltagedivider_2ecpp_751',['voltagedivider.cpp',['../voltagedivider_8cpp.html',1,'']]], + ['voltagedivider_2eh_752',['voltagedivider.h',['../voltagedivider_8h.html',1,'']]] +]; diff --git a/docs/generated/docs/search/files_12.html b/docs/generated/docs/search/files_12.html new file mode 100644 index 000000000..522a8ec45 --- /dev/null +++ b/docs/generated/docs/search/files_12.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/files_12.js b/docs/generated/docs/search/files_12.js new file mode 100644 index 000000000..3479bebce --- /dev/null +++ b/docs/generated/docs/search/files_12.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['wiring_5fhelpers_2ecpp_753',['wiring_helpers.cpp',['../wiring__helpers_8cpp.html',1,'']]], + ['wiring_5fhelpers_2eh_754',['wiring_helpers.h',['../wiring__helpers_8h.html',1,'']]], + ['ws_5fclient_2ecpp_755',['ws_client.cpp',['../ws__client_8cpp.html',1,'']]], + ['ws_5fclient_2eh_756',['ws_client.h',['../ws__client_8h.html',1,'']]] +]; diff --git a/docs/search/files_2.html b/docs/generated/docs/search/files_2.html similarity index 84% rename from docs/search/files_2.html rename to docs/generated/docs/search/files_2.html index 9e47a77a2..75b0173f1 100644 --- a/docs/search/files_2.html +++ b/docs/generated/docs/search/files_2.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_2.js b/docs/generated/docs/search/files_2.js new file mode 100644 index 000000000..904d3a828 --- /dev/null +++ b/docs/generated/docs/search/files_2.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['change_5ffilter_2ecpp_654',['change_filter.cpp',['../change__filter_8cpp.html',1,'']]], + ['change_5ffilter_2eh_655',['change_filter.h',['../change__filter_8h.html',1,'']]], + ['configurable_2ecpp_656',['configurable.cpp',['../configurable_8cpp.html',1,'']]], + ['configurable_2eh_657',['configurable.h',['../configurable_8h.html',1,'']]], + ['curveinterpolator_2ecpp_658',['curveinterpolator.cpp',['../curveinterpolator_8cpp.html',1,'']]], + ['curveinterpolator_2eh_659',['curveinterpolator.h',['../curveinterpolator_8h.html',1,'']]] +]; diff --git a/docs/search/files_3.html b/docs/generated/docs/search/files_3.html similarity index 84% rename from docs/search/files_3.html rename to docs/generated/docs/search/files_3.html index 167679b4d..27b624343 100644 --- a/docs/search/files_3.html +++ b/docs/generated/docs/search/files_3.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_3.js b/docs/generated/docs/search/files_3.js new file mode 100644 index 000000000..7b0cae097 --- /dev/null +++ b/docs/generated/docs/search/files_3.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['debounce_2ecpp_660',['debounce.cpp',['../debounce_8cpp.html',1,'']]], + ['debounce_2eh_661',['debounce.h',['../debounce_8h.html',1,'']]], + ['difference_2ecpp_662',['difference.cpp',['../difference_8cpp.html',1,'']]], + ['difference_2eh_663',['difference.h',['../difference_8h.html',1,'']]], + ['digital_5finput_2ecpp_664',['digital_input.cpp',['../digital__input_8cpp.html',1,'']]], + ['digital_5finput_2eh_665',['digital_input.h',['../digital__input_8h.html',1,'']]], + ['digital_5foutput_2ecpp_666',['digital_output.cpp',['../digital__output_8cpp.html',1,'']]], + ['digital_5foutput_2eh_667',['digital_output.h',['../digital__output_8h.html',1,'']]], + ['discovery_2ecpp_668',['discovery.cpp',['../discovery_8cpp.html',1,'']]], + ['discovery_2eh_669',['discovery.h',['../discovery_8h.html',1,'']]] +]; diff --git a/docs/search/files_4.html b/docs/generated/docs/search/files_4.html similarity index 84% rename from docs/search/files_4.html rename to docs/generated/docs/search/files_4.html index 0eaa44a4e..5f8b96636 100644 --- a/docs/search/files_4.html +++ b/docs/generated/docs/search/files_4.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_4.js b/docs/generated/docs/search/files_4.js new file mode 100644 index 000000000..c965c24b3 --- /dev/null +++ b/docs/generated/docs/search/files_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['enable_2ecpp_670',['enable.cpp',['../enable_8cpp.html',1,'']]], + ['enable_2eh_671',['enable.h',['../enable_8h.html',1,'']]] +]; diff --git a/docs/search/files_5.html b/docs/generated/docs/search/files_5.html similarity index 84% rename from docs/search/files_5.html rename to docs/generated/docs/search/files_5.html index 25316a5ad..f3f578bcd 100644 --- a/docs/search/files_5.html +++ b/docs/generated/docs/search/files_5.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_5.js b/docs/generated/docs/search/files_5.js new file mode 100644 index 000000000..357abab0b --- /dev/null +++ b/docs/generated/docs/search/files_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['frequency_2ecpp_672',['frequency.cpp',['../frequency_8cpp.html',1,'']]], + ['frequency_2eh_673',['frequency.h',['../frequency_8h.html',1,'']]] +]; diff --git a/docs/search/files_6.html b/docs/generated/docs/search/files_6.html similarity index 84% rename from docs/search/files_6.html rename to docs/generated/docs/search/files_6.html index 6f326f5f7..6d02253e0 100644 --- a/docs/search/files_6.html +++ b/docs/generated/docs/search/files_6.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_6.js b/docs/generated/docs/search/files_6.js new file mode 100644 index 000000000..46f0166c3 --- /dev/null +++ b/docs/generated/docs/search/files_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['gps_2ecpp_674',['gps.cpp',['../gps_8cpp.html',1,'']]], + ['gps_2eh_675',['gps.h',['../gps_8h.html',1,'']]] +]; diff --git a/docs/search/files_7.html b/docs/generated/docs/search/files_7.html similarity index 84% rename from docs/search/files_7.html rename to docs/generated/docs/search/files_7.html index 53e39bfd1..788a1ee85 100644 --- a/docs/search/files_7.html +++ b/docs/generated/docs/search/files_7.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_7.js b/docs/generated/docs/search/files_7.js new file mode 100644 index 000000000..e0c5263e1 --- /dev/null +++ b/docs/generated/docs/search/files_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['http_2ecpp_676',['http.cpp',['../http_8cpp.html',1,'']]], + ['http_2eh_677',['http.h',['../http_8h.html',1,'']]], + ['hysteresis_2eh_678',['hysteresis.h',['../hysteresis_8h.html',1,'']]] +]; diff --git a/docs/search/files_8.html b/docs/generated/docs/search/files_8.html similarity index 84% rename from docs/search/files_8.html rename to docs/generated/docs/search/files_8.html index 861a02cd4..7e72895d0 100644 --- a/docs/search/files_8.html +++ b/docs/generated/docs/search/files_8.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_8.js b/docs/generated/docs/search/files_8.js new file mode 100644 index 000000000..58e80db70 --- /dev/null +++ b/docs/generated/docs/search/files_8.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['ina219_2ecpp_679',['ina219.cpp',['../ina219_8cpp.html',1,'']]], + ['ina219_2eh_680',['ina219.h',['../ina219_8h.html',1,'']]], + ['index_2eh_681',['index.h',['../index_8h.html',1,'']]], + ['integrator_2ecpp_682',['integrator.cpp',['../integrator_8cpp.html',1,'']]], + ['integrator_2eh_683',['integrator.h',['../integrator_8h.html',1,'']]] +]; diff --git a/docs/search/files_9.html b/docs/generated/docs/search/files_9.html similarity index 84% rename from docs/search/files_9.html rename to docs/generated/docs/search/files_9.html index 020cb091e..e5352dbb8 100644 --- a/docs/search/files_9.html +++ b/docs/generated/docs/search/files_9.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_9.js b/docs/generated/docs/search/files_9.js new file mode 100644 index 000000000..294fd6b71 --- /dev/null +++ b/docs/generated/docs/search/files_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['js_5fjsoneditor_2eh_684',['js_jsoneditor.h',['../js__jsoneditor_8h.html',1,'']]], + ['js_5fsensesp_2eh_685',['js_sensesp.h',['../js__sensesp_8h.html',1,'']]] +]; diff --git a/docs/search/files_a.html b/docs/generated/docs/search/files_a.html similarity index 84% rename from docs/search/files_a.html rename to docs/generated/docs/search/files_a.html index d7549b7d5..4963ca278 100644 --- a/docs/search/files_a.html +++ b/docs/generated/docs/search/files_a.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_a.js b/docs/generated/docs/search/files_a.js new file mode 100644 index 000000000..63d5987f7 --- /dev/null +++ b/docs/generated/docs/search/files_a.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['lambda_5ftransform_2ecpp_686',['lambda_transform.cpp',['../lambda__transform_8cpp.html',1,'']]], + ['lambda_5ftransform_2eh_687',['lambda_transform.h',['../lambda__transform_8h.html',1,'']]], + ['led_5fblinker_2ecpp_688',['led_blinker.cpp',['../led__blinker_8cpp.html',1,'']]], + ['led_5fblinker_2eh_689',['led_blinker.h',['../led__blinker_8h.html',1,'']]], + ['linear_2ecpp_690',['linear.cpp',['../linear_8cpp.html',1,'']]], + ['linear_2eh_691',['linear.h',['../linear_8h.html',1,'']]] +]; diff --git a/docs/search/files_b.html b/docs/generated/docs/search/files_b.html similarity index 84% rename from docs/search/files_b.html rename to docs/generated/docs/search/files_b.html index a761fc229..b64c148ea 100644 --- a/docs/search/files_b.html +++ b/docs/generated/docs/search/files_b.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_b.js b/docs/generated/docs/search/files_b.js new file mode 100644 index 000000000..b28c525d6 --- /dev/null +++ b/docs/generated/docs/search/files_b.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['main_2ecpp_692',['main.cpp',['../main_8cpp.html',1,'']]], + ['max31856_5fthermocouple_2ecpp_693',['max31856_thermocouple.cpp',['../max31856__thermocouple_8cpp.html',1,'']]], + ['max31856_5fthermocouple_2eh_694',['max31856_thermocouple.h',['../max31856__thermocouple_8h.html',1,'']]], + ['median_2ecpp_695',['median.cpp',['../median_8cpp.html',1,'']]], + ['median_2eh_696',['median.h',['../median_8h.html',1,'']]], + ['moving_5faverage_2ecpp_697',['moving_average.cpp',['../moving__average_8cpp.html',1,'']]], + ['moving_5faverage_2eh_698',['moving_average.h',['../moving__average_8h.html',1,'']]] +]; diff --git a/docs/search/files_c.html b/docs/generated/docs/search/files_c.html similarity index 84% rename from docs/search/files_c.html rename to docs/generated/docs/search/files_c.html index 1411ec6d8..07c3b8970 100644 --- a/docs/search/files_c.html +++ b/docs/generated/docs/search/files_c.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_c.js b/docs/generated/docs/search/files_c.js new file mode 100644 index 000000000..888f5e120 --- /dev/null +++ b/docs/generated/docs/search/files_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['networking_2ecpp_699',['networking.cpp',['../networking_8cpp.html',1,'']]], + ['networking_2eh_700',['networking.h',['../networking_8h.html',1,'']]], + ['nmea_5fparser_2ecpp_701',['nmea_parser.cpp',['../nmea__parser_8cpp.html',1,'']]], + ['nmea_5fparser_2eh_702',['nmea_parser.h',['../nmea__parser_8h.html',1,'']]] +]; diff --git a/docs/search/files_d.html b/docs/generated/docs/search/files_d.html similarity index 84% rename from docs/search/files_d.html rename to docs/generated/docs/search/files_d.html index 6e7e505ad..c2d38ee10 100644 --- a/docs/search/files_d.html +++ b/docs/generated/docs/search/files_d.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_d.js b/docs/generated/docs/search/files_d.js new file mode 100644 index 000000000..a8f214c4b --- /dev/null +++ b/docs/generated/docs/search/files_d.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['observable_2ecpp_703',['observable.cpp',['../observable_8cpp.html',1,'']]], + ['observable_2eh_704',['observable.h',['../observable_8h.html',1,'']]], + ['observablevalue_2eh_705',['observablevalue.h',['../observablevalue_8h.html',1,'']]], + ['onewire_5ftemperature_2ecpp_706',['onewire_temperature.cpp',['../onewire__temperature_8cpp.html',1,'']]], + ['onewire_5ftemperature_2eh_707',['onewire_temperature.h',['../onewire__temperature_8h.html',1,'']]], + ['orientation_5f9dof_5finput_2ecpp_708',['orientation_9dof_input.cpp',['../orientation__9dof__input_8cpp.html',1,'']]], + ['orientation_5f9dof_5finput_2eh_709',['orientation_9dof_input.h',['../orientation__9dof__input_8h.html',1,'']]], + ['ota_2ecpp_710',['ota.cpp',['../ota_8cpp.html',1,'']]], + ['ota_2eh_711',['ota.h',['../ota_8h.html',1,'']]] +]; diff --git a/docs/search/files_e.html b/docs/generated/docs/search/files_e.html similarity index 84% rename from docs/search/files_e.html rename to docs/generated/docs/search/files_e.html index 4bfc8dd53..accc6f638 100644 --- a/docs/search/files_e.html +++ b/docs/generated/docs/search/files_e.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_e.js b/docs/generated/docs/search/files_e.js new file mode 100644 index 000000000..729b37a03 --- /dev/null +++ b/docs/generated/docs/search/files_e.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['sensesp_2eh_712',['sensesp.h',['../sensesp_8h.html',1,'']]], + ['sensesp_5fapp_2ecpp_713',['sensesp_app.cpp',['../sensesp__app_8cpp.html',1,'']]], + ['sensesp_5fapp_2eh_714',['sensesp_app.h',['../sensesp__app_8h.html',1,'']]], + ['sensesp_5fapp_5fbuilder_2eh_715',['sensesp_app_builder.h',['../sensesp__app__builder_8h.html',1,'']]], + ['sensor_2ecpp_716',['sensor.cpp',['../sensor_8cpp.html',1,'']]], + ['sensor_2eh_717',['sensor.h',['../sensor_8h.html',1,'']]], + ['sensor_5fnxp_5ffxos8700_5ffxas21002_2ecpp_718',['sensor_nxp_fxos8700_fxas21002.cpp',['../sensor__nxp__fxos8700__fxas21002_8cpp.html',1,'']]], + ['sensor_5fnxp_5ffxos8700_5ffxas21002_2eh_719',['sensor_nxp_fxos8700_fxas21002.h',['../sensor__nxp__fxos8700__fxas21002_8h.html',1,'']]], + ['setup_2eh_720',['setup.h',['../setup_8h.html',1,'']]], + ['sht31_2ecpp_721',['sht31.cpp',['../sht31_8cpp.html',1,'']]], + ['sht31_2eh_722',['sht31.h',['../sht31_8h.html',1,'']]], + ['signalk_5fdelta_2ecpp_723',['signalk_delta.cpp',['../signalk__delta_8cpp.html',1,'']]], + ['signalk_5fdelta_2eh_724',['signalk_delta.h',['../signalk__delta_8h.html',1,'']]], + ['signalk_5femitter_2ecpp_725',['signalk_emitter.cpp',['../signalk__emitter_8cpp.html',1,'']]], + ['signalk_5femitter_2eh_726',['signalk_emitter.h',['../signalk__emitter_8h.html',1,'']]], + ['signalk_5flistener_2ecpp_727',['signalk_listener.cpp',['../signalk__listener_8cpp.html',1,'']]], + ['signalk_5flistener_2eh_728',['signalk_listener.h',['../signalk__listener_8h.html',1,'']]], + ['signalk_5foutput_2eh_729',['signalk_output.h',['../signalk__output_8h.html',1,'']]], + ['signalk_5fposition_2ecpp_730',['signalk_position.cpp',['../signalk__position_8cpp.html',1,'']]], + ['signalk_5fposition_2eh_731',['signalk_position.h',['../signalk__position_8h.html',1,'']]], + ['signalk_5ftime_2ecpp_732',['signalk_time.cpp',['../signalk__time_8cpp.html',1,'']]], + ['signalk_5ftime_2eh_733',['signalk_time.h',['../signalk__time_8h.html',1,'']]], + ['signalk_5fvalue_5flistener_2eh_734',['signalk_value_listener.h',['../signalk__value__listener_8h.html',1,'']]], + ['spiffs_5fstorage_2ecpp_735',['spiffs_storage.cpp',['../spiffs__storage_8cpp.html',1,'']]], + ['spiffs_5fstorage_2eh_736',['spiffs_storage.h',['../spiffs__storage_8h.html',1,'']]], + ['system_5finfo_2ecpp_737',['system_info.cpp',['../system__info_8cpp.html',1,'']]], + ['system_5finfo_2eh_738',['system_info.h',['../system__info_8h.html',1,'']]] +]; diff --git a/docs/search/files_f.html b/docs/generated/docs/search/files_f.html similarity index 84% rename from docs/search/files_f.html rename to docs/generated/docs/search/files_f.html index f5e13b567..13217fb82 100644 --- a/docs/search/files_f.html +++ b/docs/generated/docs/search/files_f.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/files_f.js b/docs/generated/docs/search/files_f.js new file mode 100644 index 000000000..d20af6312 --- /dev/null +++ b/docs/generated/docs/search/files_f.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['threshold_2ecpp_739',['threshold.cpp',['../threshold_8cpp.html',1,'']]], + ['threshold_2eh_740',['threshold.h',['../threshold_8h.html',1,'']]], + ['timestring_2ecpp_741',['timestring.cpp',['../timestring_8cpp.html',1,'']]], + ['timestring_2eh_742',['timestring.h',['../timestring_8h.html',1,'']]], + ['transform_2ecpp_743',['transform.cpp',['../transform_8cpp.html',1,'']]], + ['transform_2eh_744',['transform.h',['../transform_8h.html',1,'']]] +]; diff --git a/docs/search/functions_0.html b/docs/generated/docs/search/functions_0.html similarity index 84% rename from docs/search/functions_0.html rename to docs/generated/docs/search/functions_0.html index bc73761f5..f04535ae6 100644 --- a/docs/search/functions_0.html +++ b/docs/generated/docs/search/functions_0.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_0.js b/docs/generated/docs/search/functions_0.js new file mode 100644 index 000000000..302ba6327 --- /dev/null +++ b/docs/generated/docs/search/functions_0.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['add_5fsample_757',['add_sample',['../class_curve_interpolator.html#a938e1bdc8256ef255c27ffc65c8360b7',1,'CurveInterpolator']]], + ['add_5fsentence_5fparser_758',['add_sentence_parser',['../class_n_m_e_a_parser.html#a438b3fd8f8587b55a3785656651f73a6',1,'NMEAParser']]], + ['addsample_759',['addSample',['../class_curve_interpolator.html#a263eaf111e6b5f47e72c6e13d77dea99',1,'CurveInterpolator']]], + ['ads1x15_760',['ADS1x15',['../class_a_d_s1x15.html#a222eece7162f1774e5970fc9f14dd6a2',1,'ADS1x15']]], + ['ads1x15value_761',['ADS1x15Value',['../class_a_d_s1x15_value.html#ab6f5ad81976b4a0f2ac8e43432b9a247',1,'ADS1x15Value']]], + ['ads1x15voltage_762',['ADS1x15Voltage',['../class_a_d_s1x15_voltage.html#a923d54c2370d71f3eff5fa82214e3590',1,'ADS1x15Voltage']]], + ['analoginput_763',['AnalogInput',['../class_analog_input.html#a63db2d6f83b69573a4739466a6e429e6',1,'AnalogInput']]], + ['analogvoltage_764',['AnalogVoltage',['../class_analog_voltage.html#aa702f3b91648bbffa9cd86b5c0200a25',1,'AnalogVoltage']]], + ['anglecorrection_765',['AngleCorrection',['../class_angle_correction.html#a6a023df6e49e8ada977738dc8cbe150c',1,'AngleCorrection']]], + ['app_766',['app',['../main_8cpp.html#a6d9293a0861bd0a401705876575bf2d1',1,'main.cpp']]], + ['append_767',['append',['../class_s_k_delta.html#afacfa3952be6179d0e96960575f393a8',1,'SKDelta']]], + ['as_5fsignalk_768',['as_signalk',['../class_s_k_emitter.html#ab25ae819460f8a07fee381cc06332f95',1,'SKEmitter::as_signalk()'],['../class_s_k_output.html#a638cad044b186372707c776fcd9a69bd',1,'SKOutput::as_signalk()'],['../class_s_k_output_time.html#aaf792b14c69ced31c6a3c2bd0d1a32e4',1,'SKOutputTime::as_signalk()'],['../class_s_k_output.html#a1cfe49843fc8745ffefa59d36df67bb4',1,'SKOutput::as_signalk()'],['../class_s_k_output.html#a1cfe49843fc8745ffefa59d36df67bb4',1,'SKOutput::as_signalk()']]], + ['attach_769',['attach',['../class_observable.html#af72ed9c9cf7157a33caad4b930232e69',1,'Observable::attach()'],['../sensesp__app_8cpp.html#aafcec3d306fa4a9995d6d51e2b179116',1,'attach(): sensesp_app.cpp']]] +]; diff --git a/docs/search/functions_1.html b/docs/generated/docs/search/functions_1.html similarity index 84% rename from docs/search/functions_1.html rename to docs/generated/docs/search/functions_1.html index bfcf880be..6e827eb63 100644 --- a/docs/search/functions_1.html +++ b/docs/generated/docs/search/functions_1.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_1.js b/docs/generated/docs/search/functions_1.js new file mode 100644 index 000000000..f5a296260 --- /dev/null +++ b/docs/generated/docs/search/functions_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['bme280_770',['BME280',['../class_b_m_e280.html#a7eb425e9c7b1eebc6bad4288de80dcab',1,'BME280']]], + ['bme280value_771',['BME280Value',['../class_b_m_e280_value.html#a59605de196c5141aac67b51522902183',1,'BME280Value']]], + ['bmp280_772',['BMP280',['../class_b_m_p280.html#a70a4ccddabb11d3da232a4b0339d4851',1,'BMP280']]], + ['bmp280value_773',['BMP280Value',['../class_b_m_p280_value.html#a9862d2cc3be55366831f97613a805973',1,'BMP280Value']]] +]; diff --git a/docs/search/functions_10.html b/docs/generated/docs/search/functions_10.html similarity index 84% rename from docs/search/functions_10.html rename to docs/generated/docs/search/functions_10.html index d69badf9e..09511eca0 100644 --- a/docs/search/functions_10.html +++ b/docs/generated/docs/search/functions_10.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_10.js b/docs/generated/docs/search/functions_10.js new file mode 100644 index 000000000..b0a7c1d82 --- /dev/null +++ b/docs/generated/docs/search/functions_10.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['thresholdtransform_955',['ThresholdTransform',['../class_threshold_transform.html#a4c948e2da55fdff4efdd479f93523866',1,'ThresholdTransform']]], + ['timestring_956',['TimeString',['../class_time_string.html#adc18ed47c4b6d88acceec81741aab5c3',1,'TimeString']]], + ['transform_957',['Transform',['../class_transform.html#a764037842596e71f15621e3732dac75a',1,'Transform']]], + ['transformbase_958',['TransformBase',['../class_transform_base.html#a4f28a4ec27046ac3ef1546eda4b5b43b',1,'TransformBase']]] +]; diff --git a/docs/search/functions_11.html b/docs/generated/docs/search/functions_11.html similarity index 84% rename from docs/search/functions_11.html rename to docs/generated/docs/search/functions_11.html index 2c143588e..066bc6646 100644 --- a/docs/search/functions_11.html +++ b/docs/generated/docs/search/functions_11.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_11.js b/docs/generated/docs/search/functions_11.js new file mode 100644 index 000000000..48634a484 --- /dev/null +++ b/docs/generated/docs/search/functions_11.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ultrasonicdistance_959',['UltrasonicDistance',['../class_ultrasonic_distance.html#a5aaf744be7d7be1fbb3a96cbda8e1cbd',1,'UltrasonicDistance']]], + ['uptime_960',['Uptime',['../class_uptime.html#a3723d5d7c5b11879065dc3defb6e171f',1,'Uptime']]] +]; diff --git a/docs/search/functions_12.html b/docs/generated/docs/search/functions_12.html similarity index 84% rename from docs/search/functions_12.html rename to docs/generated/docs/search/functions_12.html index 3235f8dcd..7f384f4a3 100644 --- a/docs/search/functions_12.html +++ b/docs/generated/docs/search/functions_12.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_12.js b/docs/generated/docs/search/functions_12.js new file mode 100644 index 000000000..79dea4936 --- /dev/null +++ b/docs/generated/docs/search/functions_12.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['valueproducer_961',['ValueProducer',['../class_value_producer.html#a0ef05992883120f7202c14fd8e577103',1,'ValueProducer']]], + ['voltagedividerr1_962',['VoltageDividerR1',['../class_voltage_divider_r1.html#a559bd31c65cb8a407e7e28d968d97678',1,'VoltageDividerR1']]], + ['voltagedividerr2_963',['VoltageDividerR2',['../class_voltage_divider_r2.html#a609ab5e2db4122ddc875a94ba8f9d325',1,'VoltageDividerR2']]], + ['voltagemultiplier_964',['VoltageMultiplier',['../class_voltage_multiplier.html#a987803f756c42ddfd2f5bf18ad01d779',1,'VoltageMultiplier']]] +]; diff --git a/docs/search/functions_13.html b/docs/generated/docs/search/functions_13.html similarity index 84% rename from docs/search/functions_13.html rename to docs/generated/docs/search/functions_13.html index dce66cc4e..9a4107ff5 100644 --- a/docs/search/functions_13.html +++ b/docs/generated/docs/search/functions_13.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_13.js b/docs/generated/docs/search/functions_13.js new file mode 100644 index 000000000..2f1510d5d --- /dev/null +++ b/docs/generated/docs/search/functions_13.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['websocketclientevent_965',['webSocketClientEvent',['../ws__client_8cpp.html#a5e74f160471b58a262cceef5edaea7e0',1,'ws_client.cpp']]], + ['wifisignal_966',['WifiSignal',['../class_wifi_signal.html#ad471294e67baafcf42e0b17f5d0f00ec',1,'WifiSignal']]], + ['write_5fjson_967',['write_json',['../spiffs__storage_8h.html#a48b9b058342e94d2f8c0c2670799b9fe',1,'spiffs_storage.h']]], + ['write_5fstring_968',['write_string',['../spiffs__storage_8cpp.html#ae1cd66733f6f724334874c5ff65b958b',1,'write_string(const String filename, String data): spiffs_storage.cpp'],['../spiffs__storage_8h.html#ae1cd66733f6f724334874c5ff65b958b',1,'write_string(const String filename, String data): spiffs_storage.cpp']]], + ['wsclient_969',['WSClient',['../class_w_s_client.html#a1c800c9ef6791e3103a3ec3eb2ef38f7',1,'WSClient']]] +]; diff --git a/docs/generated/docs/search/functions_14.html b/docs/generated/docs/search/functions_14.html new file mode 100644 index 000000000..2412ba08f --- /dev/null +++ b/docs/generated/docs/search/functions_14.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/functions_14.js b/docs/generated/docs/search/functions_14.js new file mode 100644 index 000000000..fb6eec86a --- /dev/null +++ b/docs/generated/docs/search/functions_14.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_7ehttpserver_970',['~HTTPServer',['../class_h_t_t_p_server.html#af09066b05417f9a9ce9f1cd8e5ad9e18',1,'HTTPServer']]] +]; diff --git a/docs/search/functions_2.html b/docs/generated/docs/search/functions_2.html similarity index 84% rename from docs/search/functions_2.html rename to docs/generated/docs/search/functions_2.html index 2b44474ed..184e9da4d 100644 --- a/docs/search/functions_2.html +++ b/docs/generated/docs/search/functions_2.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_2.js b/docs/generated/docs/search/functions_2.js new file mode 100644 index 000000000..10a0e320d --- /dev/null +++ b/docs/generated/docs/search/functions_2.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['changefilter_774',['ChangeFilter',['../class_change_filter.html#ae7e753c0391e335c7b6cc4ec14bad7c9',1,'ChangeFilter']]], + ['check_5fconnection_775',['check_connection',['../class_networking.html#ae4b12924970227730df3377144301a7c',1,'Networking']]], + ['clear_5fsamples_776',['clear_samples',['../class_curve_interpolator.html#a89d37139f9b601e8a1c74335811c2af2',1,'CurveInterpolator']]], + ['clearsamples_777',['clearSamples',['../class_curve_interpolator.html#afb1dbb8e85015e2909dff8495875f8f5',1,'CurveInterpolator']]], + ['configurable_778',['Configurable',['../class_configurable.html#a8972a439fb9b734ff68d27c699640f78',1,'Configurable']]], + ['configure_779',['configure',['../class_base_analog_reader.html#a4967330c789c7bce878ceeeb2108ea65',1,'BaseAnalogReader']]], + ['connect_780',['connect',['../class_w_s_client.html#a1612670a5dccbc8a39518ae972fbae90',1,'WSClient::connect()'],['../class_sens_e_s_p_app.html#aa41795cde59d1bb57906dff6102ee7dc',1,'SensESPApp::connect()'],['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a00127c0fb0aa12d05fbaa1887552d074',1,'SensorNXP_FXOS8700_FXAS21002::connect()']]], + ['connect_5f1to1_5fh_781',['connect_1to1_h',['../class_sens_e_s_p_app.html#aa6e3bc4bb1c696cc0bef02835ce0f7bf',1,'SensESPApp']]], + ['connect_5ffrom_782',['connect_from',['../class_value_consumer.html#a913d68690f22e5829fd8fca4f893adf5',1,'ValueConsumer']]], + ['connect_5fto_783',['connect_to',['../class_value_producer.html#a5920fda501e9eb4328f4a7d14d02fa39',1,'ValueProducer::connect_to(ValueConsumer< T > *consumer, uint8_t input_channel=0)'],['../class_value_producer.html#a3156eb097154b0a64227b0c8ef36aefd',1,'ValueProducer::connect_to(Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)']]], + ['connectfrom_784',['connectFrom',['../class_value_consumer.html#a236eaf49e25b8cab99845a76dd1fb73e',1,'ValueConsumer::connectFrom()'],['../class_transform.html#a145d0f289f0e63caf31f0f728d63f97e',1,'Transform::connectFrom()']]], + ['connectto_785',['connectTo',['../class_value_producer.html#a567a7940bdda6bace2c50704242f1d96',1,'ValueProducer::connectTo(ValueConsumer< T > *consumer, uint8_t input_channel=0)'],['../class_value_producer.html#ae22489a1be8fbee367e4ef21f73abfb3',1,'ValueProducer::connectTo(Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)']]], + ['curveinterpolator_786',['CurveInterpolator',['../class_curve_interpolator.html#a09bdf144307f1264c36d5afaea5c96a3',1,'CurveInterpolator']]] +]; diff --git a/docs/search/functions_3.html b/docs/generated/docs/search/functions_3.html similarity index 84% rename from docs/search/functions_3.html rename to docs/generated/docs/search/functions_3.html index 3dca36715..31ac9f8e2 100644 --- a/docs/search/functions_3.html +++ b/docs/generated/docs/search/functions_3.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_3.js b/docs/generated/docs/search/functions_3.js new file mode 100644 index 000000000..5623d9218 --- /dev/null +++ b/docs/generated/docs/search/functions_3.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['dallastemperaturesensors_787',['DallasTemperatureSensors',['../class_dallas_temperature_sensors.html#a778aa28e0e329028f2811c5ed71cb11d',1,'DallasTemperatureSensors']]], + ['data_5favailable_788',['data_available',['../class_s_k_delta.html#a74ab20a661a4f80a336b50fccc4bd9bc',1,'SKDelta']]], + ['debounce_789',['Debounce',['../class_debounce.html#ade9ea26c6050fc08d43e0758c2a572b2',1,'Debounce']]], + ['difference_790',['Difference',['../class_difference.html#ab37fbe4fe6592f7591a124c1b90f8f48',1,'Difference']]], + ['digitalinput_791',['DigitalInput',['../class_digital_input.html#ac87da1c4d7b53427d71d71b34d25c6eb',1,'DigitalInput']]], + ['digitalinputcounter_792',['DigitalInputCounter',['../class_digital_input_counter.html#adde82c1aeae1f8f452b3bbb31a3114a5',1,'DigitalInputCounter']]], + ['digitalinputvalue_793',['DigitalInputValue',['../class_digital_input_value.html#ad7195dc579200d7e8b04fb00fff3ea35',1,'DigitalInputValue']]], + ['digitaloutput_794',['DigitalOutput',['../class_digital_output.html#a49b9011baf6e4280e6a4f8be0177bc1b',1,'DigitalOutput']]] +]; diff --git a/docs/search/functions_4.html b/docs/generated/docs/search/functions_4.html similarity index 84% rename from docs/search/functions_4.html rename to docs/generated/docs/search/functions_4.html index e713f2867..306d41f80 100644 --- a/docs/search/functions_4.html +++ b/docs/generated/docs/search/functions_4.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_4.js b/docs/generated/docs/search/functions_4.js new file mode 100644 index 000000000..105dd5f1c --- /dev/null +++ b/docs/generated/docs/search/functions_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['enable_795',['enable',['../class_h_t_t_p_server.html#a6f5600d8187ec82cb83e84252a387c38',1,'HTTPServer::enable()'],['../class_w_s_client.html#a1313d063fd61739f7e3ca9b2c126b048',1,'WSClient::enable()'],['../class_sens_e_s_p_app.html#a3d70c22bfd1bf842f6daa83ab2f50f79',1,'SensESPApp::enable()'],['../class_a_d_s1x15.html#a86230f10cfa6fcccbb189d91fbcbb6d8',1,'ADS1x15::enable()'],['../class_a_d_s1x15_value.html#ae0ee6cebb76815406ef8d9ee816e33ec',1,'ADS1x15Value::enable()'],['../class_analog_input.html#a34942eae263f68e8f44fa3f405d057fb',1,'AnalogInput::enable()'],['../class_b_m_e280_value.html#afac9027689bc79c15e329bebec201c1b',1,'BME280Value::enable()'],['../class_b_m_p280_value.html#a29c3968e8ceb876e9e5731d1df863b63',1,'BMP280Value::enable()'],['../class_digital_input_value.html#a504c6c9ad6578156df7eb524f9635912',1,'DigitalInputValue::enable()'],['../class_digital_input_counter.html#a9848278592225d90ff71b99ce940771e',1,'DigitalInputCounter::enable()'],['../class_g_p_s_input.html#af94497b920d346ed5ccad18bd4dbfd9c',1,'GPSInput::enable()'],['../class_i_n_a219_value.html#a25ba9003cc31670bbcf36d5b8cd0a3f4',1,'INA219Value::enable()'],['../class_m_a_x31856_thermocouple.html#a37980d9b2f2682da48c16cc60b3b6565',1,'MAX31856Thermocouple::enable()'],['../class_dallas_temperature_sensors.html#ae30b8206143d488a4d887b4294da6bb2',1,'DallasTemperatureSensors::enable()'],['../class_one_wire_temperature.html#a86817f083dfb5e9373b48d8fd1f8d165',1,'OneWireTemperature::enable()'],['../class_read9_d_o_f.html#a3b193507742276276121243b8c280c72',1,'Read9DOF::enable()'],['../class_s_h_t31_value.html#a0104d033db3ee61af842bf4c320d0602',1,'SHT31Value::enable()'],['../class_system_hz.html#a2f2337dcbe45cce879392f28579e233d',1,'SystemHz::enable()'],['../class_free_mem.html#aa3487ef2dff96a33778881da391b2129',1,'FreeMem::enable()'],['../class_uptime.html#a677ab855187348527ccdb0725552e02a',1,'Uptime::enable()'],['../class_i_p_addr_dev.html#afd8dec59375d39cf785819f8ea3685a1',1,'IPAddrDev::enable()'],['../class_wifi_signal.html#ac326583e59ad78951c1ba2f56091e2b3',1,'WifiSignal::enable()'],['../class_ultrasonic_distance.html#a03aafa94461f81daefa1bdaf8186a7b2',1,'UltrasonicDistance::enable()'],['../class_enable.html#a62ea021bf8d986150be346977a8eede3',1,'Enable::enable()'],['../class_frequency.html#a0d6846952b3295809421ac18633e397e',1,'Frequency::enable()'],['../class_integrator.html#ad52503a30ef9abf171209988d256ec22',1,'Integrator::enable()'],['../class_enable.html#a62d0a37863086502e168bfa8ab94ebc0',1,'Enable::Enable()']]], + ['enable_5fall_796',['enable_all',['../class_enable.html#a0c8851096f3f60293bd4ffee5c7cd1ef',1,'Enable']]], + ['enableall_797',['enableAll',['../class_enable.html#addb956e5a06d89d698efd787205a9dc2',1,'Enable']]] +]; diff --git a/docs/search/functions_5.html b/docs/generated/docs/search/functions_5.html similarity index 84% rename from docs/search/functions_5.html rename to docs/generated/docs/search/functions_5.html index cfe6b17d9..27bbb7027 100644 --- a/docs/search/functions_5.html +++ b/docs/generated/docs/search/functions_5.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_5.js b/docs/generated/docs/search/functions_5.js new file mode 100644 index 000000000..959b2269e --- /dev/null +++ b/docs/generated/docs/search/functions_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['flip_798',['flip',['../class_led_blinker.html#af00270a463b74c855dfc95d98c7bfd7e',1,'LedBlinker']]], + ['freemem_799',['FreeMem',['../class_free_mem.html#aa8b5f3ef10c4148f75d6dc531a3d46c3',1,'FreeMem']]], + ['frequency_800',['Frequency',['../class_frequency.html#abbaff61b74433bb8a990685be24c3c8b',1,'Frequency']]] +]; diff --git a/docs/search/functions_6.html b/docs/generated/docs/search/functions_6.html similarity index 84% rename from docs/search/functions_6.html rename to docs/generated/docs/search/functions_6.html index a78ec13f1..84606c04a 100644 --- a/docs/search/functions_6.html +++ b/docs/generated/docs/search/functions_6.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_6.js b/docs/generated/docs/search/functions_6.js new file mode 100644 index 000000000..75af0b9c9 --- /dev/null +++ b/docs/generated/docs/search/functions_6.js @@ -0,0 +1,37 @@ +var searchData= +[ + ['gathercalibrationdataonce_801',['gatherCalibrationDataOnce',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#ab3532ac68215da8b09b1004766175024',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['gatherorientationdataonce_802',['gatherOrientationDataOnce',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#afad8509ff38a0b8cc9415c1d17193259',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['get_803',['get',['../class_value_producer.html#adaf30ea1027efa0c83c75dfe3afc0c1a',1,'ValueProducer']]], + ['get_5fapp_804',['get_app',['../class_sens_e_s_p_app_builder.html#a4a6855b053816852d61fd7012ea46e1f',1,'SensESPAppBuilder']]], + ['get_5fconfig_5fschema_805',['get_config_schema',['../class_networking.html#a253025ed2a3c36eb998e7b900155359e',1,'Networking::get_config_schema()'],['../class_w_s_client.html#a78fbe2ccf0f84423abbf9d1047aff0bc',1,'WSClient::get_config_schema()'],['../class_one_wire_temperature.html#a4331b2b91d6c7d000454e741cdce9d0a',1,'OneWireTemperature::get_config_schema()'],['../class_s_k_output.html#a0f29018517bcb51943dae1dd7bbace0a',1,'SKOutput::get_config_schema()'],['../class_s_k_output_time.html#aa283f508ef59103626c835cd37b9bfb3',1,'SKOutputTime::get_config_schema()'],['../class_configurable.html#a73131c4e7dd8134f23a93de861e1c0e4',1,'Configurable::get_config_schema()'],['../class_analog_voltage.html#ae9dcab3d6891a5e53c99746b476c6f72',1,'AnalogVoltage::get_config_schema()'],['../class_angle_correction.html#ad31bbb6a8fd400879eceba5f0b2880fe',1,'AngleCorrection::get_config_schema()'],['../class_change_filter.html#a769403176db0e4a619811bbba603d597',1,'ChangeFilter::get_config_schema()'],['../class_curve_interpolator.html#a6f9c593782d05c95ba92810b8f70f287',1,'CurveInterpolator::get_config_schema()'],['../class_difference.html#ac5b6559e3820f2f58bed5d120a440a55',1,'Difference::get_config_schema()'],['../class_frequency.html#a93e3f28917f7faa7411b95745171f6af',1,'Frequency::get_config_schema()'],['../class_integrator.html#a513afaf30460fee68abd295780527d05',1,'Integrator::get_config_schema()'],['../class_lambda_transform.html#adc6dbf53cef06623010cae1cbd1cdbd0',1,'LambdaTransform::get_config_schema()'],['../class_median.html#aa8515edf3b34ee8439bd77dcfc69a93f',1,'Median::get_config_schema()'],['../class_moving_average.html#ad6f06b147a017e528e3d8b991cec2763',1,'MovingAverage::get_config_schema()'],['../class_numeric_threshold.html#a230334ae33c4f4803edea06bcf9ea2f6',1,'NumericThreshold::get_config_schema()'],['../class_integer_threshold.html#a23437fadcb2212cadb7d25724d2fd90c',1,'IntegerThreshold::get_config_schema()'],['../class_voltage_divider_r1.html#a0945340bdc351b89a43dcf46ed073fe0',1,'VoltageDividerR1::get_config_schema()'],['../class_voltage_divider_r2.html#ae37065fd9bd093497ff74a9faf5b6cea',1,'VoltageDividerR2::get_config_schema()']]], + ['get_5fconfiguration_806',['get_configuration',['../class_networking.html#a4071208242243ae91f48884294a18429',1,'Networking::get_configuration()'],['../class_w_s_client.html#ae4b637b051ecf7ee14181208c6f37855',1,'WSClient::get_configuration()'],['../class_one_wire_temperature.html#a00867083ea90878580cc2cc7d3502bda',1,'OneWireTemperature::get_configuration()'],['../class_s_k_output.html#a9151c5f1c00b08a5b68dcb2ec7a2ed45',1,'SKOutput::get_configuration()'],['../class_s_k_output_time.html#a90ec92a794a311e97b0d89c2941de921',1,'SKOutputTime::get_configuration()'],['../class_configurable.html#a20b0c34bc7386994b6f24863c58a39e7',1,'Configurable::get_configuration()'],['../class_analog_voltage.html#a2b3422b5f6712829e5c093c80f986183',1,'AnalogVoltage::get_configuration()'],['../class_angle_correction.html#aaef0a4f1bd578470a12d046cd745df3b',1,'AngleCorrection::get_configuration()'],['../class_change_filter.html#a92d946de57540d88deb54364a8827f7d',1,'ChangeFilter::get_configuration()'],['../class_curve_interpolator.html#ab375c3b1d191900f1c5561d87ad634cb',1,'CurveInterpolator::get_configuration()'],['../class_difference.html#ae36f623e39d0dceb670ae023e3ce1f52',1,'Difference::get_configuration()'],['../class_frequency.html#a35901f2d996c2e598e1ca0f95ea0e62b',1,'Frequency::get_configuration()'],['../class_integrator.html#a15cc585266b8a2308fa3cc9467693384',1,'Integrator::get_configuration()'],['../class_lambda_transform.html#a508f3eda704b68427d60ed4c00fc8d5d',1,'LambdaTransform::get_configuration()'],['../class_median.html#a658c5210822133ab9f7b8eab173e0edb',1,'Median::get_configuration()'],['../class_moving_average.html#a803ba927db89306b62ebff4375e25ada',1,'MovingAverage::get_configuration()'],['../class_numeric_threshold.html#a3b5472c133ce858cf575716bb682cabe',1,'NumericThreshold::get_configuration()'],['../class_integer_threshold.html#a87724e11f2fade5b245f4099a9f0323c',1,'IntegerThreshold::get_configuration()'],['../class_voltage_divider_r1.html#ac076d517bc3fb64717457a07f477d740',1,'VoltageDividerR1::get_configuration()'],['../class_voltage_divider_r2.html#af76ca11d13ac2ab6e16133a1e1292ef9',1,'VoltageDividerR2::get_configuration()']]], + ['get_5fdelta_807',['get_delta',['../class_s_k_delta.html#ab1592b494b343964703102a4797d3bbc',1,'SKDelta']]], + ['get_5fenable_5fpriority_808',['get_enable_priority',['../class_enable.html#a52c13a29b7cdd574f65e8dffa5c24470',1,'Enable']]], + ['get_5fhostname_809',['get_hostname',['../class_networking.html#a7a3cac2e878aa2c513451f235c70aff7',1,'Networking::get_hostname()'],['../class_sens_e_s_p_app.html#ac068882b9e9f6092da0818c5e42b48b8',1,'SensESPApp::get_hostname()']]], + ['get_5flisten_5fdelay_810',['get_listen_delay',['../class_s_k_listener.html#ad0b2ccb89c8551552b293b337d1ecdf8',1,'SKListener']]], + ['get_5flisteners_811',['get_listeners',['../class_s_k_listener.html#af415adffba7b9ea5b4a379c5344553c3',1,'SKListener']]], + ['get_5fnext_5faddress_812',['get_next_address',['../class_dallas_temperature_sensors.html#a1e1b9cd3dd2bde0d51ef657a490881eb',1,'DallasTemperatureSensors']]], + ['get_5fproperty_5frow_813',['get_property_row',['../networking_8cpp.html#a48cbc1e96bb919a4d4e7631d26744d13',1,'networking.cpp']]], + ['get_5fschema_5ftype_5fstring_814',['get_schema_type_string',['../lambda__transform_8cpp.html#ad157c07ea0943b787f0fb03fa11669bf',1,'get_schema_type_string(const T dummy): lambda_transform.cpp'],['../lambda__transform_8cpp.html#ab2b46faeee0a0a89516c536f0b3fb7c7',1,'get_schema_type_string(const int dummy): lambda_transform.cpp'],['../lambda__transform_8cpp.html#a1ba339fb0c0884b466ff07c096632b6c',1,'get_schema_type_string(const float dummy): lambda_transform.cpp'],['../lambda__transform_8cpp.html#a088917acfc20b1694a87b1bac518676b',1,'get_schema_type_string(const String dummy): lambda_transform.cpp'],['../lambda__transform_8cpp.html#aeff670170ffe32f04eaecd5f5135c7ce',1,'get_schema_type_string(const bool dummy): lambda_transform.cpp'],['../lambda__transform_8h.html#ad157c07ea0943b787f0fb03fa11669bf',1,'get_schema_type_string(const T dummy): lambda_transform.cpp'],['../lambda__transform_8h.html#ab2b46faeee0a0a89516c536f0b3fb7c7',1,'get_schema_type_string(const int dummy): lambda_transform.cpp'],['../lambda__transform_8h.html#a1ba339fb0c0884b466ff07c096632b6c',1,'get_schema_type_string(const float dummy): lambda_transform.cpp'],['../lambda__transform_8h.html#a088917acfc20b1694a87b1bac518676b',1,'get_schema_type_string(const String dummy): lambda_transform.cpp'],['../lambda__transform_8h.html#aeff670170ffe32f04eaecd5f5135c7ce',1,'get_schema_type_string(const bool dummy): lambda_transform.cpp']]], + ['get_5fsensors_815',['get_sensors',['../class_sensor.html#a772509291ea3a645853975e404ad89f9',1,'Sensor']]], + ['get_5fserver_5faddress_816',['get_server_address',['../class_w_s_client.html#a88daee9c4c5b497558c3d07591baa3e0',1,'WSClient']]], + ['get_5fserver_5fport_817',['get_server_port',['../class_w_s_client.html#a26e9057dc9c94a940684716c9c65d113',1,'WSClient']]], + ['get_5fsk_5fpath_818',['get_sk_path',['../class_s_k_emitter.html#ab619d4a66c7683bf06350809e8c2153f',1,'SKEmitter::get_sk_path()'],['../class_s_k_listener.html#acd3c93850871a4ef30d01e3ed08c3fe1',1,'SKListener::get_sk_path()']]], + ['get_5fsources_819',['get_sources',['../class_s_k_emitter.html#a14e45e259c78d1e4ab7bdcce94fc8b02',1,'SKEmitter']]], + ['get_5ftransforms_820',['get_transforms',['../class_transform_base.html#a17bfeb1e7a836b7bc597aa7d7c4ac116',1,'TransformBase']]], + ['get_5fvalue_5fname_821',['get_value_name',['../class_system_hz.html#aafe9250142a6c4b234f3d8e64771ce95',1,'SystemHz::get_value_name()'],['../class_free_mem.html#a114359cfbb1cffce40e545bf00889757',1,'FreeMem::get_value_name()'],['../class_uptime.html#a43cdcac661b684e1c746fcdf7224e68f',1,'Uptime::get_value_name()'],['../class_i_p_addr_dev.html#aad770ae7db264bfc4bc33d3d1dca71fb',1,'IPAddrDev::get_value_name()'],['../class_wifi_signal.html#af2eff535c0ed56dfe91f2c6a17078912',1,'WifiSignal::get_value_name()']]], + ['getaccelerationx_822',['getAccelerationX',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a715cdbdb39e3f12ef813ce3b4c624853',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getaccelerationy_823',['getAccelerationY',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a0a5315f9c1d7bd39f0a50adebd6cd23d',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getaccelerationz_824',['getAccelerationZ',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a410876582b8246975d97655b6288cee5',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getheadingradians_825',['getHeadingRadians',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#aa1db3fbf356c73d64797aed9fa18efa7',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getpitchradians_826',['getPitchRadians',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#aaef033f4cd54969b7057aeed0c8803d8',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getrateofpitch_827',['getRateOfPitch',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a265caeca219432e14d561f15047b51b1',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getrateofroll_828',['getRateOfRoll',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a3f54d150ff5159eeec3fd4188c8766ba',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getrateofturn_829',['getRateOfTurn',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a41a2d8f8e7f6fc97039f074498f1b9f7',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['getrollradians_830',['getRollRadians',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#ae1c06e8c4f18bfaaf4bb094a973c70d9',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['gpggasentenceparser_831',['GPGGASentenceParser',['../class_g_p_g_g_a_sentence_parser.html#a1a3a77042194bd6ef59b7960c0f35fd1',1,'GPGGASentenceParser']]], + ['gpgllsentenceparser_832',['GPGLLSentenceParser',['../class_g_p_g_l_l_sentence_parser.html#af4335548b0e919cb23ec9149bc2e8012',1,'GPGLLSentenceParser']]], + ['gprmcsentenceparser_833',['GPRMCSentenceParser',['../class_g_p_r_m_c_sentence_parser.html#a8ea0212728334cc4b6fa4aa650fa2e58',1,'GPRMCSentenceParser']]], + ['gpsinput_834',['GPSInput',['../class_g_p_s_input.html#ac434000c2641c7ef06badb2d51f79520',1,'GPSInput']]] +]; diff --git a/docs/search/functions_7.html b/docs/generated/docs/search/functions_7.html similarity index 84% rename from docs/search/functions_7.html rename to docs/generated/docs/search/functions_7.html index 7842361ff..cdfdabefb 100644 --- a/docs/search/functions_7.html +++ b/docs/generated/docs/search/functions_7.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_7.js b/docs/generated/docs/search/functions_7.js new file mode 100644 index 000000000..eb20b9fff --- /dev/null +++ b/docs/generated/docs/search/functions_7.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['handle_835',['handle',['../class_n_m_e_a_parser.html#a8687b75207c6df0c049721fe5a586913',1,'NMEAParser']]], + ['handle_5fconfig_836',['handle_config',['../class_h_t_t_p_server.html#a3b7406f8ac0cb9b90e86513acee23542',1,'HTTPServer']]], + ['handle_5fdevice_5freset_837',['handle_device_reset',['../class_h_t_t_p_server.html#ab088a2530794acb9db8a8e1910729c35',1,'HTTPServer']]], + ['handle_5fdevice_5frestart_838',['handle_device_restart',['../class_h_t_t_p_server.html#a8b03465f1ad5631d0e20cc67e5419562',1,'HTTPServer']]], + ['handle_5finfo_839',['handle_info',['../class_h_t_t_p_server.html#ac854fa80c31eba36ad3f2dd5f02d4a14',1,'HTTPServer']]], + ['handle_5fnot_5ffound_840',['handle_not_found',['../class_h_t_t_p_server.html#aafce79dc976b69b318f8fe69f45542be',1,'HTTPServer']]], + ['handle_5fota_841',['handle_ota',['../ota_8cpp.html#afe226f1d9a9fde6f6a37a1bf42d76f03',1,'ota.cpp']]], + ['httpserver_842',['HTTPServer',['../class_h_t_t_p_server.html#adacba9a090d5b0465da86dd6c82953a9',1,'HTTPServer']]], + ['hysteresis_843',['Hysteresis',['../class_hysteresis.html#aa3f2f59d852e7ab8d8ee0b9cb799a04d',1,'Hysteresis']]] +]; diff --git a/docs/search/functions_8.html b/docs/generated/docs/search/functions_8.html similarity index 84% rename from docs/search/functions_8.html rename to docs/generated/docs/search/functions_8.html index 48feafe56..4f9f4e152 100644 --- a/docs/search/functions_8.html +++ b/docs/generated/docs/search/functions_8.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_8.js b/docs/generated/docs/search/functions_8.js new file mode 100644 index 000000000..b5f252353 --- /dev/null +++ b/docs/generated/docs/search/functions_8.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['ina219_844',['INA219',['../class_i_n_a219.html#adc0300a6f6fa99ee85786a354614e343',1,'INA219']]], + ['ina219value_845',['INA219Value',['../class_i_n_a219_value.html#a929d4abc76063b697a4836da30d1d5c6',1,'INA219Value']]], + ['initfilter_846',['initFilter',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a68de3c26ea9715291dcaee9d1260c149',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['integersensor_847',['IntegerSensor',['../class_integer_sensor.html#a2214ecc518fbbb314be8ca987aa0e730',1,'IntegerSensor']]], + ['integerthreshold_848',['IntegerThreshold',['../class_integer_threshold.html#a63bb646505b2c51b0d57b0799d062d86',1,'IntegerThreshold']]], + ['integrator_849',['Integrator',['../class_integrator.html#a787de1dd45b1ced5607e6209f0e01dd0',1,'Integrator']]], + ['ipaddrdev_850',['IPAddrDev',['../class_i_p_addr_dev.html#ae5d89601ff69fb635850bbaacdd61664',1,'IPAddrDev']]], + ['is_5fconnected_851',['is_connected',['../class_w_s_client.html#a6ae43b80f511194b43b0dff2763d68b1',1,'WSClient']]], + ['issignalkconnected_852',['isSignalKConnected',['../class_sens_e_s_p_app.html#adee3f53bc75ae6d5d73a8707dd75600e',1,'SensESPApp']]], + ['iswificonnected_853',['isWifiConnected',['../class_sens_e_s_p_app.html#a15f6e0569533b417e9724540d758c884',1,'SensESPApp']]] +]; diff --git a/docs/search/functions_9.html b/docs/generated/docs/search/functions_9.html similarity index 84% rename from docs/search/functions_9.html rename to docs/generated/docs/search/functions_9.html index 0f05a8ba4..5463d03bb 100644 --- a/docs/search/functions_9.html +++ b/docs/generated/docs/search/functions_9.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_9.js b/docs/generated/docs/search/functions_9.js new file mode 100644 index 000000000..81768839f --- /dev/null +++ b/docs/generated/docs/search/functions_9.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['lambdatransform_854',['LambdaTransform',['../class_lambda_transform.html#af6d167a7ea4ba47ae7cb4bd3432e253d',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input), String config_path="")'],['../class_lambda_transform.html#a939ffd37ee47ac29939718a7bd7454c8',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input), const ParamInfo *param_info, String config_path="")'],['../class_lambda_transform.html#ac3925c430e7e61d7444ed8964c757129',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input, P1 param1), P1 param1, const ParamInfo *param_info, String config_path="")'],['../class_lambda_transform.html#a51a052896ce2249e89e3f4309d91dba6',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2), P1 param1, P2 param2, const ParamInfo *param_info, String config_path="")'],['../class_lambda_transform.html#aefd5de0dfb1b4275e8fc558d7fb684b3',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3), P1 param1, P2 param2, P3 param3, const ParamInfo *param_info, String config_path="")'],['../class_lambda_transform.html#a5e427944d82efb35a67d4c2328a5cf0f',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4), P1 param1, P2 param2, P3 param3, P4 param4, const ParamInfo *param_info, String config_path="")'],['../class_lambda_transform.html#a89c2e0c71f2b07f38e457c9c4b02787c',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4, P5 param5), P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, const ParamInfo *param_info, String config_path="")'],['../class_lambda_transform.html#aaac239466264ed93d07c40d407f6feec',1,'LambdaTransform::LambdaTransform(OUT(*function)(IN input, P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, P6 param6), P1 param1, P2 param2, P3 param3, P4 param4, P5 param5, P6 param6, const ParamInfo *param_info, String config_path="")']]], + ['ledblinker_855',['LedBlinker',['../class_led_blinker.html#a89ec1ec8b1fa698c58f95227a8fc9d3c',1,'LedBlinker']]], + ['linear_856',['Linear',['../class_linear.html#ad9477f54820b5a234339d342836e9869',1,'Linear']]], + ['load_5fconfiguration_857',['load_configuration',['../class_configurable.html#ac2ba4044c81acc2fc6bf95cce411f6a4',1,'Configurable']]], + ['loop_858',['loop',['../class_w_s_client.html#ae23657a7da08a9413a09e9054495904e',1,'WSClient']]] +]; diff --git a/docs/search/functions_a.html b/docs/generated/docs/search/functions_a.html similarity index 84% rename from docs/search/functions_a.html rename to docs/generated/docs/search/functions_a.html index 03faad22f..800adebee 100644 --- a/docs/search/functions_a.html +++ b/docs/generated/docs/search/functions_a.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/functions_a.js b/docs/generated/docs/search/functions_a.js new file mode 100644 index 000000000..98bc04816 --- /dev/null +++ b/docs/generated/docs/search/functions_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['max31856thermocouple_859',['MAX31856Thermocouple',['../class_m_a_x31856_thermocouple.html#a2e8fb0d3c58fe34f9d49554b418596a8',1,'MAX31856Thermocouple']]], + ['median_860',['Median',['../class_median.html#a14ee18d6419bc212b33fd1d96d6cca2b',1,'Median']]], + ['movingaverage_861',['MovingAverage',['../class_moving_average.html#adda127d69bc5441a3f4ca98d51c87f4b',1,'MovingAverage']]] +]; diff --git a/docs/generated/docs/search/functions_b.html b/docs/generated/docs/search/functions_b.html new file mode 100644 index 000000000..69397a0b0 --- /dev/null +++ b/docs/generated/docs/search/functions_b.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/functions_b.js b/docs/generated/docs/search/functions_b.js new file mode 100644 index 000000000..ee27ba2e0 --- /dev/null +++ b/docs/generated/docs/search/functions_b.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['networking_862',['Networking',['../class_networking.html#abffdf8c391f0e371da4ff59a05b1c085',1,'Networking']]], + ['nmeaparser_863',['NMEAParser',['../class_n_m_e_a_parser.html#acf7b68ddc8fc466324abede2dd592ad0',1,'NMEAParser']]], + ['notify_864',['notify',['../class_observable.html#a099bf851e05bb8c1a25e83f2a1389e58',1,'Observable']]], + ['numericsensor_865',['NumericSensor',['../class_numeric_sensor.html#a456c5509bf2af2007bd9ee1703e8315f',1,'NumericSensor']]], + ['numericthreshold_866',['NumericThreshold',['../class_numeric_threshold.html#a60e21bb34053c5b97d14d654f083b17c',1,'NumericThreshold']]] +]; diff --git a/docs/generated/docs/search/functions_c.html b/docs/generated/docs/search/functions_c.html new file mode 100644 index 000000000..a5c4feec4 --- /dev/null +++ b/docs/generated/docs/search/functions_c.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/functions_c.js b/docs/generated/docs/search/functions_c.js new file mode 100644 index 000000000..c33fc4670 --- /dev/null +++ b/docs/generated/docs/search/functions_c.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['observablevalue_867',['ObservableValue',['../class_observable_value.html#a92bc2f2646592dc209717bb546d86a2c',1,'ObservableValue::ObservableValue()'],['../class_observable_value.html#adaf97ca440787ba883915603056f002b',1,'ObservableValue::ObservableValue(const T &value)']]], + ['on_5fconnected_868',['on_connected',['../class_w_s_client.html#a262d41693fab15daa3acac9de78fbf35',1,'WSClient']]], + ['on_5fdisconnected_869',['on_disconnected',['../class_w_s_client.html#ae110b10f209f55a82e2d700c8c9149a7',1,'WSClient']]], + ['on_5ferror_870',['on_error',['../class_w_s_client.html#af921852d17f75f46999c2cc1442c4723',1,'WSClient']]], + ['on_5freceive_5fdelta_871',['on_receive_delta',['../class_w_s_client.html#a2b235f3e62668b6e7923cbbcba00e5c1',1,'WSClient']]], + ['onewiretemperature_872',['OneWireTemperature',['../class_one_wire_temperature.html#a1058bb2484427bbf21f7f9e4ea9751f9',1,'OneWireTemperature']]], + ['operator_3d_873',['operator=',['../class_observable_value.html#a900b99ef37a8d31e84c48a97b8eff10d',1,'ObservableValue']]], + ['orientation9dof_874',['Orientation9DOF',['../class_orientation9_d_o_f.html#ad27863d8df7610c8e6c74c874a91fbba',1,'Orientation9DOF']]], + ['owda_5fto_5fstring_875',['owda_to_string',['../onewire__temperature_8cpp.html#ad0134b3041182b5f8c3004025183e6eb',1,'onewire_temperature.cpp']]] +]; diff --git a/docs/generated/docs/search/functions_d.html b/docs/generated/docs/search/functions_d.html new file mode 100644 index 000000000..2bfe2453d --- /dev/null +++ b/docs/generated/docs/search/functions_d.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/functions_d.js b/docs/generated/docs/search/functions_d.js new file mode 100644 index 000000000..0b0b83458 --- /dev/null +++ b/docs/generated/docs/search/functions_d.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['parse_876',['parse',['../class_sentence_parser.html#ad92490af20d92f942b2e52abfc26007f',1,'SentenceParser::parse(char *buffer, int term_offsets[], int num_terms)=0'],['../class_sentence_parser.html#a74ed90a9386887e9ff2c13dbb12a556e',1,'SentenceParser::parse(char *buffer, int term_offsets[], int num_terms, std::map< String, SentenceParser * > &sentence_parsers)'],['../class_g_p_g_g_a_sentence_parser.html#a6bce986c2fb84af7c54477cd7d43f1b1',1,'GPGGASentenceParser::parse()'],['../class_g_p_g_l_l_sentence_parser.html#ab1583e721b24183fcc59f2b2826b8c52',1,'GPGLLSentenceParser::parse()'],['../class_g_p_r_m_c_sentence_parser.html#a67589bcbddabbe32aac949c3ca9f4a75',1,'GPRMCSentenceParser::parse()'],['../class_p_s_t_i_sentence_parser.html#a308af730f992717a0d1e84416396ae38',1,'PSTISentenceParser::parse(char *buffer, int term_offsets[], int num_terms) override final'],['../class_p_s_t_i_sentence_parser.html#a94f6b75ee9ad9965c4a5cf27e44a12e5',1,'PSTISentenceParser::parse(char *buffer, int term_offsets[], int num_terms, std::map< String, SentenceParser * > &sentence_parsers)'],['../class_p_s_t_i030_sentence_parser.html#aee500dadf0a5ff089d8281c642cdb9bc',1,'PSTI030SentenceParser::parse()'],['../class_p_s_t_i032_sentence_parser.html#ac25a7c9f31987ce7a01ce499f045a6a9',1,'PSTI032SentenceParser::parse()']]], + ['parse_5fav_877',['parse_AV',['../nmea__parser_8cpp.html#af394f12d9ff6fb97e4c158dac1eb6dc0',1,'nmea_parser.cpp']]], + ['parse_5fdate_878',['parse_date',['../nmea__parser_8cpp.html#a29c34542d9842302271bb6a0380d4d4d',1,'nmea_parser.cpp']]], + ['parse_5fdouble_879',['parse_double',['../nmea__parser_8cpp.html#a3f3c4d059e6d6bcc7040f624486d37ae',1,'nmea_parser.cpp']]], + ['parse_5few_880',['parse_EW',['../nmea__parser_8cpp.html#a113615295f150c16f895c9e2525bbd6e',1,'nmea_parser.cpp']]], + ['parse_5ffloat_881',['parse_float',['../nmea__parser_8cpp.html#ac534d920f6775ddb34453e554699e1b4',1,'nmea_parser.cpp']]], + ['parse_5fint_882',['parse_int',['../nmea__parser_8cpp.html#a4de8e35130646cbb488072ff8e457126',1,'nmea_parser.cpp']]], + ['parse_5flatlon_883',['parse_latlon',['../nmea__parser_8cpp.html#a21e8f85a497e58ad08d5c473e89a8463',1,'nmea_parser.cpp']]], + ['parse_5fm_884',['parse_M',['../nmea__parser_8cpp.html#a4021e9ad227b156bfdedaa8fd938590b',1,'nmea_parser.cpp']]], + ['parse_5fns_885',['parse_NS',['../nmea__parser_8cpp.html#a18bf596259e1849f3b6bdbdd765ab606',1,'nmea_parser.cpp']]], + ['parse_5fpsti030_5fmode_886',['parse_PSTI030_mode',['../nmea__parser_8cpp.html#a37bce694f34f625b2c3e29a1a74c1570',1,'nmea_parser.cpp']]], + ['parse_5ftime_887',['parse_time',['../nmea__parser_8cpp.html#a202c8d748e820b33d2fb1a324710698b',1,'nmea_parser.cpp']]], + ['parse_5fvalue_888',['parse_value',['../class_s_k_listener.html#a68a944ab34d3179f0bd0fab320d47a59',1,'SKListener::parse_value()'],['../class_s_k_value_listener.html#a1ececa80ce9841cc5cbef88797148484',1,'SKValueListener::parse_value()']]], + ['printsensordetails_889',['printSensorDetails',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a85ab2b1718a9e1bc39759ecd9b97730c',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['psti030sentenceparser_890',['PSTI030SentenceParser',['../class_p_s_t_i030_sentence_parser.html#aa368abaa7d559a9a0893d3846a01fdb7',1,'PSTI030SentenceParser']]], + ['psti032sentenceparser_891',['PSTI032SentenceParser',['../class_p_s_t_i032_sentence_parser.html#af44c303ec78c3a24a18eacb265cee013',1,'PSTI032SentenceParser']]], + ['pstisentenceparser_892',['PSTISentenceParser',['../class_p_s_t_i_sentence_parser.html#a4bb2246e947c443d5bca3706e2853cd0',1,'PSTISentenceParser']]] +]; diff --git a/docs/generated/docs/search/functions_e.html b/docs/generated/docs/search/functions_e.html new file mode 100644 index 000000000..0a6b52e3f --- /dev/null +++ b/docs/generated/docs/search/functions_e.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/functions_e.js b/docs/generated/docs/search/functions_e.js new file mode 100644 index 000000000..8602bdc4b --- /dev/null +++ b/docs/generated/docs/search/functions_e.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['read_893',['read',['../class_base_analog_reader.html#a47be844ead62b7e39e44b00587b756e7',1,'BaseAnalogReader']]], + ['read9dof_894',['Read9DOF',['../class_read9_d_o_f.html#ae2faf1080765ed56709e63f4bfa58289',1,'Read9DOF']]], + ['read_5fjson_895',['read_json',['../spiffs__storage_8h.html#a3ca6038ce2edba53098d8ca7ffdaa35d',1,'spiffs_storage.h']]], + ['read_5fstring_896',['read_string',['../spiffs__storage_8cpp.html#a7429780969e66149e25ea6088bf65b7a',1,'read_string(const String filename): spiffs_storage.cpp'],['../spiffs__storage_8h.html#a7429780969e66149e25ea6088bf65b7a',1,'read_string(const String filename): spiffs_storage.cpp']]], + ['reconstruct_5fnmea_5fsentence_897',['reconstruct_nmea_sentence',['../nmea__parser_8cpp.html#a69a390886762ecd9593ebeada6f3e52d',1,'nmea_parser.cpp']]], + ['register_5faddress_898',['register_address',['../class_dallas_temperature_sensors.html#a020ae149bf4372f926d4414ac5c67f5a',1,'DallasTemperatureSensors']]], + ['report_5fsuccess_899',['report_success',['../nmea__parser_8cpp.html#af7a3600deec155122015fcfedfc126a7',1,'nmea_parser.cpp']]], + ['reset_900',['reset',['../class_sens_e_s_p_app.html#a0f7605a2c63a3ed250e1c742608956b2',1,'SensESPApp']]], + ['reset_5fsettings_901',['reset_settings',['../class_networking.html#a207f306c10b8f65ca0904cc26a9ef15c',1,'Networking']]], + ['restart_902',['restart',['../class_w_s_client.html#a478877d14e5a303c24ea60a4cc4f8752',1,'WSClient']]] +]; diff --git a/docs/generated/docs/search/functions_f.html b/docs/generated/docs/search/functions_f.html new file mode 100644 index 000000000..f4027d63b --- /dev/null +++ b/docs/generated/docs/search/functions_f.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/functions_f.js b/docs/generated/docs/search/functions_f.js new file mode 100644 index 000000000..e5a690606 --- /dev/null +++ b/docs/generated/docs/search/functions_f.js @@ -0,0 +1,55 @@ +var searchData= +[ + ['sample_903',['Sample',['../class_curve_interpolator_1_1_sample.html#a7ad23733bf31c9a8ccbe9689b55f6d67',1,'CurveInterpolator::Sample::Sample()'],['../class_curve_interpolator_1_1_sample.html#aa2ed35560a823ced306ef02a50d95cac',1,'CurveInterpolator::Sample::Sample(float input, float output)'],['../class_curve_interpolator_1_1_sample.html#a5f69567a227e29b795b68e4310a9da40',1,'CurveInterpolator::Sample::Sample(JsonObject &obj)']]], + ['save_5fconfig_5fcallback_904',['save_config_callback',['../networking_8cpp.html#a7930cb24915efc348611f4c48d1d5e4c',1,'networking.cpp']]], + ['save_5fconfiguration_905',['save_configuration',['../class_configurable.html#a657419f13060caa20c45a41935b9d53a',1,'Configurable']]], + ['send_5fdelta_906',['send_delta',['../class_w_s_client.html#ab6bcc3fb4cfe71aff3929480fab9bd5a',1,'WSClient']]], + ['sensespapp_907',['SensESPApp',['../class_sens_e_s_p_app.html#ad50404ad55ffff730011c74a2bac8334',1,'SensESPApp']]], + ['sensespappbuilder_908',['SensESPAppBuilder',['../class_sens_e_s_p_app_builder.html#a820e3351c223431dd5ace3020eae7c12',1,'SensESPAppBuilder']]], + ['sensor_909',['Sensor',['../class_sensor.html#a921d5f94f7f77fa42b5950a807a8e79c',1,'Sensor']]], + ['sensornxp_5ffxos8700_5ffxas21002_910',['SensorNXP_FXOS8700_FXAS21002',['../class_sensor_n_x_p___f_x_o_s8700___f_x_a_s21002.html#a681937828c756188c18330a7aacd1ecb',1,'SensorNXP_FXOS8700_FXAS21002']]], + ['sentence_911',['sentence',['../class_sentence_parser.html#aa079d8ee1b96e2f03a9c7a1f2ddf7519',1,'SentenceParser::sentence()'],['../class_g_p_g_g_a_sentence_parser.html#ac70d60b587cd0e48479c397bb30983a3',1,'GPGGASentenceParser::sentence()'],['../class_g_p_g_l_l_sentence_parser.html#acbee347184ae22343a9af2515ae57c98',1,'GPGLLSentenceParser::sentence()'],['../class_g_p_r_m_c_sentence_parser.html#a75afdae2ce4e8a27676d86ef2f5cbf9f',1,'GPRMCSentenceParser::sentence()'],['../class_p_s_t_i_sentence_parser.html#add6764d7c0579101840b82a86f6bd2ef',1,'PSTISentenceParser::sentence()'],['../class_p_s_t_i030_sentence_parser.html#adf5b386bffd76b1055d70aa59615d493',1,'PSTI030SentenceParser::sentence()'],['../class_p_s_t_i032_sentence_parser.html#acbe297f07ea6729d870ec8222535b1ce',1,'PSTI032SentenceParser::sentence()']]], + ['sentenceparser_912',['SentenceParser',['../class_sentence_parser.html#a20be85c734aab87cf783aaa6a999a29a',1,'SentenceParser']]], + ['set_913',['set',['../class_observable_value.html#a51cf25d4951d3214021da0c25985838d',1,'ObservableValue']]], + ['set_5fconfiguration_914',['set_configuration',['../class_networking.html#a59d475a2f12b88ef8334274a9a0b1cee',1,'Networking::set_configuration()'],['../class_w_s_client.html#ad099870379ee102fa4f5b3b584b50658',1,'WSClient::set_configuration()'],['../class_one_wire_temperature.html#a83bce20a52e396dbd97a43a6e72b2824',1,'OneWireTemperature::set_configuration()'],['../class_s_k_output.html#a406e7e56220dd41bd567c56c0e6b9a4d',1,'SKOutput::set_configuration()'],['../class_s_k_output_time.html#a41ad61c700a444916873e908612eca63',1,'SKOutputTime::set_configuration()'],['../class_configurable.html#a6e0281fe25cfbdf024bdb05147ffb52b',1,'Configurable::set_configuration()'],['../class_analog_voltage.html#a37e88929680d2cf431f2da3ee38c140f',1,'AnalogVoltage::set_configuration()'],['../class_angle_correction.html#a53b1594b6161feff6f218a2aa7a05ad3',1,'AngleCorrection::set_configuration()'],['../class_change_filter.html#a0bbe692080d7ee9a41fcd77a3f581ca9',1,'ChangeFilter::set_configuration()'],['../class_curve_interpolator.html#acfda195c475a261d2e2a3af365fd6c19',1,'CurveInterpolator::set_configuration()'],['../class_difference.html#a57e134a00cd6688d147f93c662520040',1,'Difference::set_configuration()'],['../class_frequency.html#a87d16c67ce064b9b0f671747808c3963',1,'Frequency::set_configuration()'],['../class_integrator.html#aa53205d3211635dad0a035adf5d511a6',1,'Integrator::set_configuration()'],['../class_lambda_transform.html#a94d320a35eee5177c8d85b4c0c21948a',1,'LambdaTransform::set_configuration()'],['../class_median.html#ac06073c22b922aceee9f01ddaccfb54a',1,'Median::set_configuration()'],['../class_moving_average.html#a9f02a3c253c6456e4d5c063ea5f6d364',1,'MovingAverage::set_configuration()'],['../class_numeric_threshold.html#a714de271f5489664146ac9090a0dc14b',1,'NumericThreshold::set_configuration()'],['../class_integer_threshold.html#a92097f9bf12f55f4ccea4c44e63b1ff2',1,'IntegerThreshold::set_configuration()'],['../class_voltage_divider_r1.html#a629323d44b24dabe6e54c06a80dfe280',1,'VoltageDividerR1::set_configuration()'],['../class_voltage_divider_r2.html#a805b64252dccfd3720ce5fc0f84964b3',1,'VoltageDividerR2::set_configuration()']]], + ['set_5fhostname_915',['set_hostname',['../class_sens_e_s_p_app_builder.html#a154893dfbbca4f214b733f3a0d147b76',1,'SensESPAppBuilder::set_hostname()'],['../class_s_k_delta.html#acd3c98ae0fe75f92d5d9c1e6a216a8dd',1,'SKDelta::set_hostname()']]], + ['set_5finput_916',['set_input',['../class_digital_output.html#a565a9c57af6dbc61d4895c4b35fe3a6a',1,'DigitalOutput::set_input()'],['../class_s_k_output.html#a58191f013e06068ca13ca85365fd0957',1,'SKOutput::set_input()'],['../class_value_consumer.html#a0a2ab6f7c8bfb460d8778f6ae727cde7',1,'ValueConsumer::set_input()'],['../class_a_d_s1x15_voltage.html#aee56be05b6373547f7b9a228c8234227',1,'ADS1x15Voltage::set_input()'],['../class_analog_voltage.html#a86c85f6bae3f7e478a48475a7d69b5c8',1,'AnalogVoltage::set_input()'],['../class_angle_correction.html#afd9a559ce1218e9b78137ff1a9c6d77d',1,'AngleCorrection::set_input()'],['../class_change_filter.html#a48249b125e44834d6641484b49f3a877',1,'ChangeFilter::set_input()'],['../class_curve_interpolator.html#af2ce224bb3f29245ea8d90cee0c5bdb6',1,'CurveInterpolator::set_input()'],['../class_debounce.html#a4101506b2f5c17184e976f2fb43b1b1b',1,'Debounce::set_input()'],['../class_difference.html#a432ef87751c6bee8e5dadc610dfcb4ff',1,'Difference::set_input()'],['../class_frequency.html#a99df388f446a8aa46f465fe464023f55',1,'Frequency::set_input()'],['../class_integrator.html#a7fb38d2d19aa3e918dbee34b9096f7a6',1,'Integrator::set_input()'],['../class_lambda_transform.html#a842321e8581af77178e2cd9016f27c28',1,'LambdaTransform::set_input()'],['../class_median.html#ad20ab4e65d66330c5fa1e1cf0f16036c',1,'Median::set_input()'],['../class_moving_average.html#a22a08de98351ed805b49beecb234ab0b',1,'MovingAverage::set_input()'],['../class_threshold_transform.html#ac83f16930cb638bb7995a89bada5da8d',1,'ThresholdTransform::set_input()'],['../class_time_string.html#adde406ecfdeea029a07c54c87f29580f',1,'TimeString::set_input()'],['../class_voltage_multiplier.html#a606d3a993996bc18fca30f9231c30518',1,'VoltageMultiplier::set_input()'],['../class_voltage_divider_r1.html#ad9cb0660e2c1e82a6740739fcfc2a360',1,'VoltageDividerR1::set_input()'],['../class_voltage_divider_r2.html#a43fa7bb9dc49c50de247aac272d7f697',1,'VoltageDividerR2::set_input()']]], + ['set_5fled_5fblinker_917',['set_led_blinker',['../class_sens_e_s_p_app_builder.html#afcbebdfc6392d7bca08371fdffed2779',1,'SensESPAppBuilder']]], + ['set_5fled_5fpin_918',['set_led_pin',['../class_sens_e_s_p_app_builder.html#aa00b3826099409cd15defce2cba7ce71',1,'SensESPAppBuilder']]], + ['set_5fpriority_919',['set_priority',['../class_enable.html#affdeaa165e0c553dd3490487a65432c8',1,'Enable']]], + ['set_5fserver_5fconnected_920',['set_server_connected',['../class_led_blinker.html#a0cdd9d7e8cc453edd234ce2785ce28ea',1,'LedBlinker']]], + ['set_5fserver_5fdisconnected_921',['set_server_disconnected',['../class_led_blinker.html#ab0f765b76f30406a7b53d4360c897d64',1,'LedBlinker']]], + ['set_5fsk_5fpath_922',['set_sk_path',['../class_s_k_emitter.html#a670348fb1ef1bf3d5e1ba49660fc15d9',1,'SKEmitter']]], + ['set_5fsk_5fserver_923',['set_sk_server',['../class_sens_e_s_p_app_builder.html#a2a1b039efc3345f1d909b7adea3342ee',1,'SensESPAppBuilder']]], + ['set_5fstandard_5fsensors_924',['set_standard_sensors',['../class_sens_e_s_p_app_builder.html#aa17d9342f404c76087f27bd6d34729e0',1,'SensESPAppBuilder']]], + ['set_5fstate_925',['set_state',['../class_led_blinker.html#aa9870e4cb1a35a175edcd710142b8595',1,'LedBlinker']]], + ['set_5fwifi_926',['set_wifi',['../class_sens_e_s_p_app_builder.html#a81a82a604d3720c50b1bbe7d7c649172',1,'SensESPAppBuilder']]], + ['set_5fwifi_5fconnected_927',['set_wifi_connected',['../class_led_blinker.html#a394a529a52a7ee1e0321498de017f788',1,'LedBlinker']]], + ['set_5fwifi_5fdisconnected_928',['set_wifi_disconnected',['../class_led_blinker.html#a9c0b4f9aaacc14ab555df6abb43e8ae5',1,'LedBlinker']]], + ['setup_929',['setup',['../class_networking.html#a94815dd34af734e9fc3839cbe6279355',1,'Networking']]], + ['setup_5fanalog_5finput_930',['setup_analog_input',['../wiring__helpers_8cpp.html#a3a4bbd0371b8285dbb7b8666d50a53a3',1,'setup_analog_input(String sk_path, float k, float c, String config_path): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a70ac1c40d730c9e0f9b93b1f4dd5f0f9',1,'setup_analog_input(String sk_path, float k=1, float c=0, String config_path=""): wiring_helpers.cpp']]], + ['setup_5fdiscovery_931',['setup_discovery',['../discovery_8cpp.html#aeea49ee803402167d8d79ca58268363e',1,'setup_discovery(const char *hostname): discovery.cpp'],['../discovery_8h.html#aeea49ee803402167d8d79ca58268363e',1,'setup_discovery(const char *hostname): discovery.cpp']]], + ['setup_5ffuel_5fflow_5fmeter_932',['setup_fuel_flow_meter',['../wiring__helpers_8cpp.html#ae36e0604b36693bd720bffcf4145baf9',1,'setup_fuel_flow_meter(int inflow_pin, int return_flow_pin): wiring_helpers.cpp'],['../wiring__helpers_8h.html#ae36e0604b36693bd720bffcf4145baf9',1,'setup_fuel_flow_meter(int inflow_pin, int return_flow_pin): wiring_helpers.cpp']]], + ['setup_5fgps_933',['setup_gps',['../wiring__helpers_8cpp.html#a8f7d5e59747355ce523001faddc7ada9',1,'setup_gps(Stream *rx_stream): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a8f7d5e59747355ce523001faddc7ada9',1,'setup_gps(Stream *rx_stream): wiring_helpers.cpp']]], + ['setup_5fonewire_5ftemperature_934',['setup_onewire_temperature',['../wiring__helpers_8cpp.html#a17220137bcd65b6f922f5a14165a8fcf',1,'setup_onewire_temperature(SensESPApp *seapp, DallasTemperatureSensors *dts, String sk_path, String config_path, String schema): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a37c83d7d3ac2abb00e8f9e86c1da52d3',1,'setup_onewire_temperature(DallasTemperatureSensors *dts, String sk_path, String config_path): wiring_helpers.h']]], + ['setup_5fota_935',['setup_ota',['../ota_8cpp.html#a33a44650f7c396edaeee69c33952d906',1,'setup_ota(): ota.cpp'],['../ota_8h.html#a33a44650f7c396edaeee69c33952d906',1,'setup_ota(): ota.cpp']]], + ['setup_5frpm_5fmeter_936',['setup_rpm_meter',['../wiring__helpers_8cpp.html#aa6279a7bab0b61c448263a90303bb7e0',1,'setup_rpm_meter(SensESPApp *seapp, int input_pin): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a99ed20d80aca90bb060c88019c5f739f',1,'setup_rpm_meter(int input_pin): wiring_helpers.h']]], + ['setup_5fsaved_5fssid_937',['setup_saved_ssid',['../class_networking.html#a91507b52fbc31dd34d143c8a5634027e',1,'Networking']]], + ['setup_5fspiffs_5fstorage_938',['setup_spiffs_storage',['../spiffs__storage_8cpp.html#a1dfee751479797b385c81cacb151c115',1,'setup_spiffs_storage(): spiffs_storage.cpp'],['../spiffs__storage_8h.html#a1dfee751479797b385c81cacb151c115',1,'setup_spiffs_storage(): spiffs_storage.cpp']]], + ['setup_5fstandard_5fsensors_939',['setup_standard_sensors',['../sensesp__app_8cpp.html#a7c23c6671a7c574688672c9ba0a0e41d',1,'sensesp_app.cpp']]], + ['setup_5fwifi_5fmanager_940',['setup_wifi_manager',['../class_networking.html#a082fa99914f8f6f277b640667877c85e',1,'Networking']]], + ['setupserialdebug_941',['SetupSerialDebug',['../sensesp__app_8cpp.html#a26cd8b11d153355437b86342648b9d70',1,'SetupSerialDebug(uint32_t baudrate): sensesp_app.cpp'],['../sensesp__app_8h.html#a26cd8b11d153355437b86342648b9d70',1,'SetupSerialDebug(uint32_t baudrate): sensesp_app.cpp']]], + ['sht31_942',['SHT31',['../class_s_h_t31.html#a01363a697cf87524b3afdd62bd9c103f',1,'SHT31']]], + ['sht31value_943',['SHT31Value',['../class_s_h_t31_value.html#a2407a923743f358ee2a566de926fa69f',1,'SHT31Value']]], + ['skdelta_944',['SKDelta',['../class_s_k_delta.html#a3d4825fc72903feaebe635dc643d2b16',1,'SKDelta']]], + ['skemitter_945',['SKEmitter',['../class_s_k_emitter.html#aeba0ccd27a8b6bad1e2ddbf2603a5d8d',1,'SKEmitter']]], + ['sklistener_946',['SKListener',['../class_s_k_listener.html#ad72197ab8a7a24d83152df74477527b1',1,'SKListener']]], + ['skoutput_947',['SKOutput',['../class_s_k_output.html#a88f9638dd4779818b41a62738ba44876',1,'SKOutput::SKOutput()'],['../class_s_k_output.html#a811a99c30626b6840000b0c152aa1f37',1,'SKOutput::SKOutput(String sk_path, String config_path="")']]], + ['skoutputtime_948',['SKOutputTime',['../class_s_k_output_time.html#ab77e9bdfeb69fd37c6fc87ac247146e4',1,'SKOutputTime']]], + ['skvaluelistener_949',['SKValueListener',['../class_s_k_value_listener.html#ad8b01da288238c75b8f4e2f119e5e136',1,'SKValueListener']]], + ['stream_5fraw_5fvalues_950',['stream_raw_values',['../class_orientation9_d_o_f.html#a4631c8cdba0a0e3cb174ce508c30950f',1,'Orientation9DOF']]], + ['string_5fto_5fowda_951',['string_to_owda',['../onewire__temperature_8cpp.html#a2ea2a536fdbbb476ae3fb824d73d3e1a',1,'onewire_temperature.cpp']]], + ['stringsensor_952',['StringSensor',['../class_string_sensor.html#a8ed16d934bf90314e4f00dba25b1d202',1,'StringSensor']]], + ['symmetrictransform_953',['SymmetricTransform',['../class_symmetric_transform.html#a77383aeb8a2dc0e27a2fbc24b451bc90',1,'SymmetricTransform']]], + ['systemhz_954',['SystemHz',['../class_system_hz.html#a72aa9d59ca93c864b3c4bba55fdd4ec6',1,'SystemHz']]] +]; diff --git a/docs/generated/docs/search/mag_sel.svg b/docs/generated/docs/search/mag_sel.svg new file mode 100644 index 000000000..03626f64a --- /dev/null +++ b/docs/generated/docs/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/docs/search/nomatches.html b/docs/generated/docs/search/nomatches.html similarity index 100% rename from docs/search/nomatches.html rename to docs/generated/docs/search/nomatches.html diff --git a/docs/search/related_0.html b/docs/generated/docs/search/related_0.html similarity index 84% rename from docs/search/related_0.html rename to docs/generated/docs/search/related_0.html index 8ee34ff8c..31d0eccb1 100644 --- a/docs/search/related_0.html +++ b/docs/generated/docs/search/related_0.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/related_0.js b/docs/generated/docs/search/related_0.js new file mode 100644 index 000000000..88071ef29 --- /dev/null +++ b/docs/generated/docs/search/related_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['httpserver_1137',['HTTPServer',['../class_sens_e_s_p_app.html#adb5f6061831be202d2cc58ebdffa44d5',1,'SensESPApp']]] +]; diff --git a/docs/generated/docs/search/related_1.html b/docs/generated/docs/search/related_1.html new file mode 100644 index 000000000..2c6c4d2c4 --- /dev/null +++ b/docs/generated/docs/search/related_1.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/related_1.js b/docs/generated/docs/search/related_1.js new file mode 100644 index 000000000..b39528bd5 --- /dev/null +++ b/docs/generated/docs/search/related_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['operator_3c_1138',['operator<',['../class_enable.html#a5e6385aea4a61b890368ce0b411f690c',1,'Enable::operator<()'],['../class_curve_interpolator_1_1_sample.html#a1cf03a106b3a98056fdb448df6fb9c17',1,'CurveInterpolator::Sample::operator<()']]] +]; diff --git a/docs/generated/docs/search/related_2.html b/docs/generated/docs/search/related_2.html new file mode 100644 index 000000000..b466cd11f --- /dev/null +++ b/docs/generated/docs/search/related_2.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/related_2.js b/docs/generated/docs/search/related_2.js new file mode 100644 index 000000000..d3b77f073 --- /dev/null +++ b/docs/generated/docs/search/related_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['sensespappbuilder_1139',['SensESPAppBuilder',['../class_sens_e_s_p_app.html#a1c94b1836273e4d6f132f5e2c29ba648',1,'SensESPApp']]] +]; diff --git a/docs/search/search.css b/docs/generated/docs/search/search.css similarity index 75% rename from docs/search/search.css rename to docs/generated/docs/search/search.css index 3cf9df94a..933cf0880 100644 --- a/docs/search/search.css +++ b/docs/generated/docs/search/search.css @@ -1,98 +1,82 @@ /*---------------- Search Box */ -#FSearchBox { - float: left; -} - #MSearchBox { white-space : nowrap; - float: none; - margin-top: 8px; - right: 0px; - width: 170px; - height: 24px; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; z-index: 102; } -#MSearchBox .left -{ - display:block; - position:absolute; - left:10px; - width:20px; - height:19px; - background:url('search_l.png') no-repeat; - background-position:right; +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; } #MSearchSelect { - display:block; - position:absolute; - width:20px; - height:19px; -} - -.left #MSearchSelect { - left:4px; -} - -.right #MSearchSelect { - right:5px; + display: inline-block; + vertical-align: middle; + height: 1.4em; + padding: 0 0 0 0.3em; + margin: 0; } #MSearchField { - display:block; - position:absolute; - height:19px; - background:url('search_m.png') repeat-x; + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 1.1em; + margin: 0 0.15em; + padding: 0; + line-height: 1em; border:none; - width:115px; - margin-left:20px; - padding-left:4px; color: #909090; outline: none; - font: 9pt Arial, Verdana, sans-serif; + font-family: Arial, Verdana, sans-serif; -webkit-border-radius: 0px; + border-radius: 0px; + background: none; } -#FSearchBox #MSearchField { - margin-left:15px; -} #MSearchBox .right { - display:block; - position:absolute; - right:10px; - top:8px; - width:20px; - height:19px; - background:url('search_r.png') no-repeat; - background-position:left; + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; } #MSearchClose { display: none; - position: absolute; - top: 4px; + font-size: inherit; background : none; border: none; - margin: 0px 4px 0px 0px; - padding: 0px 0px; + margin: 0; + padding: 0; outline: none; -} -.left #MSearchClose { - left: 6px; } -.right #MSearchClose { - right: 2px; +#MSearchCloseImg { + height: 1.4em; + padding: 0.3em; + margin: 0; } .MSearchBoxActive #MSearchField { color: #000000; } +#main-menu > li:last-child { + /* This
        • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + /*---------------- Search filter selection */ #MSearchSelectWindow { diff --git a/docs/search/search.js b/docs/generated/docs/search/search.js similarity index 93% rename from docs/search/search.js rename to docs/generated/docs/search/search.js index a554ab9cb..92b609464 100644 --- a/docs/search/search.js +++ b/docs/generated/docs/search/search.js @@ -1,25 +1,26 @@ /* - @licstart The following is the entire license notice for the - JavaScript code in this file. + @licstart The following is the entire license notice for the JavaScript code in this file. - Copyright (C) 1997-2017 by Dimitri van Heesch + The MIT License (MIT) - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. + Copyright (C) 1997-2020 by Dimitri van Heesch - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. - @licend The above is the entire license notice - for the JavaScript code in this file + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file */ function convertToId(search) { @@ -200,10 +201,9 @@ function SearchBox(name, resultsPath, inFrame, label) } return; } - else if (window.frames.MSearchResults.searchResults) + else { - var elem = window.frames.MSearchResults.searchResults.NavNext(0); - if (elem) elem.focus(); + window.frames.MSearchResults.postMessage("take_focus", "*"); } } else if (e.keyCode==27) // Escape out of the search field @@ -364,7 +364,7 @@ function SearchBox(name, resultsPath, inFrame, label) if (domPopupSearchResultsWindow.style.display!='block') { var domSearchBox = this.DOMSearchBox(); - this.DOMSearchClose().style.display = 'inline'; + this.DOMSearchClose().style.display = 'inline-block'; if (this.insideFrame) { var domPopupSearchResults = this.DOMPopupSearchResults(); diff --git a/docs/search/search_l.png b/docs/generated/docs/search/search_l.png similarity index 100% rename from docs/search/search_l.png rename to docs/generated/docs/search/search_l.png diff --git a/docs/search/search_m.png b/docs/generated/docs/search/search_m.png similarity index 100% rename from docs/search/search_m.png rename to docs/generated/docs/search/search_m.png diff --git a/docs/search/search_r.png b/docs/generated/docs/search/search_r.png similarity index 100% rename from docs/search/search_r.png rename to docs/generated/docs/search/search_r.png diff --git a/docs/generated/docs/search/searchdata.js b/docs/generated/docs/search/searchdata.js new file mode 100644 index 000000000..7bd2453d7 --- /dev/null +++ b/docs/generated/docs/search/searchdata.js @@ -0,0 +1,42 @@ +var indexSectionsWithContent = +{ + 0: "abcdefghijklmnoprstuvw~", + 1: "abcdefghilmnoprstuvw", + 2: "abcdefghijlmnostuvw", + 3: "abcdefghilmnoprstuvw~", + 4: "abcdefghiklmnoprstuvw", + 5: "abinosuv", + 6: "abcgios", + 7: "abcdefghilmnprstuw", + 8: "hos", + 9: "ehlmuw" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "files", + 3: "functions", + 4: "variables", + 5: "typedefs", + 6: "enums", + 7: "enumvalues", + 8: "related", + 9: "defines" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Classes", + 2: "Files", + 3: "Functions", + 4: "Variables", + 5: "Typedefs", + 6: "Enumerations", + 7: "Enumerator", + 8: "Friends", + 9: "Macros" +}; + diff --git a/docs/search/typedefs_0.html b/docs/generated/docs/search/typedefs_0.html similarity index 84% rename from docs/search/typedefs_0.html rename to docs/generated/docs/search/typedefs_0.html index 3848b20e9..b66f0a7b9 100644 --- a/docs/search/typedefs_0.html +++ b/docs/generated/docs/search/typedefs_0.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/typedefs_0.js b/docs/generated/docs/search/typedefs_0.js new file mode 100644 index 000000000..91348ccfe --- /dev/null +++ b/docs/generated/docs/search/typedefs_0.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['ads1015_1052',['ADS1015',['../ads1x15_8h.html#a6f6b131100a4dd4ca22e4152b2180db8',1,'ads1x15.h']]], + ['ads1015value_1053',['ADS1015value',['../ads1x15_8h.html#ac815741ef15e8fd16c37e7ceebe61b04',1,'ADS1015value(): ads1x15.h'],['../ads1x15_8h.html#a56503424baf16a9e1fe8bca2f21e26d2',1,'ADS1015Value(): ads1x15.h']]], + ['ads1115_1054',['ADS1115',['../ads1x15_8h.html#aff5c694cee53802680653a7a64ea1910',1,'ads1x15.h']]], + ['ads1115value_1055',['ADS1115value',['../ads1x15_8h.html#aef84aad5457f448a1e9c488503ff60f3',1,'ADS1115value(): ads1x15.h'],['../ads1x15_8h.html#ae1571805b29318a59c364332d228f319',1,'ADS1115Value(): ads1x15.h']]] +]; diff --git a/docs/search/typedefs_1.html b/docs/generated/docs/search/typedefs_1.html similarity index 84% rename from docs/search/typedefs_1.html rename to docs/generated/docs/search/typedefs_1.html index c8a026857..bca8d766e 100644 --- a/docs/search/typedefs_1.html +++ b/docs/generated/docs/search/typedefs_1.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/typedefs_1.js b/docs/generated/docs/search/typedefs_1.js new file mode 100644 index 000000000..ae6ad0c64 --- /dev/null +++ b/docs/generated/docs/search/typedefs_1.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['bme280value_1056',['BME280value',['../bme280_8h.html#af37089b3d8f44826d66821c4a89498bc',1,'bme280.h']]], + ['bmp280value_1057',['BMP280value',['../bmp280_8h.html#adc2b0c1f8c770323d86e72b706958989',1,'bmp280.h']]], + ['booleanconsumer_1058',['BooleanConsumer',['../valueconsumer_8h.html#abea8a189967941972b3e7c5a329c4963',1,'valueconsumer.h']]], + ['booleanproducer_1059',['BooleanProducer',['../valueproducer_8h.html#a79edc4b65652f6948d690891bb6d7e0c',1,'valueproducer.h']]], + ['booleantransform_1060',['BooleanTransform',['../transform_8h.html#ac1617ff234bef4e8a50341c1d6943246',1,'transform.h']]] +]; diff --git a/docs/search/typedefs_2.html b/docs/generated/docs/search/typedefs_2.html similarity index 84% rename from docs/search/typedefs_2.html rename to docs/generated/docs/search/typedefs_2.html index 86a91955e..97e5f1d45 100644 --- a/docs/search/typedefs_2.html +++ b/docs/generated/docs/search/typedefs_2.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/typedefs_2.js b/docs/generated/docs/search/typedefs_2.js new file mode 100644 index 000000000..eacfc4c8c --- /dev/null +++ b/docs/generated/docs/search/typedefs_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['ina219value_1061',['INA219value',['../ina219_8h.html#aab1b0e7a44b1751e455f2f0716da1794',1,'ina219.h']]], + ['integerconsumer_1062',['IntegerConsumer',['../valueconsumer_8h.html#a45a844f7269f830a1f708f965627248c',1,'valueconsumer.h']]], + ['integerproducer_1063',['IntegerProducer',['../valueproducer_8h.html#ab74ca4be7de22a21f73128ea38a4cbbb',1,'valueproducer.h']]], + ['integertransform_1064',['IntegerTransform',['../transform_8h.html#ae9c0b5d70ecdf35d4bd3a0a4bd4e0d17',1,'transform.h']]] +]; diff --git a/docs/search/typedefs_3.html b/docs/generated/docs/search/typedefs_3.html similarity index 84% rename from docs/search/typedefs_3.html rename to docs/generated/docs/search/typedefs_3.html index 2f8138845..4739f7fce 100644 --- a/docs/search/typedefs_3.html +++ b/docs/generated/docs/search/typedefs_3.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/typedefs_3.js b/docs/generated/docs/search/typedefs_3.js new file mode 100644 index 000000000..f39e1f6cb --- /dev/null +++ b/docs/generated/docs/search/typedefs_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['numericconsumer_1065',['NumericConsumer',['../valueconsumer_8h.html#a1220e1ddede7c4512fde395262841b74',1,'valueconsumer.h']]], + ['numericproducer_1066',['NumericProducer',['../valueproducer_8h.html#aaf22f94e9cc9067637cd0625ad9fe352',1,'valueproducer.h']]], + ['numerictransform_1067',['NumericTransform',['../transform_8h.html#ac62af394caec478e4d32c254c96af25b',1,'transform.h']]] +]; diff --git a/docs/search/typedefs_4.html b/docs/generated/docs/search/typedefs_4.html similarity index 84% rename from docs/search/typedefs_4.html rename to docs/generated/docs/search/typedefs_4.html index ac1372ac9..081d5e96b 100644 --- a/docs/search/typedefs_4.html +++ b/docs/generated/docs/search/typedefs_4.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/typedefs_4.js b/docs/generated/docs/search/typedefs_4.js new file mode 100644 index 000000000..e12546e37 --- /dev/null +++ b/docs/generated/docs/search/typedefs_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['owdevaddr_1068',['OWDevAddr',['../onewire__temperature_8h.html#aaada9c625aab143feda6189e26144775',1,'onewire_temperature.h']]] +]; diff --git a/docs/search/typedefs_5.html b/docs/generated/docs/search/typedefs_5.html similarity index 84% rename from docs/search/typedefs_5.html rename to docs/generated/docs/search/typedefs_5.html index 77b3890cd..9a195778c 100644 --- a/docs/search/typedefs_5.html +++ b/docs/generated/docs/search/typedefs_5.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/typedefs_5.js b/docs/generated/docs/search/typedefs_5.js new file mode 100644 index 000000000..dc874fc55 --- /dev/null +++ b/docs/generated/docs/search/typedefs_5.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['sht31value_1069',['SHT31value',['../sht31_8h.html#a4c30892c341612f9799ac178cf78112d',1,'sht31.h']]], + ['skboollistener_1070',['SKBoolListener',['../signalk__value__listener_8h.html#a8f575605d1ef3b54dda1b6c42176ea58',1,'signalk_value_listener.h']]], + ['skintlistener_1071',['SKIntListener',['../signalk__value__listener_8h.html#adf04f595b2363166ad957fdf9ce49df8',1,'signalk_value_listener.h']]], + ['sknumericlistener_1072',['SKNumericListener',['../signalk__value__listener_8h.html#a75e67b33609f9d94e37f31d5b8d28323',1,'signalk_value_listener.h']]], + ['skoutputbool_1073',['SKOutputBool',['../signalk__output_8h.html#a1a26c344db2dff33a77cf620aafa6c0c',1,'signalk_output.h']]], + ['skoutputint_1074',['SKOutputInt',['../signalk__output_8h.html#a2a0e216e5ada5e31f7a6d995d2c52642',1,'signalk_output.h']]], + ['skoutputnumber_1075',['SKOutputNumber',['../signalk__output_8h.html#a6c84656f504f6de21c63c1d54d6f39e1',1,'signalk_output.h']]], + ['skoutputposition_1076',['SKOutputPosition',['../signalk__position_8h.html#af7b68a40dd9aa2220abb8e1bd8998455',1,'signalk_position.h']]], + ['skoutputstring_1077',['SKOutputString',['../signalk__output_8h.html#a008f63a91ea787950cb6c17e4c031859',1,'signalk_output.h']]], + ['skstringlistener_1078',['SKStringListener',['../signalk__value__listener_8h.html#a754369a24853b40cebe8febff7b43e65',1,'signalk_value_listener.h']]], + ['stringconsumer_1079',['StringConsumer',['../valueconsumer_8h.html#a1d91b84157f6818bb8b8b04caede8a02',1,'valueconsumer.h']]], + ['stringproducer_1080',['StringProducer',['../valueproducer_8h.html#ab845e985974e3ae4c050b8f221337b0d',1,'valueproducer.h']]], + ['stringtransform_1081',['StringTransform',['../transform_8h.html#a463af5c6e30307ac67004d67dd014030',1,'transform.h']]] +]; diff --git a/docs/generated/docs/search/typedefs_6.html b/docs/generated/docs/search/typedefs_6.html new file mode 100644 index 000000000..d8bb86996 --- /dev/null +++ b/docs/generated/docs/search/typedefs_6.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/typedefs_6.js b/docs/generated/docs/search/typedefs_6.js new file mode 100644 index 000000000..9a68bea0c --- /dev/null +++ b/docs/generated/docs/search/typedefs_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ultrasonicsens_1082',['UltrasonicSens',['../ultrasonic__distance_8h.html#a338eb3dc4d54d3371114ad3304ffab4f',1,'ultrasonic_distance.h']]] +]; diff --git a/docs/generated/docs/search/typedefs_7.html b/docs/generated/docs/search/typedefs_7.html new file mode 100644 index 000000000..f21d37c05 --- /dev/null +++ b/docs/generated/docs/search/typedefs_7.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/typedefs_7.js b/docs/generated/docs/search/typedefs_7.js new file mode 100644 index 000000000..011c27937 --- /dev/null +++ b/docs/generated/docs/search/typedefs_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['void_5fcb_5ffunc_1083',['void_cb_func',['../sensesp_8h.html#abb3668fa85a914138ab7c0c4329681ec',1,'sensesp.h']]] +]; diff --git a/docs/search/variables_0.html b/docs/generated/docs/search/variables_0.html similarity index 84% rename from docs/search/variables_0.html rename to docs/generated/docs/search/variables_0.html index 12104bcb5..2edd1114b 100644 --- a/docs/search/variables_0.html +++ b/docs/generated/docs/search/variables_0.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_0.js b/docs/generated/docs/search/variables_0.js new file mode 100644 index 000000000..8cd06f343 --- /dev/null +++ b/docs/generated/docs/search/variables_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['adafruit_5fbme280_971',['adafruit_bme280',['../class_b_m_e280.html#ac977ead8ac47915501544b240fee22fc',1,'BME280']]], + ['adafruit_5fbmp280_972',['adafruit_bmp280',['../class_b_m_p280.html#ac3e52141522ed5f9d96f184c55e31a99',1,'BMP280']]], + ['adafruit_5fsht31_973',['adafruit_sht31',['../class_s_h_t31.html#ada57336159f2495b9a3ab318818e16aa',1,'SHT31']]], + ['ads_974',['ads',['../class_a_d_s1x15.html#ace2a95dc18d4c043c4c4122a5508c576',1,'ADS1x15']]], + ['altitude_975',['altitude',['../struct_position.html#add1df8470102854f3950fc9dd2fee06d',1,'Position']]], + ['app_976',['app',['../sensesp_8h.html#aaa2ffd80e6f851dc6bb43c95a2c7d26f',1,'sensesp.h']]] +]; diff --git a/docs/search/variables_1.html b/docs/generated/docs/search/variables_1.html similarity index 84% rename from docs/search/variables_1.html rename to docs/generated/docs/search/variables_1.html index b784017a1..98b95a99c 100644 --- a/docs/search/variables_1.html +++ b/docs/generated/docs/search/variables_1.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_1.js b/docs/generated/docs/search/variables_1.js new file mode 100644 index 000000000..4263e473d --- /dev/null +++ b/docs/generated/docs/search/variables_1.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['baseline_5fcourse_977',['baseline_course',['../struct_n_m_e_a_data.html#ad752076d48c74317d72a26643fef7fef',1,'NMEAData']]], + ['baseline_5flength_978',['baseline_length',['../struct_n_m_e_a_data.html#a96cce54518c05c611d50c159ea5122d6',1,'NMEAData']]], + ['baseline_5fprojection_979',['baseline_projection',['../struct_n_m_e_a_data.html#a3ae9e3d23c088e1c435acf4c232d6a5c',1,'NMEAData']]], + ['bme280_980',['bme280',['../class_b_m_e280_value.html#a333a82519078ad9ec9b3d5828b42bc2b',1,'BME280Value']]], + ['bmp280_981',['bmp280',['../class_b_m_p280_value.html#a93dfd7d1bb90299ba31505749b482aae',1,'BMP280Value']]] +]; diff --git a/docs/search/variables_10.html b/docs/generated/docs/search/variables_10.html similarity index 84% rename from docs/search/variables_10.html rename to docs/generated/docs/search/variables_10.html index 308afd51e..61d3e5c43 100644 --- a/docs/search/variables_10.html +++ b/docs/generated/docs/search/variables_10.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_10.js b/docs/generated/docs/search/variables_10.js new file mode 100644 index 000000000..84202de42 --- /dev/null +++ b/docs/generated/docs/search/variables_10.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['sensesp_5fapp_1036',['sensesp_app',['../sensesp__app_8cpp.html#a9b53af60ecde971876d66994134fbfff',1,'sensesp_app(): sensesp_app.cpp'],['../sensesp__app_8h.html#a9b53af60ecde971876d66994134fbfff',1,'sensesp_app(): sensesp_app.cpp']]], + ['sensor_5ffxos_5ffxas_1037',['sensor_fxos_fxas',['../orientation__9dof__input_8cpp.html#a98d89d1a44b4415ca4d8ae0c8ce74ee6',1,'orientation_9dof_input.cpp']]], + ['sensors_1038',['sensors',['../class_dallas_temperature_sensors.html#abd79995496fd66d416e6d9cd1ff56342',1,'DallasTemperatureSensors']]], + ['should_5fsave_5fconfig_1039',['should_save_config',['../networking_8cpp.html#ade4bb65788e7b6ea2d2e3e026baf7310',1,'networking.cpp']]], + ['sht31_1040',['sht31',['../class_s_h_t31_value.html#af5cb2bc533abf1fb620473d581dab56a',1,'SHT31Value']]], + ['sk_5fdelta_1041',['sk_delta',['../sensesp__app_8cpp.html#a34899f6b1a4ca06784bcbc532d96b286',1,'sensesp_app.cpp']]], + ['sk_5fpath_1042',['sk_path',['../class_s_k_emitter.html#a06dbe70e930074437b12b86ac4e2464c',1,'SKEmitter::sk_path()'],['../class_s_k_listener.html#aea949b68b41530f13cf565a0398880f5',1,'SKListener::sk_path()']]], + ['skips_1043',['skips',['../class_change_filter.html#ae51076f79fdfc36e34b8383a0e13e700',1,'ChangeFilter']]], + ['speed_1044',['speed',['../struct_n_m_e_a_data.html#afe6efa0ec62ce332673ab98b282990c8',1,'NMEAData']]] +]; diff --git a/docs/search/variables_11.html b/docs/generated/docs/search/variables_11.html similarity index 84% rename from docs/search/variables_11.html rename to docs/generated/docs/search/variables_11.html index c27682770..459b71db0 100644 --- a/docs/search/variables_11.html +++ b/docs/generated/docs/search/variables_11.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_11.js b/docs/generated/docs/search/variables_11.js new file mode 100644 index 000000000..9d20bb1a5 --- /dev/null +++ b/docs/generated/docs/search/variables_11.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['true_5fcourse_1045',['true_course',['../struct_n_m_e_a_data.html#a91263e0aa16f47a7535d8d4a09b2ffca',1,'NMEAData']]] +]; diff --git a/docs/search/variables_12.html b/docs/generated/docs/search/variables_12.html similarity index 84% rename from docs/search/variables_12.html rename to docs/generated/docs/search/variables_12.html index bad4c794f..18778ecf8 100644 --- a/docs/search/variables_12.html +++ b/docs/generated/docs/search/variables_12.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_12.js b/docs/generated/docs/search/variables_12.js new file mode 100644 index 000000000..d3ea228b8 --- /dev/null +++ b/docs/generated/docs/search/variables_12.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['up_1046',['up',['../struct_e_n_u_vector.html#ac4254f925ae071868c7961a006cdf768',1,'ENUVector']]] +]; diff --git a/docs/generated/docs/search/variables_13.html b/docs/generated/docs/search/variables_13.html new file mode 100644 index 000000000..9591b855b --- /dev/null +++ b/docs/generated/docs/search/variables_13.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/variables_13.js b/docs/generated/docs/search/variables_13.js new file mode 100644 index 000000000..a8499413d --- /dev/null +++ b/docs/generated/docs/search/variables_13.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['variation_1047',['variation',['../struct_n_m_e_a_data.html#ab5b508669ea5109f812b28cdba65c402',1,'NMEAData']]], + ['vin_1048',['Vin',['../class_voltage_divider_r1.html#a0431451b00c45c89d3ac5bf4fec692c3',1,'VoltageDividerR1::Vin()'],['../class_voltage_divider_r2.html#a482239a7e4031b16091886109efd2296',1,'VoltageDividerR2::Vin()']]] +]; diff --git a/docs/generated/docs/search/variables_14.html b/docs/generated/docs/search/variables_14.html new file mode 100644 index 000000000..2a4fe113a --- /dev/null +++ b/docs/generated/docs/search/variables_14.html @@ -0,0 +1,36 @@ + + + + + + + + + +
          +
          Loading...
          +
          + +
          Searching...
          +
          No Matches
          + +
          + + diff --git a/docs/generated/docs/search/variables_14.js b/docs/generated/docs/search/variables_14.js new file mode 100644 index 000000000..cd487da43 --- /dev/null +++ b/docs/generated/docs/search/variables_14.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['ws_5fclient_1049',['ws_client',['../ws__client_8cpp.html#a4d8d7cfce2bd21646b059e9aa4d0349b',1,'ws_client(): ws_client.cpp'],['../sensesp__app_8cpp.html#aeb920b4c25bb4d9442ce03911e40d074',1,'ws_client(): sensesp_app.cpp']]], + ['ws_5fconnected_5fcb_1050',['ws_connected_cb',['../sensesp__app_8cpp.html#a16ab74864a3ce810c06ceed3810a8245',1,'sensesp_app.cpp']]], + ['ws_5fdelta_5fcb_1051',['ws_delta_cb',['../sensesp__app_8cpp.html#a76c1c042dbf7ae6cd2b10d537dfd789c',1,'sensesp_app.cpp']]] +]; diff --git a/docs/search/variables_2.html b/docs/generated/docs/search/variables_2.html similarity index 84% rename from docs/search/variables_2.html rename to docs/generated/docs/search/variables_2.html index 0cb98d305..3e0c5910a 100644 --- a/docs/search/variables_2.html +++ b/docs/generated/docs/search/variables_2.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_2.js b/docs/generated/docs/search/variables_2.js new file mode 100644 index 000000000..8f64cc823 --- /dev/null +++ b/docs/generated/docs/search/variables_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['chip_982',['chip',['../class_a_d_s1x15_voltage.html#a48d2d14becbbe8147a166cf9ac24adbb',1,'ADS1x15Voltage']]], + ['config_5fpath_983',['config_path',['../class_configurable.html#aaa54fa6156d9c7f5848d670bd9b18aa9',1,'Configurable']]], + ['configurables_984',['configurables',['../configurable_8cpp.html#a19ac563e52fea3af6b643155f9d258b6',1,'configurables(): configurable.cpp'],['../configurable_8h.html#a19ac563e52fea3af6b643155f9d258b6',1,'configurables(): configurable.cpp']]] +]; diff --git a/docs/search/variables_3.html b/docs/generated/docs/search/variables_3.html similarity index 84% rename from docs/search/variables_3.html rename to docs/generated/docs/search/variables_3.html index 1e83bf5a9..7867da332 100644 --- a/docs/search/variables_3.html +++ b/docs/generated/docs/search/variables_3.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_3.js b/docs/generated/docs/search/variables_3.js new file mode 100644 index 000000000..2845b214c --- /dev/null +++ b/docs/generated/docs/search/variables_3.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['datetime_985',['datetime',['../struct_n_m_e_a_data.html#aae3cb7b0e14cc41ad1c271b9afaae27d',1,'NMEAData']]], + ['debug_986',['Debug',['../sensesp_8h.html#a5ae2f374710d648c2027c78237f5df01',1,'Debug(): sensesp_app.cpp'],['../sensesp__app_8cpp.html#a5ae2f374710d648c2027c78237f5df01',1,'Debug(): sensesp_app.cpp']]], + ['description_987',['description',['../struct_param_info.html#a4cc8fb2021184f5b228e6307f3507a38',1,'ParamInfo']]], + ['dgps_5fage_988',['dgps_age',['../struct_n_m_e_a_data.html#af61e9824ffaf9b43c1a95d8d7a93bc10',1,'NMEAData']]], + ['dgps_5fid_989',['dgps_id',['../struct_n_m_e_a_data.html#a99328058cfe4cf26b5025511d64ce576',1,'NMEAData']]] +]; diff --git a/docs/search/variables_4.html b/docs/generated/docs/search/variables_4.html similarity index 84% rename from docs/search/variables_4.html rename to docs/generated/docs/search/variables_4.html index 39883bd60..732dee2e2 100644 --- a/docs/search/variables_4.html +++ b/docs/generated/docs/search/variables_4.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_4.js b/docs/generated/docs/search/variables_4.js new file mode 100644 index 000000000..7a20767da --- /dev/null +++ b/docs/generated/docs/search/variables_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['east_990',['east',['../struct_e_n_u_vector.html#affaf84db367ff8259448116fe4c75370',1,'ENUVector']]], + ['enu_5fvelocity_991',['enu_velocity',['../struct_n_m_e_a_data.html#a1b62fa2b8b0b62d9cef48f7576e0da30',1,'NMEAData']]] +]; diff --git a/docs/search/variables_5.html b/docs/generated/docs/search/variables_5.html similarity index 84% rename from docs/search/variables_5.html rename to docs/generated/docs/search/variables_5.html index f25879c02..ad9b54563 100644 --- a/docs/search/variables_5.html +++ b/docs/generated/docs/search/variables_5.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_5.js b/docs/generated/docs/search/variables_5.js new file mode 100644 index 000000000..aca05db90 --- /dev/null +++ b/docs/generated/docs/search/variables_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['filter_992',['filter',['../sensor__nxp__fxos8700__fxas21002_8cpp.html#a95a042ebf2273805da333239d975ecae',1,'sensor_nxp_fxos8700_fxas21002.cpp']]], + ['fxas_993',['fxas',['../sensor__nxp__fxos8700__fxas21002_8cpp.html#a4b1ab4b048fbbcd75a1e22958393fb95',1,'sensor_nxp_fxos8700_fxas21002.cpp']]], + ['fxos_994',['fxos',['../sensor__nxp__fxos8700__fxas21002_8cpp.html#a3aa61c72e9dcb6f6313835817ba9d134',1,'sensor_nxp_fxos8700_fxas21002.cpp']]] +]; diff --git a/docs/search/variables_6.html b/docs/generated/docs/search/variables_6.html similarity index 84% rename from docs/search/variables_6.html rename to docs/generated/docs/search/variables_6.html index 0fcd6c2f8..1cf2da195 100644 --- a/docs/search/variables_6.html +++ b/docs/generated/docs/search/variables_6.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_6.js b/docs/generated/docs/search/variables_6.js new file mode 100644 index 000000000..67706c05d --- /dev/null +++ b/docs/generated/docs/search/variables_6.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['gain_995',['gain',['../class_a_d_s1x15_voltage.html#a240ceea4ec8b5c29d26a3d856ae73690',1,'ADS1x15Voltage']]], + ['geoidal_5fseparation_996',['geoidal_separation',['../struct_n_m_e_a_data.html#a3acdff78f354082419d01ebfe8846f7f',1,'NMEAData']]], + ['gnss_5fquality_997',['gnss_quality',['../struct_n_m_e_a_data.html#a8048e071ffb9f37ff425305525f2223a',1,'NMEAData']]], + ['gnssqualitystrings_998',['gnssQualityStrings',['../nmea__parser_8cpp.html#a78e0374f91eaf4035ec29121f7e40064',1,'nmea_parser.cpp']]] +]; diff --git a/docs/search/variables_7.html b/docs/generated/docs/search/variables_7.html similarity index 84% rename from docs/search/variables_7.html rename to docs/generated/docs/search/variables_7.html index ad2fa37a5..ab2db0b89 100644 --- a/docs/search/variables_7.html +++ b/docs/generated/docs/search/variables_7.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_7.js b/docs/generated/docs/search/variables_7.js new file mode 100644 index 000000000..fb23b48a1 --- /dev/null +++ b/docs/generated/docs/search/variables_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['horizontal_5fdilution_999',['horizontal_dilution',['../struct_n_m_e_a_data.html#aa6d1ee7ee222393032e1f57cde891b31',1,'NMEAData']]], + ['hostname_1000',['hostname',['../sensesp__app_8cpp.html#ad73d4df2ce4b897a6f527dcc95adde4c',1,'sensesp_app.cpp']]], + ['http_5fserver_1001',['http_server',['../sensesp__app_8cpp.html#ac8b4b8d72f01d6be9d8b054526139b5b',1,'sensesp_app.cpp']]], + ['hysteresis_5fparam_5finfo_1002',['hysteresis_param_info',['../hysteresis_8h.html#a7e7f7cc8e64ad4edaf12f0937589db19',1,'hysteresis.h']]] +]; diff --git a/docs/search/variables_8.html b/docs/generated/docs/search/variables_8.html similarity index 84% rename from docs/search/variables_8.html rename to docs/generated/docs/search/variables_8.html index 23887d77b..baec040fc 100644 --- a/docs/search/variables_8.html +++ b/docs/generated/docs/search/variables_8.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_8.js b/docs/generated/docs/search/variables_8.js new file mode 100644 index 000000000..6bf656cb2 --- /dev/null +++ b/docs/generated/docs/search/variables_8.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['in_5frange_1003',['in_range',['../class_threshold_transform.html#a874992f571166f58cd7ef73856d30509',1,'ThresholdTransform']]], + ['ina219_1004',['ina219',['../class_i_n_a219.html#a3bdfe18ddb1ca53b53f48ac8672a94d0',1,'INA219::ina219()'],['../class_i_n_a219_value.html#afbc6bf7ce37f6c243d0f944bfa9cfef3',1,'INA219Value::ina219()']]], + ['input_1005',['input',['../class_curve_interpolator_1_1_sample.html#a43dd7cc1fd950a03a6674056194e935b',1,'CurveInterpolator::Sample']]], + ['input_5fbuffer_5flength_1006',['INPUT_BUFFER_LENGTH',['../nmea__parser_8h.html#a6088978b66925a9ff44bbdf302f00726',1,'nmea_parser.h']]], + ['interrupt_5ftype_1007',['interrupt_type',['../class_digital_input.html#aa4e30fc0836ce2d0934b9eb5d507f116',1,'DigitalInput']]] +]; diff --git a/docs/search/variables_9.html b/docs/generated/docs/search/variables_9.html similarity index 84% rename from docs/search/variables_9.html rename to docs/generated/docs/search/variables_9.html index f44664990..df2fea0f9 100644 --- a/docs/search/variables_9.html +++ b/docs/generated/docs/search/variables_9.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_9.js b/docs/generated/docs/search/variables_9.js new file mode 100644 index 000000000..7c9cba483 --- /dev/null +++ b/docs/generated/docs/search/variables_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['key_1008',['key',['../struct_param_info.html#a92b4878247486f15fdecf4fc1b6be4e3',1,'ParamInfo']]] +]; diff --git a/docs/search/variables_a.html b/docs/generated/docs/search/variables_a.html similarity index 84% rename from docs/search/variables_a.html rename to docs/generated/docs/search/variables_a.html index 59633b357..c7491ab89 100644 --- a/docs/search/variables_a.html +++ b/docs/generated/docs/search/variables_a.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_a.js b/docs/generated/docs/search/variables_a.js new file mode 100644 index 000000000..feff94f97 --- /dev/null +++ b/docs/generated/docs/search/variables_a.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['last_5ftime_1009',['last_time',['../class_debounce.html#a9d6da3eb69ba8fe8ef73a564cfad2e21',1,'Debounce']]], + ['latitude_1010',['latitude',['../struct_position.html#ac6606384ff43b39b8614dd3b590d6b36',1,'Position']]], + ['led_5fblinker_1011',['led_blinker',['../sensesp__app_8cpp.html#a1221597f95eb6877af3f88a79e735aa7',1,'sensesp_app.cpp']]], + ['longitude_1012',['longitude',['../struct_position.html#a76a87a4287c53ae7e53eba716e740c12',1,'Position']]] +]; diff --git a/docs/search/variables_b.html b/docs/generated/docs/search/variables_b.html similarity index 84% rename from docs/search/variables_b.html rename to docs/generated/docs/search/variables_b.html index 17216090f..371f07a2c 100644 --- a/docs/search/variables_b.html +++ b/docs/generated/docs/search/variables_b.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_b.js b/docs/generated/docs/search/variables_b.js new file mode 100644 index 000000000..6d447de58 --- /dev/null +++ b/docs/generated/docs/search/variables_b.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['max31856_1013',['max31856',['../class_m_a_x31856_thermocouple.html#ab5bf3c1660f17374bcb02f65b6cd6e94',1,'MAX31856Thermocouple']]], + ['max_5fdelta_1014',['max_delta',['../class_change_filter.html#a95afe5f733a86231157059b272b4295a',1,'ChangeFilter']]], + ['max_5fskips_1015',['max_skips',['../class_change_filter.html#a3cac91e9ec0a56ae72ad4e0e27fef205',1,'ChangeFilter']]], + ['max_5fterms_1016',['MAX_TERMS',['../nmea__parser_8h.html#a6487a496a45b3acfe263589909cfc101',1,'nmea_parser.h']]], + ['max_5fvalue_1017',['max_value',['../class_threshold_transform.html#af5ba3ee8aefbc3c4cd81890e781511f3',1,'ThresholdTransform']]], + ['min_5fdelta_1018',['min_delta',['../class_change_filter.html#af9585e67bbf9636617127ef86f4ada81',1,'ChangeFilter']]], + ['min_5fvalue_1019',['min_value',['../class_threshold_transform.html#aa38bf7e3031c7946e5b0bf6b0d9ccd7e',1,'ThresholdTransform']]], + ['ms_5fmin_5fdelay_1020',['ms_min_delay',['../class_debounce.html#a446259f6501c61e5188dda23f420dbfe',1,'Debounce']]] +]; diff --git a/docs/search/variables_c.html b/docs/generated/docs/search/variables_c.html similarity index 84% rename from docs/search/variables_c.html rename to docs/generated/docs/search/variables_c.html index 78e211ac1..c89b8de98 100644 --- a/docs/search/variables_c.html +++ b/docs/generated/docs/search/variables_c.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_c.js b/docs/generated/docs/search/variables_c.js new file mode 100644 index 000000000..95afd8108 --- /dev/null +++ b/docs/generated/docs/search/variables_c.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['networking_1021',['networking',['../sensesp__app_8cpp.html#a21904bc00717232c9d580c83d004b2d9',1,'sensesp_app.cpp']]], + ['nmea_5fdata_1022',['nmea_data',['../class_g_p_s_input.html#ae31d915c7701418b950dcbba4f87f72a',1,'GPSInput::nmea_data()'],['../class_sentence_parser.html#a77a87f5f20ac471591d2110856e8232b',1,'SentenceParser::nmea_data()']]], + ['north_1023',['north',['../struct_e_n_u_vector.html#a4cf8b3abdd2edd2f9a463fc6394dbb50',1,'ENUVector']]], + ['null_5fow_5faddr_1024',['null_ow_addr',['../onewire__temperature_8cpp.html#af247f8ddcd26451c72c7706fc884a6dc',1,'onewire_temperature.cpp']]], + ['num_5fsatellites_1025',['num_satellites',['../struct_n_m_e_a_data.html#ac5e91779da683f23c11da42c1db41b60',1,'NMEAData']]] +]; diff --git a/docs/search/variables_d.html b/docs/generated/docs/search/variables_d.html similarity index 84% rename from docs/search/variables_d.html rename to docs/generated/docs/search/variables_d.html index bd27a70be..a73000dcb 100644 --- a/docs/search/variables_d.html +++ b/docs/generated/docs/search/variables_d.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_d.js b/docs/generated/docs/search/variables_d.js new file mode 100644 index 000000000..001294108 --- /dev/null +++ b/docs/generated/docs/search/variables_d.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['orientation_5f9dof_1026',['orientation_9dof',['../class_read9_d_o_f.html#a15c1bf2b7dc82f06a72d259f0d804977',1,'Read9DOF']]], + ['out_5frange_1027',['out_range',['../class_threshold_transform.html#af5e848363d0046d8688c2f7da432aac9',1,'ThresholdTransform']]], + ['output_1028',['output',['../class_value_producer.html#a9d3882f6de7ef8b05e78947cf9df2697',1,'ValueProducer::output()'],['../class_curve_interpolator_1_1_sample.html#ada14a8de02c7cc737db52aa3a54a330b',1,'CurveInterpolator::Sample::output()']]] +]; diff --git a/docs/search/variables_e.html b/docs/generated/docs/search/variables_e.html similarity index 84% rename from docs/search/variables_e.html rename to docs/generated/docs/search/variables_e.html index f2130e01b..50f6bea9a 100644 --- a/docs/search/variables_e.html +++ b/docs/generated/docs/search/variables_e.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_e.js b/docs/generated/docs/search/variables_e.js new file mode 100644 index 000000000..61f7a2177 --- /dev/null +++ b/docs/generated/docs/search/variables_e.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['pin_1029',['pin',['../class_digital_input.html#a92b46ff35c6b0fcf13644727c0a6b61f',1,'DigitalInput']]], + ['position_1030',['position',['../struct_n_m_e_a_data.html#a249d831d604857b04284d4c33719005e',1,'NMEAData']]], + ['progmem_1031',['PROGMEM',['../index_8h.html#a9e09bea0eddc6841460f6654d2ba1a5f',1,'PROGMEM(): index.h'],['../js__jsoneditor_8h.html#a53fb277b2065a969013a1bc4b071abd1',1,'PROGMEM(): js_jsoneditor.h'],['../js__sensesp_8h.html#a8de262bdd3fe0e74c591a5174112011f',1,'PROGMEM(): js_sensesp.h'],['../setup_8h.html#a183306764a8509f2c9635a13289ea64f',1,'PROGMEM(): setup.h']]] +]; diff --git a/docs/search/variables_f.html b/docs/generated/docs/search/variables_f.html similarity index 84% rename from docs/search/variables_f.html rename to docs/generated/docs/search/variables_f.html index d66069769..cabd42aa2 100644 --- a/docs/search/variables_f.html +++ b/docs/generated/docs/search/variables_f.html @@ -1,7 +1,7 @@ - + @@ -23,6 +23,12 @@ document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/docs/generated/docs/search/variables_f.js b/docs/generated/docs/search/variables_f.js new file mode 100644 index 000000000..a2e17d274 --- /dev/null +++ b/docs/generated/docs/search/variables_f.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['r1_1032',['R1',['../class_voltage_divider_r2.html#a927b6c4d26bc24dfd326f63a0a127f66',1,'VoltageDividerR2']]], + ['r2_1033',['R2',['../class_voltage_divider_r1.html#ad00c68d3e756cdb88d099ac0c0eadd1e',1,'VoltageDividerR1']]], + ['rtk_5fage_1034',['rtk_age',['../struct_n_m_e_a_data.html#a5271f014cd9d9b7ebcfa64d772006044',1,'NMEAData']]], + ['rtk_5fratio_1035',['rtk_ratio',['../struct_n_m_e_a_data.html#a590b94e1133efeaa9a05456da0dab2dd',1,'NMEAData']]] +]; diff --git a/docs/generated/docs/sensesp_8h.html b/docs/generated/docs/sensesp_8h.html new file mode 100644 index 000000000..8acc11fae --- /dev/null +++ b/docs/generated/docs/sensesp_8h.html @@ -0,0 +1,251 @@ + + + + + + + +SensESP: src/sensesp.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          sensesp.h File Reference
          +
          +
          +
          #include <ReactESP.h>
          +#include <RemoteDebug.h>
          +
          +Include dependency graph for sensesp.h:
          +
          +
          + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Typedefs

          typedef std::function< void()> void_cb_func
           
          + + + + + +

          +Variables

          ReactESP app
           
          RemoteDebug Debug
           
          +

          Typedef Documentation

          + +

          ◆ void_cb_func

          + +
          +
          + + + + +
          typedef std::function<void()> void_cb_func
          +
          + +

          Definition at line 7 of file sensesp.h.

          + +
          +
          +

          Variable Documentation

          + +

          ◆ app

          + +
          +
          + + + + + +
          + + + + +
          ReactESP app
          +
          +extern
          +
          + +
          +
          + +

          ◆ Debug

          + +
          +
          + + + + + +
          + + + + +
          RemoteDebug Debug
          +
          +extern
          +
          + +

          Definition at line 23 of file sensesp_app.cpp.

          + +
          +
          +
          +
          + + + + diff --git a/docs/sensesp_8h.js b/docs/generated/docs/sensesp_8h.js similarity index 100% rename from docs/sensesp_8h.js rename to docs/generated/docs/sensesp_8h.js diff --git a/docs/generated/docs/sensesp_8h__dep__incl.map b/docs/generated/docs/sensesp_8h__dep__incl.map new file mode 100644 index 000000000..2aae6f923 --- /dev/null +++ b/docs/generated/docs/sensesp_8h__dep__incl.map @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/sensesp_8h__dep__incl.md5 b/docs/generated/docs/sensesp_8h__dep__incl.md5 new file mode 100644 index 000000000..f96c93f2e --- /dev/null +++ b/docs/generated/docs/sensesp_8h__dep__incl.md5 @@ -0,0 +1 @@ +826b14286712e624058bf8dc99da7976 \ No newline at end of file diff --git a/docs/generated/docs/sensesp_8h__dep__incl.png b/docs/generated/docs/sensesp_8h__dep__incl.png new file mode 100644 index 000000000..b7f932526 Binary files /dev/null and b/docs/generated/docs/sensesp_8h__dep__incl.png differ diff --git a/docs/sensesp_8h__incl.map b/docs/generated/docs/sensesp_8h__incl.map similarity index 100% rename from docs/sensesp_8h__incl.map rename to docs/generated/docs/sensesp_8h__incl.map diff --git a/docs/generated/docs/sensesp_8h__incl.md5 b/docs/generated/docs/sensesp_8h__incl.md5 new file mode 100644 index 000000000..9ae5f7226 --- /dev/null +++ b/docs/generated/docs/sensesp_8h__incl.md5 @@ -0,0 +1 @@ +c56a03b78d7eade43b3c464ae1f6b02e \ No newline at end of file diff --git a/docs/generated/docs/sensesp_8h__incl.png b/docs/generated/docs/sensesp_8h__incl.png new file mode 100644 index 000000000..30ee770d9 Binary files /dev/null and b/docs/generated/docs/sensesp_8h__incl.png differ diff --git a/docs/generated/docs/sensesp_8h_source.html b/docs/generated/docs/sensesp_8h_source.html new file mode 100644 index 000000000..415a03b64 --- /dev/null +++ b/docs/generated/docs/sensesp_8h_source.html @@ -0,0 +1,118 @@ + + + + + + + +SensESP: src/sensesp.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          sensesp.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _sensesp_H_
          +
          2 #define _sensesp_H_
          +
          3 
          +
          4 #include <ReactESP.h>
          +
          5 #include <RemoteDebug.h>
          +
          6 
          +
          7 typedef std::function<void()> void_cb_func;
          +
          8 
          +
          9 extern ReactESP app;
          +
          10 
          +
          11 #ifndef DEBUG_DISABLED
          +
          12 extern RemoteDebug Debug;
          +
          13 #endif
          +
          14 
          +
          15 #endif
          +
          +
          +
          RemoteDebug Debug
          Definition: sensesp_app.cpp:23
          +
          std::function< void()> void_cb_func
          Definition: sensesp.h:7
          +
          ReactESP app
          + + + + diff --git a/docs/generated/docs/sensesp__app_8cpp.html b/docs/generated/docs/sensesp__app_8cpp.html new file mode 100644 index 000000000..0033c58c0 --- /dev/null +++ b/docs/generated/docs/sensesp__app_8cpp.html @@ -0,0 +1,480 @@ + + + + + + + +SensESP: src/sensesp_app.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          sensesp_app.cpp File Reference
          +
          +
          +
          #include "sensesp_app.h"
          +#include "net/discovery.h"
          +#include "net/networking.h"
          +#include "net/ota.h"
          +#include "sensors/analog_input.h"
          +#include "sensors/digital_input.h"
          +#include "sensors/system_info.h"
          +#include "signalk/signalk_output.h"
          +#include "system/spiffs_storage.h"
          +#include "transforms/difference.h"
          +#include "transforms/frequency.h"
          +#include "transforms/linear.h"
          +#include "transforms/transform.h"
          +
          +Include dependency graph for sensesp_app.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + + + + + +

          +Functions

          void SetupSerialDebug (uint32_t baudrate)
           
           setup_standard_sensors (hostname, sensors)
           
          hostname attach ([hostname, this]() { this->sk_delta->set_hostname(hostname->get());})
           
          + + + + + + + + + + + + + + + + + + + + + +

          +Variables

          RemoteDebug Debug
           
           networking
           
          ObservableValue< String > * hostname = networking->get_hostname()
           
           sk_delta = new SKDelta(hostname->get())
           
           led_blinker
           
          this http_server = new HTTPServer(std::bind(&SensESPApp::reset, this))
           
          auto ws_connected_cb
           
          auto ws_delta_cb = [this]() { this->led_blinker->flip(); }
           
          this ws_client
           
          SensESPAppsensesp_app
           
          +

          Function Documentation

          + +

          ◆ attach()

          + +
          +
          + + + + + + + + +
          hostname attach ([hostname, this] () { this->sk_delta->set_hostname(hostname->get());} )
          +
          +
          +Here is the call graph for this function:
          +
          +
          + + + + + +
          +
          +Here is the caller graph for this function:
          +
          +
          + + + + +
          + +
          +
          + +

          ◆ setup_standard_sensors()

          + +
          +
          + + + + + + + + + + + + + + + + + + +
          setup_standard_sensors (hostname ,
          sensors  
          )
          +
          + +
          +
          + +

          ◆ SetupSerialDebug()

          + +
          +
          + + + + + + + + +
          void SetupSerialDebug (uint32_t baudrate)
          +
          + +

          Definition at line 26 of file sensesp_app.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + +
          + +
          +
          +

          Variable Documentation

          + +

          ◆ Debug

          + +
          +
          + + + + +
          RemoteDebug Debug
          +
          + +

          Definition at line 23 of file sensesp_app.cpp.

          + +
          +
          + +

          ◆ hostname

          + +
          +
          + + + + +
          ObservableValue<String>* hostname = networking->get_hostname()
          +
          + +

          Definition at line 56 of file sensesp_app.cpp.

          + +
          +
          + +

          ◆ http_server

          + +
          +
          + + + + +
          this http_server = new HTTPServer(std::bind(&SensESPApp::reset, this))
          +
          + +

          Definition at line 75 of file sensesp_app.cpp.

          + +
          +
          + +

          ◆ led_blinker

          + +
          +
          + + + + +
          led_blinker
          +
          +Initial value:
          = new LedBlinker(led_pin, led_ws_connected, led_wifi_connected,
          +
          led_offline)
          +
          +

          Definition at line 70 of file sensesp_app.cpp.

          + +
          +
          + +

          ◆ networking

          + +
          +
          + + + + +
          networking
          +
          +Initial value:
          = new Networking("/system/networking", ssid, wifi_password,
          +
          preset_hostname)
          +
          +

          Definition at line 53 of file sensesp_app.cpp.

          + +
          +
          + +

          ◆ sensesp_app

          + +
          +
          + + + + +
          SensESPApp* sensesp_app
          +
          + +

          Definition at line 185 of file sensesp_app.cpp.

          + +
          +
          + +

          ◆ sk_delta

          + +
          +
          + + + + +
          sk_delta = new SKDelta(hostname->get())
          +
          + +

          Definition at line 63 of file sensesp_app.cpp.

          + +
          +
          + +

          ◆ ws_client

          + +
          +
          + + + + +
          this ws_client
          +
          +Initial value:
          = new WSClient("/system/sk", sk_delta, sk_server_address,
          +
          sk_server_port, ws_connected_cb, ws_delta_cb)
          +
          +

          Definition at line 87 of file sensesp_app.cpp.

          + +
          +
          + +

          ◆ ws_connected_cb

          + +
          +
          + + + + +
          auto ws_connected_cb
          +
          +Initial value:
          = [this](bool connected) {
          +
          if (connected) {
          +
          this->led_blinker->set_server_connected();
          +
          } else {
          +
          this->led_blinker->set_server_disconnected();
          +
          }
          +
          }
          +
          +

          Definition at line 79 of file sensesp_app.cpp.

          + +
          +
          + +

          ◆ ws_delta_cb

          + +
          +
          + + + + +
          auto ws_delta_cb = [this]() { this->led_blinker->flip(); }
          +
          + +

          Definition at line 86 of file sensesp_app.cpp.

          + +
          +
          +
          +
          +
          sk_delta
          Definition: sensesp_app.cpp:63
          +
          auto ws_connected_cb
          Definition: sensesp_app.cpp:79
          + +
          @ connected
          Definition: ws_client.h:14
          +
          led_blinker
          Definition: sensesp_app.cpp:70
          + +
          auto ws_delta_cb
          Definition: sensesp_app.cpp:86
          + + + + + diff --git a/docs/generated/docs/sensesp__app_8cpp.js b/docs/generated/docs/sensesp__app_8cpp.js new file mode 100644 index 000000000..82b96899c --- /dev/null +++ b/docs/generated/docs/sensesp__app_8cpp.js @@ -0,0 +1,16 @@ +var sensesp__app_8cpp = +[ + [ "attach", "sensesp__app_8cpp.html#aafcec3d306fa4a9995d6d51e2b179116", null ], + [ "setup_standard_sensors", "sensesp__app_8cpp.html#a7c23c6671a7c574688672c9ba0a0e41d", null ], + [ "SetupSerialDebug", "sensesp__app_8cpp.html#a26cd8b11d153355437b86342648b9d70", null ], + [ "Debug", "sensesp__app_8cpp.html#a5ae2f374710d648c2027c78237f5df01", null ], + [ "hostname", "sensesp__app_8cpp.html#ad73d4df2ce4b897a6f527dcc95adde4c", null ], + [ "http_server", "sensesp__app_8cpp.html#ac8b4b8d72f01d6be9d8b054526139b5b", null ], + [ "led_blinker", "sensesp__app_8cpp.html#a1221597f95eb6877af3f88a79e735aa7", null ], + [ "networking", "sensesp__app_8cpp.html#a21904bc00717232c9d580c83d004b2d9", null ], + [ "sensesp_app", "sensesp__app_8cpp.html#a9b53af60ecde971876d66994134fbfff", null ], + [ "sk_delta", "sensesp__app_8cpp.html#a34899f6b1a4ca06784bcbc532d96b286", null ], + [ "ws_client", "sensesp__app_8cpp.html#aeb920b4c25bb4d9442ce03911e40d074", null ], + [ "ws_connected_cb", "sensesp__app_8cpp.html#a16ab74864a3ce810c06ceed3810a8245", null ], + [ "ws_delta_cb", "sensesp__app_8cpp.html#a76c1c042dbf7ae6cd2b10d537dfd789c", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/sensesp__app_8cpp__incl.map b/docs/generated/docs/sensesp__app_8cpp__incl.map new file mode 100644 index 000000000..4d85e3b08 --- /dev/null +++ b/docs/generated/docs/sensesp__app_8cpp__incl.map @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/sensesp__app_8cpp__incl.md5 b/docs/generated/docs/sensesp__app_8cpp__incl.md5 new file mode 100644 index 000000000..ce7679c38 --- /dev/null +++ b/docs/generated/docs/sensesp__app_8cpp__incl.md5 @@ -0,0 +1 @@ +9d49de96fa4f087364679bc34c180e22 \ No newline at end of file diff --git a/docs/generated/docs/sensesp__app_8cpp__incl.png b/docs/generated/docs/sensesp__app_8cpp__incl.png new file mode 100644 index 000000000..1697cbfb9 Binary files /dev/null and b/docs/generated/docs/sensesp__app_8cpp__incl.png differ diff --git a/docs/generated/docs/sensesp__app_8cpp_a26cd8b11d153355437b86342648b9d70_icgraph.map b/docs/generated/docs/sensesp__app_8cpp_a26cd8b11d153355437b86342648b9d70_icgraph.map new file mode 100644 index 000000000..83cded30f --- /dev/null +++ b/docs/generated/docs/sensesp__app_8cpp_a26cd8b11d153355437b86342648b9d70_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/sensesp__app_8cpp_a26cd8b11d153355437b86342648b9d70_icgraph.md5 b/docs/generated/docs/sensesp__app_8cpp_a26cd8b11d153355437b86342648b9d70_icgraph.md5 new file mode 100644 index 000000000..34c902723 --- /dev/null +++ b/docs/generated/docs/sensesp__app_8cpp_a26cd8b11d153355437b86342648b9d70_icgraph.md5 @@ -0,0 +1 @@ +5c9cc792875fa5e656b198952f140c2e \ No newline at end of file diff --git a/docs/generated/docs/sensesp__app_8cpp_a26cd8b11d153355437b86342648b9d70_icgraph.png b/docs/generated/docs/sensesp__app_8cpp_a26cd8b11d153355437b86342648b9d70_icgraph.png new file mode 100644 index 000000000..67e4538f9 Binary files /dev/null and b/docs/generated/docs/sensesp__app_8cpp_a26cd8b11d153355437b86342648b9d70_icgraph.png differ diff --git a/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_cgraph.map b/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_cgraph.map new file mode 100644 index 000000000..4aed2a325 --- /dev/null +++ b/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_cgraph.md5 b/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_cgraph.md5 new file mode 100644 index 000000000..7a66e6bee --- /dev/null +++ b/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_cgraph.md5 @@ -0,0 +1 @@ +91045d977fe1d436de0bfbbaa6d574c4 \ No newline at end of file diff --git a/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_cgraph.png b/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_cgraph.png new file mode 100644 index 000000000..a76f9ccf7 Binary files /dev/null and b/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_cgraph.png differ diff --git a/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_icgraph.map b/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_icgraph.map new file mode 100644 index 000000000..fdafc2139 --- /dev/null +++ b/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_icgraph.md5 b/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_icgraph.md5 new file mode 100644 index 000000000..662ea16b6 --- /dev/null +++ b/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_icgraph.md5 @@ -0,0 +1 @@ +e3da2bca901a77e54a97afab4d7468ee \ No newline at end of file diff --git a/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_icgraph.png b/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_icgraph.png new file mode 100644 index 000000000..32ac0b4d3 Binary files /dev/null and b/docs/generated/docs/sensesp__app_8cpp_aafcec3d306fa4a9995d6d51e2b179116_icgraph.png differ diff --git a/docs/generated/docs/sensesp__app_8cpp_source.html b/docs/generated/docs/sensesp__app_8cpp_source.html new file mode 100644 index 000000000..72f07fd8c --- /dev/null +++ b/docs/generated/docs/sensesp__app_8cpp_source.html @@ -0,0 +1,346 @@ + + + + + + + +SensESP: src/sensesp_app.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          sensesp_app.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "sensesp_app.h"
          +
          2 
          +
          3 #ifdef ESP8266
          +
          4 #include "FS.h"
          +
          5 #elif defined(ESP32)
          +
          6 #include "SPIFFS.h"
          +
          7 #endif
          +
          8 
          +
          9 #include "net/discovery.h"
          +
          10 #include "net/networking.h"
          +
          11 #include "net/ota.h"
          +
          12 #include "sensors/analog_input.h"
          +
          13 #include "sensors/digital_input.h"
          +
          14 #include "sensors/system_info.h"
          +
          15 #include "signalk/signalk_output.h"
          +
          16 #include "system/spiffs_storage.h"
          +
          17 #include "transforms/difference.h"
          +
          18 #include "transforms/frequency.h"
          +
          19 #include "transforms/linear.h"
          +
          20 #include "transforms/transform.h"
          +
          21 
          +
          22 #ifndef DEBUG_DISABLED
          +
          23 RemoteDebug Debug;
          +
          24 #endif
          +
          25 
          +
          26 void SetupSerialDebug(uint32_t baudrate) {
          +
          27  Serial.begin(baudrate);
          +
          28 
          +
          29  // A small delay and one debugI() are required so that
          +
          30  // the serial output displays everything
          +
          31  delay(100);
          +
          32  Debug.setSerialEnabled(true);
          +
          33  delay(100);
          +
          34  debugI("\nSerial debug enabled");
          +
          35 }
          +
          36 
          +
          37 SensESPApp::SensESPApp(String preset_hostname, String ssid,
          +
          38  String wifi_password, String sk_server_address,
          +
          39  uint16_t sk_server_port, StandardSensors sensors,
          +
          40  int led_pin, bool enable_led, int led_ws_connected,
          +
          41  int led_wifi_connected, int led_offline) {
          +
          42  // initialize filesystem
          +
          43 #ifdef ESP8266
          +
          44  if (!SPIFFS.begin()) {
          +
          45 #elif defined(ESP32)
          +
          46  if (!SPIFFS.begin(true)) {
          +
          47 #endif
          +
          48  debugE("FATAL: Filesystem initialization failed.");
          +
          49  ESP.restart();
          +
          50  }
          +
          51 
          +
          52  // create the networking object
          +
          53  networking = new Networking("/system/networking", ssid, wifi_password,
          +
          54  preset_hostname);
          +
          55 
          + +
          57 
          +
          58  // setup standard sensors and their transforms
          +
          59  setup_standard_sensors(hostname, sensors);
          +
          60 
          +
          61  // create the SK delta object
          +
          62 
          +
          63  sk_delta = new SKDelta(hostname->get());
          +
          64 
          +
          65  // listen for hostname updates
          +
          66 
          +
          67  hostname->attach(
          +
          68  [hostname, this]() { this->sk_delta->set_hostname(hostname->get()); });
          +
          69 
          +
          70  led_blinker = new LedBlinker(led_pin, led_ws_connected, led_wifi_connected,
          +
          71  led_offline);
          +
          72 
          +
          73  // create the HTTP server
          +
          74 
          +
          75  this->http_server = new HTTPServer(std::bind(&SensESPApp::reset, this));
          +
          76 
          +
          77  // create the websocket client
          +
          78 
          +
          79  auto ws_connected_cb = [this](bool connected) {
          +
          80  if (connected) {
          +
          81  this->led_blinker->set_server_connected();
          +
          82  } else {
          +
          83  this->led_blinker->set_server_disconnected();
          +
          84  }
          +
          85  };
          +
          86  auto ws_delta_cb = [this]() { this->led_blinker->flip(); };
          +
          87  this->ws_client = new WSClient("/system/sk", sk_delta, sk_server_address,
          +
          88  sk_server_port, ws_connected_cb, ws_delta_cb);
          +
          89 }
          +
          90 
          +
          91 void SensESPApp::setup_standard_sensors(ObservableValue<String>* hostname,
          +
          92  StandardSensors enabled_sensors) {
          +
          93  if ((enabled_sensors & FREQUENCY) != 0) {
          +
          94  connect_1to1_h<SystemHz, SKOutput<float>>(new SystemHz(),
          +
          95  new SKOutput<float>(), hostname);
          +
          96  }
          +
          97 
          +
          98  if ((enabled_sensors & UPTIME) != 0) {
          +
          99  connect_1to1_h<Uptime, SKOutput<float>>(new Uptime(), new SKOutput<float>(),
          +
          100  hostname);
          +
          101  }
          +
          102 
          +
          103  // connect freemem
          +
          104  if ((enabled_sensors & FREE_MEMORY) != 0) {
          +
          105  connect_1to1_h<FreeMem, SKOutput<float>>(new FreeMem(),
          +
          106  new SKOutput<float>(), hostname);
          +
          107  }
          +
          108 
          +
          109  // connect ip address
          +
          110 
          +
          111  if ((enabled_sensors & IP_ADDRESS) != 0) {
          +
          112  connect_1to1_h<IPAddrDev, SKOutput<String>>(
          +
          113  new IPAddrDev(), new SKOutput<String>(), hostname);
          +
          114  }
          +
          115 
          +
          116  if ((enabled_sensors & WIFI_SIGNAL) != 0) {
          +
          117  connect_1to1_h<WifiSignal, SKOutput<float>>(
          +
          118  new WifiSignal(), new SKOutput<float>(), hostname);
          +
          119  }
          +
          120 }
          +
          121 
          + +
          123  this->led_blinker->set_wifi_disconnected();
          +
          124 
          +
          125  // connect all transforms to the Signal K delta output
          +
          126 
          +
          127  // ObservableValue<String>* hostname = networking->get_hostname();
          +
          128 
          +
          129  for (auto const& sk_source : SKEmitter::get_sources()) {
          +
          130  if (sk_source->get_sk_path() != "") {
          +
          131  debugI("Connecting Signal K source %s", sk_source->get_sk_path().c_str());
          +
          132  sk_source->attach([sk_source, this]() {
          +
          133  this->sk_delta->append(sk_source->as_signalk());
          +
          134  });
          +
          135  }
          +
          136  }
          +
          137 
          +
          138  debugI("Enabling subsystems");
          +
          139 
          +
          140  // FIXME: Setting up mDNS discovery before networking can't work!
          +
          141  debugI("Subsystem: setup_discovery()");
          +
          142  setup_discovery(networking->get_hostname()->get().c_str());
          +
          143 
          +
          144  debugI("Subsystem: networking->setup()");
          +
          145  networking->setup([this](bool connected) {
          +
          146  if (connected) {
          +
          147  this->led_blinker->set_wifi_connected();
          +
          148  } else {
          +
          149  this->led_blinker->set_wifi_disconnected();
          +
          150  debugD("Not connected to wifi");
          +
          151  }
          +
          152  });
          +
          153 
          +
          154  debugI("Subsystem: setup_OTA()");
          +
          155  setup_ota();
          +
          156 
          +
          157  debugI("Subsystem: http_server()");
          +
          158  this->http_server->enable();
          +
          159  debugI("Subsystem: ws_client()");
          +
          160  this->ws_client->enable();
          +
          161 
          +
          162  debugI("WS client enabled");
          +
          163 
          +
          164  // initialize remote debugging
          +
          165 
          +
          166 #ifndef DEBUG_DISABLED
          +
          167  Debug.begin(networking->get_hostname()->get());
          +
          168  Debug.setResetCmdEnabled(true);
          +
          169  app.onRepeat(1, []() { Debug.handle(); });
          +
          170 #endif
          +
          171 
          + +
          173  debugI("All sensors and transforms enabled");
          +
          174 }
          +
          175 
          + +
          177  debugW("Resetting the device configuration.");
          +
          178  networking->reset_settings();
          +
          179  SPIFFS.format();
          +
          180  app.onDelay(1000, []() { ESP.restart(); });
          +
          181 }
          +
          182 
          +
          183 String SensESPApp::get_hostname() { return networking->get_hostname()->get(); }
          +
          184 
          + +
          +
          +
          @ IP_ADDRESS
          Definition: sensesp_app.h:31
          +
          @ UPTIME
          Definition: sensesp_app.h:28
          +
          static void enable_all()
          Definition: enable.cpp:11
          + +
          void append(const String val)
          + +
          SensESPApp(String hostname="SensESP", String ssid="", String wifi_password="", String sk_server_address="", uint16_t sk_server_port=0, StandardSensors sensors=ALL, int led_pin=LED_PIN, bool enable_led=ENABLE_LED, int led_ws_connected=200, int led_wifi_connected=1000, int led_offline=2000)
          Definition: sensesp_app.cpp:37
          +
          ObservableValue< String > * get_hostname()
          Definition: networking.cpp:125
          +
          void enable()
          +
          void enable()
          Definition: ws_client.cpp:61
          + +
          void reset_settings()
          Definition: networking.cpp:186
          +
          friend class HTTPServer
          Definition: sensesp_app.h:94
          +
          void SetupSerialDebug(uint32_t baudrate)
          Definition: sensesp_app.cpp:26
          +
          void set_server_connected()
          Definition: led_blinker.cpp:57
          +
          void set_hostname(String hostname)
          Definition: signalk_delta.h:17
          + + + +
          void setup_discovery(const char *hostname)
          Definition: discovery.cpp:10
          + +
          void set_server_disconnected()
          Definition: led_blinker.h:24
          + +
          @ FREQUENCY
          Definition: sensesp_app.h:29
          +
          auto ws_connected_cb
          Definition: sensesp_app.cpp:79
          + + +
          static const std::vector< SKEmitter * > & get_sources()
          +
          @ WIFI_SIGNAL
          Definition: sensesp_app.h:32
          + + +
          SensESPApp * sensesp_app
          + +
          void reset()
          +
          void enable()
          Definition: http.h:12
          + +
          @ connected
          Definition: ws_client.h:14
          +
          void flip()
          Definition: led_blinker.cpp:34
          +
          RemoteDebug Debug
          Definition: sensesp_app.cpp:23
          +
          void setup(std::function< void(bool)> connection_cb)
          Definition: networking.cpp:47
          + + + +
          @ FREE_MEMORY
          Definition: sensesp_app.h:30
          +
          void setup_ota()
          Definition: ota.cpp:15
          + +
          auto ws_delta_cb
          Definition: sensesp_app.cpp:86
          + + + +
          ObservableValue< String > * hostname
          Definition: sensesp_app.cpp:56
          + +
          ReactESP app
          +
          void set_wifi_connected()
          Definition: led_blinker.cpp:51
          +
          StandardSensors
          Definition: sensesp_app.h:26
          + + +
          void set_wifi_disconnected()
          Definition: led_blinker.cpp:40
          + +
          virtual const T & get()
          Definition: valueproducer.h:27
          +
          String get_hostname()
          + + + + diff --git a/docs/generated/docs/sensesp__app_8h.html b/docs/generated/docs/sensesp__app_8h.html new file mode 100644 index 000000000..14c99e6e8 --- /dev/null +++ b/docs/generated/docs/sensesp__app_8h.html @@ -0,0 +1,342 @@ + + + + + + + +SensESP: src/sensesp_app.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          sensesp_app.h File Reference
          +
          +
          +
          #include "net/http.h"
          +#include "net/networking.h"
          +#include "net/ws_client.h"
          +#include "sensesp.h"
          +#include "sensors/sensor.h"
          +#include "signalk/signalk_delta.h"
          +#include "system/led_blinker.h"
          +#include "system/observablevalue.h"
          +#include "system/valueconsumer.h"
          +#include "system/valueproducer.h"
          +
          +Include dependency graph for sensesp_app.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  SensESPApp
           
          + + + + + + + +

          +Macros

          #define USE_LIB_WEBSOCKET   true
           
          #define LED_PIN   0
           
          #define ENABLE_LED   false
           
          + + + +

          +Enumerations

          enum  StandardSensors {
          +  NONE, +UPTIME = 0x01, +FREQUENCY = 0x02, +FREE_MEMORY = 0x04, +
          +  IP_ADDRESS = 0x08, +WIFI_SIGNAL = 0x10, +ALL = 0x1F +
          + }
           
          + + + +

          +Functions

          void SetupSerialDebug (uint32_t baudrate)
           
          + + + +

          +Variables

          SensESPAppsensesp_app
           
          +

          Macro Definition Documentation

          + +

          ◆ ENABLE_LED

          + +
          +
          + + + + +
          #define ENABLE_LED   false
          +
          + +

          Definition at line 12 of file sensesp_app.h.

          + +
          +
          + +

          ◆ LED_PIN

          + +
          +
          + + + + +
          #define LED_PIN   0
          +
          + +

          Definition at line 11 of file sensesp_app.h.

          + +
          +
          + +

          ◆ USE_LIB_WEBSOCKET

          + +
          +
          + + + + +
          #define USE_LIB_WEBSOCKET   true
          +
          + +

          Definition at line 5 of file sensesp_app.h.

          + +
          +
          +

          Enumeration Type Documentation

          + +

          ◆ StandardSensors

          + +
          +
          + + + + +
          enum StandardSensors
          +
          + + + + + + + + +
          Enumerator
          NONE 
          UPTIME 
          FREQUENCY 
          FREE_MEMORY 
          IP_ADDRESS 
          WIFI_SIGNAL 
          ALL 
          + +

          Definition at line 26 of file sensesp_app.h.

          + +
          +
          +

          Function Documentation

          + +

          ◆ SetupSerialDebug()

          + +
          +
          + + + + + + + + +
          void SetupSerialDebug (uint32_t baudrate)
          +
          + +

          Definition at line 26 of file sensesp_app.cpp.

          +
          +Here is the caller graph for this function:
          +
          +
          + + + + +
          + +
          +
          +

          Variable Documentation

          + +

          ◆ sensesp_app

          + +
          +
          + + + + + +
          + + + + +
          SensESPApp* sensesp_app
          +
          +extern
          +
          + +

          Definition at line 185 of file sensesp_app.cpp.

          + +
          +
          +
          +
          + + + + diff --git a/docs/generated/docs/sensesp__app_8h.js b/docs/generated/docs/sensesp__app_8h.js new file mode 100644 index 000000000..bfc95eefd --- /dev/null +++ b/docs/generated/docs/sensesp__app_8h.js @@ -0,0 +1,18 @@ +var sensesp__app_8h = +[ + [ "SensESPApp", "class_sens_e_s_p_app.html", "class_sens_e_s_p_app" ], + [ "ENABLE_LED", "sensesp__app_8h.html#add0ff5bdcc203b4a438aa1f46260283d", null ], + [ "LED_PIN", "sensesp__app_8h.html#ab4553be4db9860d940f81d7447173b2f", null ], + [ "USE_LIB_WEBSOCKET", "sensesp__app_8h.html#a8abe44af131f55591035d3587ca9484d", null ], + [ "StandardSensors", "sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbd", [ + [ "NONE", "sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbdac157bdf0b85a40d2619cbc8bc1ae5fe2", null ], + [ "UPTIME", "sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda51305f206950897626327f194518087d", null ], + [ "FREQUENCY", "sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda0ef2c92b2317b95f9ef1ae102029d676", null ], + [ "FREE_MEMORY", "sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda5891c7e995ff517e945876b41f35bbb7", null ], + [ "IP_ADDRESS", "sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbdad623eb60dd773b245fe13ee928fd47c8", null ], + [ "WIFI_SIGNAL", "sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbda16948e5a45a0e6caffb0b1b85f342b7e", null ], + [ "ALL", "sensesp__app_8h.html#abeacf3e22e82961fc23c43cad734ebbdab1d5eac4b1dca480c8056eaea7663b7a", null ] + ] ], + [ "SetupSerialDebug", "sensesp__app_8h.html#a26cd8b11d153355437b86342648b9d70", null ], + [ "sensesp_app", "sensesp__app_8h.html#a9b53af60ecde971876d66994134fbfff", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/sensesp__app_8h__dep__incl.map b/docs/generated/docs/sensesp__app_8h__dep__incl.map new file mode 100644 index 000000000..d27336633 --- /dev/null +++ b/docs/generated/docs/sensesp__app_8h__dep__incl.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/docs/generated/docs/sensesp__app_8h__dep__incl.md5 b/docs/generated/docs/sensesp__app_8h__dep__incl.md5 new file mode 100644 index 000000000..3bfb68327 --- /dev/null +++ b/docs/generated/docs/sensesp__app_8h__dep__incl.md5 @@ -0,0 +1 @@ +136cc3b57f6a8c2f075b932b05f24384 \ No newline at end of file diff --git a/docs/generated/docs/sensesp__app_8h__dep__incl.png b/docs/generated/docs/sensesp__app_8h__dep__incl.png new file mode 100644 index 000000000..0ebebd26b Binary files /dev/null and b/docs/generated/docs/sensesp__app_8h__dep__incl.png differ diff --git a/docs/generated/docs/sensesp__app_8h__incl.map b/docs/generated/docs/sensesp__app_8h__incl.map new file mode 100644 index 000000000..b4bcbb404 --- /dev/null +++ b/docs/generated/docs/sensesp__app_8h__incl.map @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/sensesp__app_8h__incl.md5 b/docs/generated/docs/sensesp__app_8h__incl.md5 new file mode 100644 index 000000000..c8af20a19 --- /dev/null +++ b/docs/generated/docs/sensesp__app_8h__incl.md5 @@ -0,0 +1 @@ +56ba66875f629c8e05c7435756ffe4b2 \ No newline at end of file diff --git a/docs/generated/docs/sensesp__app_8h__incl.png b/docs/generated/docs/sensesp__app_8h__incl.png new file mode 100644 index 000000000..60680b329 Binary files /dev/null and b/docs/generated/docs/sensesp__app_8h__incl.png differ diff --git a/docs/generated/docs/sensesp__app_8h_a26cd8b11d153355437b86342648b9d70_icgraph.map b/docs/generated/docs/sensesp__app_8h_a26cd8b11d153355437b86342648b9d70_icgraph.map new file mode 100644 index 000000000..83cded30f --- /dev/null +++ b/docs/generated/docs/sensesp__app_8h_a26cd8b11d153355437b86342648b9d70_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/sensesp__app_8h_a26cd8b11d153355437b86342648b9d70_icgraph.md5 b/docs/generated/docs/sensesp__app_8h_a26cd8b11d153355437b86342648b9d70_icgraph.md5 new file mode 100644 index 000000000..34c902723 --- /dev/null +++ b/docs/generated/docs/sensesp__app_8h_a26cd8b11d153355437b86342648b9d70_icgraph.md5 @@ -0,0 +1 @@ +5c9cc792875fa5e656b198952f140c2e \ No newline at end of file diff --git a/docs/generated/docs/sensesp__app_8h_a26cd8b11d153355437b86342648b9d70_icgraph.png b/docs/generated/docs/sensesp__app_8h_a26cd8b11d153355437b86342648b9d70_icgraph.png new file mode 100644 index 000000000..67e4538f9 Binary files /dev/null and b/docs/generated/docs/sensesp__app_8h_a26cd8b11d153355437b86342648b9d70_icgraph.png differ diff --git a/docs/generated/docs/sensesp__app_8h_source.html b/docs/generated/docs/sensesp__app_8h_source.html new file mode 100644 index 000000000..5ab620b52 --- /dev/null +++ b/docs/generated/docs/sensesp__app_8h_source.html @@ -0,0 +1,238 @@ + + + + + + + +SensESP: src/sensesp_app.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          sensesp_app.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _sensesp_app_H_
          +
          2 #define _sensesp_app_H_
          +
          3 
          +
          4 // Required for RemoteDebug
          +
          5 #define USE_LIB_WEBSOCKET true
          +
          6 
          +
          7 #ifdef LED_BUILTIN
          +
          8 #define LED_PIN LED_BUILTIN
          +
          9 #define ENABLE_LED true
          +
          10 #else
          +
          11 #define LED_PIN 0
          +
          12 #define ENABLE_LED false
          +
          13 #endif
          +
          14 
          +
          15 #include "net/http.h"
          +
          16 #include "net/networking.h"
          +
          17 #include "net/ws_client.h"
          +
          18 #include "sensesp.h"
          +
          19 #include "sensors/sensor.h"
          +
          20 #include "signalk/signalk_delta.h"
          +
          21 #include "system/led_blinker.h"
          +
          22 #include "system/observablevalue.h"
          +
          23 #include "system/valueconsumer.h"
          +
          24 #include "system/valueproducer.h"
          +
          25 
          + + +
          28  UPTIME = 0x01,
          +
          29  FREQUENCY = 0x02,
          +
          30  FREE_MEMORY = 0x04,
          +
          31  IP_ADDRESS = 0x08,
          +
          32  WIFI_SIGNAL = 0x10,
          +
          33  ALL = 0x1F
          +
          34 };
          +
          35 
          +
          36 void SetupSerialDebug(uint32_t baudrate);
          +
          37 
          +
          38 class SensESPApp {
          +
          39  public:
          +
          40  SensESPApp(String hostname = "SensESP", String ssid = "",
          +
          41  String wifi_password = "", String sk_server_address = "",
          +
          42  uint16_t sk_server_port = 0, StandardSensors sensors = ALL,
          +
          43  int led_pin = LED_PIN, bool enable_led = ENABLE_LED,
          +
          44  int led_ws_connected = 200, int led_wifi_connected = 1000,
          +
          45  int led_offline = 2000);
          +
          46  void enable();
          +
          47  void reset();
          +
          48  String get_hostname();
          +
          49 
          +
          50  template <typename T>
          +
          51  void connect(ValueProducer<T>* producer, ValueConsumer<T>* consumer,
          +
          52  uint8_t inputChannel = 0) {
          +
          53  producer->connect_to(consumer, inputChannel);
          +
          54  }
          +
          55 
          +
          56  template <typename T, typename U>
          +
          57  void connect_1to1_h(T* sensor, U* transform,
          + +
          59  String hostname_str = hostname->get();
          +
          60  String value_name = sensor->get_value_name();
          +
          61  String sk_path = hostname_str + "." + value_name;
          +
          62  auto comp_set_sk_path = [hostname, transform, value_name]() {
          +
          63  transform->set_sk_path(hostname->get() + "." + value_name);
          +
          64  };
          +
          65  comp_set_sk_path();
          +
          66  sensor->attach(
          +
          67  [sensor, transform]() { transform->set_input(sensor->get()); });
          +
          68  hostname->attach(comp_set_sk_path);
          +
          69  }
          +
          70 
          +
          74  bool isWifiConnected() { return WiFi.status() == WL_CONNECTED; }
          +
          75 
          +
          79  bool isSignalKConnected() { return ws_client->is_connected(); }
          +
          80 
          +
          81  private:
          +
          82  void initialize();
          +
          83  void setup_standard_sensors(ObservableValue<String>* hostname,
          +
          84  StandardSensors enabled_sensors = ALL);
          +
          85 
          +
          86  HTTPServer* http_server;
          +
          87  LedBlinker* led_blinker;
          +
          88  Networking* networking;
          +
          89  SKDelta* sk_delta;
          +
          90  WSClient* ws_client;
          +
          91 
          +
          92  void set_wifi(String ssid, String password);
          +
          93 
          +
          94  friend class HTTPServer;
          +
          95  friend class SensESPAppBuilder;
          +
          96 };
          +
          97 
          +
          98 extern SensESPApp* sensesp_app;
          +
          99 
          +
          100 #endif
          +
          +
          +
          @ IP_ADDRESS
          Definition: sensesp_app.h:31
          +
          @ UPTIME
          Definition: sensesp_app.h:28
          + + +
          SensESPApp(String hostname="SensESP", String ssid="", String wifi_password="", String sk_server_address="", uint16_t sk_server_port=0, StandardSensors sensors=ALL, int led_pin=LED_PIN, bool enable_led=ENABLE_LED, int led_ws_connected=200, int led_wifi_connected=1000, int led_offline=2000)
          Definition: sensesp_app.cpp:37
          +
          void enable()
          + +
          @ NONE
          Definition: sensesp_app.h:27
          +
          void connect_to(ValueConsumer< T > *consumer, uint8_t input_channel=0)
          Definition: valueproducer.h:38
          + + +
          void connect(ValueProducer< T > *producer, ValueConsumer< T > *consumer, uint8_t inputChannel=0)
          Definition: sensesp_app.h:51
          +
          @ FREQUENCY
          Definition: sensesp_app.h:29
          + +
          bool isWifiConnected()
          Definition: sensesp_app.h:74
          + +
          @ WIFI_SIGNAL
          Definition: sensesp_app.h:32
          + +
          @ ALL
          Definition: sensesp_app.h:33
          + +
          void SetupSerialDebug(uint32_t baudrate)
          Definition: sensesp_app.cpp:26
          +
          bool isSignalKConnected()
          Definition: sensesp_app.h:79
          +
          void reset()
          + + + + + + + +
          @ FREE_MEMORY
          Definition: sensesp_app.h:30
          +
          Definition: http.h:8
          +
          #define LED_PIN
          Definition: sensesp_app.h:11
          + +
          void connect_1to1_h(T *sensor, U *transform, ObservableValue< String > *hostname)
          Definition: sensesp_app.h:57
          +
          ObservableValue< String > * hostname
          Definition: sensesp_app.cpp:56
          +
          SensESPApp * sensesp_app
          + +
          StandardSensors
          Definition: sensesp_app.h:26
          +
          #define ENABLE_LED
          Definition: sensesp_app.h:12
          +
          bool is_connected()
          Definition: ws_client.cpp:413
          + +
          virtual const T & get()
          Definition: valueproducer.h:27
          +
          String get_hostname()
          + + + + diff --git a/docs/generated/docs/sensesp__app__builder_8h.html b/docs/generated/docs/sensesp__app__builder_8h.html new file mode 100644 index 000000000..b328c6d69 --- /dev/null +++ b/docs/generated/docs/sensesp__app__builder_8h.html @@ -0,0 +1,148 @@ + + + + + + + +SensESP: src/sensesp_app_builder.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          sensesp_app_builder.h File Reference
          +
          +
          +
          #include "sensesp_app.h"
          +
          +Include dependency graph for sensesp_app_builder.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  SensESPAppBuilder
           
          +
          +
          + + + + diff --git a/docs/generated/docs/sensesp__app__builder_8h__incl.map b/docs/generated/docs/sensesp__app__builder_8h__incl.map new file mode 100644 index 000000000..72e08c55b --- /dev/null +++ b/docs/generated/docs/sensesp__app__builder_8h__incl.map @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/sensesp__app__builder_8h__incl.md5 b/docs/generated/docs/sensesp__app__builder_8h__incl.md5 new file mode 100644 index 000000000..6f5fc5ab5 --- /dev/null +++ b/docs/generated/docs/sensesp__app__builder_8h__incl.md5 @@ -0,0 +1 @@ +3acdcc8fbb699cf359262b97e41535d5 \ No newline at end of file diff --git a/docs/generated/docs/sensesp__app__builder_8h__incl.png b/docs/generated/docs/sensesp__app__builder_8h__incl.png new file mode 100644 index 000000000..9e16b9788 Binary files /dev/null and b/docs/generated/docs/sensesp__app__builder_8h__incl.png differ diff --git a/docs/generated/docs/sensesp__app__builder_8h_source.html b/docs/generated/docs/sensesp__app__builder_8h_source.html new file mode 100644 index 000000000..c326df6a2 --- /dev/null +++ b/docs/generated/docs/sensesp__app__builder_8h_source.html @@ -0,0 +1,175 @@ + + + + + + + +SensESP: src/sensesp_app_builder.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          sensesp_app_builder.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef SENSESP_APP_BUILDER_H
          +
          2 #define SENSESP_APP_BUILDER_H
          +
          3 
          +
          4 #include "sensesp_app.h"
          +
          5 
          + +
          7  private:
          +
          8  String hostname = "SensESP";
          +
          9  String ssid = "";
          +
          10  String password = "";
          +
          11  String sk_server_address = "";
          +
          12  uint16_t sk_server_port = 0;
          +
          13  StandardSensors sensors = ALL;
          +
          14  int led_pin = LED_PIN;
          +
          15  bool enable_led = ENABLE_LED;
          +
          16  int led_ws_connected = 200;
          +
          17  int led_wifi_connected = 1000;
          +
          18  int led_offline = 5000;
          +
          19 
          +
          20  public:
          + +
          22  SensESPAppBuilder* set_wifi(String ssid, String password) {
          +
          23  this->ssid = ssid;
          +
          24  this->password = password;
          +
          25  return this;
          +
          26  }
          +
          27  SensESPAppBuilder* set_sk_server(String address, uint16_t port) {
          +
          28  this->sk_server_address = address;
          +
          29  this->sk_server_port = port;
          +
          30  return this;
          +
          31  }
          + +
          33  this->sensors = sensors;
          +
          34  return this;
          +
          35  }
          + +
          37  this->led_pin = led_pin;
          +
          38  return this;
          +
          39  }
          +
          40  SensESPAppBuilder* set_led_blinker(bool enabled, int websocket_connected,
          +
          41  int wifi_connected, int offline) {
          +
          42  this->enable_led = enabled;
          +
          43  this->led_ws_connected = websocket_connected;
          +
          44  this->led_wifi_connected = wifi_connected;
          +
          45  this->led_offline = offline;
          +
          46  return this;
          +
          47  }
          +
          48  SensESPAppBuilder* set_hostname(String hostname) {
          +
          49  this->hostname = hostname;
          +
          50  return this;
          +
          51  }
          + +
          53  return new SensESPApp(hostname, ssid, password, sk_server_address,
          +
          54  sk_server_port, sensors, led_pin, enable_led,
          +
          55  led_ws_connected, led_wifi_connected, led_offline);
          +
          56  }
          +
          57 };
          +
          58 
          +
          59 #endif
          +
          +
          + + +
          SensESPAppBuilder * set_hostname(String hostname)
          +
          SensESPAppBuilder * set_led_pin(int led_pin)
          +
          SensESPAppBuilder * set_standard_sensors(StandardSensors sensors=ALL)
          +
          @ ALL
          Definition: sensesp_app.h:33
          +
          SensESPApp * get_app()
          +
          SensESPAppBuilder * set_wifi(String ssid, String password)
          + +
          SensESPAppBuilder * set_led_blinker(bool enabled, int websocket_connected, int wifi_connected, int offline)
          +
          #define LED_PIN
          Definition: sensesp_app.h:11
          +
          ObservableValue< String > * hostname
          Definition: sensesp_app.cpp:56
          +
          SensESPAppBuilder * set_sk_server(String address, uint16_t port)
          +
          StandardSensors
          Definition: sensesp_app.h:26
          + +
          #define ENABLE_LED
          Definition: sensesp_app.h:12
          + + + + diff --git a/docs/generated/docs/sensor_8cpp.html b/docs/generated/docs/sensor_8cpp.html new file mode 100644 index 000000000..3dc625714 --- /dev/null +++ b/docs/generated/docs/sensor_8cpp.html @@ -0,0 +1,129 @@ + + + + + + + +SensESP: src/sensors/sensor.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          sensor.cpp File Reference
          +
          +
          +
          #include "sensor.h"
          +
          +Include dependency graph for sensor.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/sensor_8cpp__incl.map b/docs/generated/docs/sensor_8cpp__incl.map new file mode 100644 index 000000000..9f29f0f60 --- /dev/null +++ b/docs/generated/docs/sensor_8cpp__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/sensor_8cpp__incl.md5 b/docs/generated/docs/sensor_8cpp__incl.md5 new file mode 100644 index 000000000..121c718d9 --- /dev/null +++ b/docs/generated/docs/sensor_8cpp__incl.md5 @@ -0,0 +1 @@ +2669a28cb7143e8597edb23bf8700253 \ No newline at end of file diff --git a/docs/generated/docs/sensor_8cpp__incl.png b/docs/generated/docs/sensor_8cpp__incl.png new file mode 100644 index 000000000..5ff0735fc Binary files /dev/null and b/docs/generated/docs/sensor_8cpp__incl.png differ diff --git a/docs/generated/docs/sensor_8cpp_source.html b/docs/generated/docs/sensor_8cpp_source.html new file mode 100644 index 000000000..515c06530 --- /dev/null +++ b/docs/generated/docs/sensor_8cpp_source.html @@ -0,0 +1,126 @@ + + + + + + + +SensESP: src/sensors/sensor.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          sensor.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "sensor.h"
          +
          2 
          +
          3 std::set<Sensor*> Sensor::sensors;
          +
          4 
          +
          5 Sensor::Sensor(String config_path) : Configurable{config_path}, Enable(10) {
          +
          6  sensors.insert(this);
          +
          7 }
          +
          8 
          +
          9 NumericSensor::NumericSensor(String config_path)
          +
          10  : Sensor(config_path), NumericProducer(){};
          +
          11 
          +
          12 IntegerSensor::IntegerSensor(String config_path)
          +
          13  : Sensor(config_path), IntegerProducer(){};
          +
          14 
          +
          15 StringSensor::StringSensor(String config_path)
          +
          16  : Sensor(config_path), StringProducer(){};
          +
          +
          +
          StringSensor(String config_path="")
          Definition: sensor.cpp:15
          + +
          NumericSensor(String config_path="")
          Definition: sensor.cpp:9
          +
          IntegerSensor(String config_path="")
          Definition: sensor.cpp:12
          + +
          const String config_path
          Definition: configurable.h:31
          +
          Sensor(String config_path="")
          Definition: sensor.cpp:5
          +
          Definition: enable.h:18
          + +
          Definition: sensor.h:15
          + + + + diff --git a/docs/generated/docs/sensor_8h.html b/docs/generated/docs/sensor_8h.html new file mode 100644 index 000000000..4a7a50cdc --- /dev/null +++ b/docs/generated/docs/sensor_8h.html @@ -0,0 +1,194 @@ + + + + + + + +SensESP: src/sensors/sensor.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          sensor.h File Reference
          +
          +
          +
          #include <set>
          +#include "system/configurable.h"
          +#include "system/observable.h"
          +#include "system/valueproducer.h"
          +#include "system/enable.h"
          +
          +Include dependency graph for sensor.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + + + + + + + +

          +Classes

          class  Sensor
           
          class  NumericSensor
           
          class  IntegerSensor
           
          class  StringSensor
           
          +
          +
          + + + + diff --git a/docs/generated/docs/sensor_8h__dep__incl.map b/docs/generated/docs/sensor_8h__dep__incl.map new file mode 100644 index 000000000..7b55d0ab6 --- /dev/null +++ b/docs/generated/docs/sensor_8h__dep__incl.map @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/sensor_8h__dep__incl.md5 b/docs/generated/docs/sensor_8h__dep__incl.md5 new file mode 100644 index 000000000..bfab5b21b --- /dev/null +++ b/docs/generated/docs/sensor_8h__dep__incl.md5 @@ -0,0 +1 @@ +cd7ae803d409c383fe47c439273b4bc3 \ No newline at end of file diff --git a/docs/generated/docs/sensor_8h__dep__incl.png b/docs/generated/docs/sensor_8h__dep__incl.png new file mode 100644 index 000000000..1ef3d0aeb Binary files /dev/null and b/docs/generated/docs/sensor_8h__dep__incl.png differ diff --git a/docs/generated/docs/sensor_8h__incl.map b/docs/generated/docs/sensor_8h__incl.map new file mode 100644 index 000000000..6b68a457b --- /dev/null +++ b/docs/generated/docs/sensor_8h__incl.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/sensor_8h__incl.md5 b/docs/generated/docs/sensor_8h__incl.md5 new file mode 100644 index 000000000..0017443cb --- /dev/null +++ b/docs/generated/docs/sensor_8h__incl.md5 @@ -0,0 +1 @@ +ce9442a27e49b7414a409b8bd25973e6 \ No newline at end of file diff --git a/docs/generated/docs/sensor_8h__incl.png b/docs/generated/docs/sensor_8h__incl.png new file mode 100644 index 000000000..ca9dbbd22 Binary files /dev/null and b/docs/generated/docs/sensor_8h__incl.png differ diff --git a/docs/generated/docs/sensor_8h_source.html b/docs/generated/docs/sensor_8h_source.html new file mode 100644 index 000000000..f42bafd0d --- /dev/null +++ b/docs/generated/docs/sensor_8h_source.html @@ -0,0 +1,169 @@ + + + + + + + +SensESP: src/sensors/sensor.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          sensor.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _sensor_H_
          +
          2 #define _sensor_H_
          +
          3 
          +
          4 #include <set>
          +
          5 
          +
          6 #include "system/configurable.h"
          +
          7 #include "system/observable.h"
          +
          8 #include "system/valueproducer.h"
          +
          9 #include "system/enable.h"
          +
          10 
          +
          11 
          +
          13 // Sensors represent raw hardware thingies.
          +
          14 
          +
          15 class Sensor : virtual public Observable, public Configurable, public Enable {
          +
          16  public:
          +
          17  Sensor(String config_path="");
          +
          18 
          +
          19  static const std::set<Sensor*>& get_sensors() {
          +
          20  return sensors;
          +
          21  }
          +
          22 
          +
          23  private:
          +
          24  static std::set<Sensor*> sensors;
          +
          25 };
          +
          26 
          +
          27 
          +
          28 
          +
          29 class NumericSensor : public Sensor, public NumericProducer {
          +
          30 
          +
          31  public:
          +
          32  NumericSensor(String config_path="");
          +
          33 
          +
          34 };
          +
          35 
          +
          36 
          +
          37 class IntegerSensor : public Sensor, public IntegerProducer {
          +
          38 
          +
          39  public:
          +
          40  IntegerSensor(String config_path="");
          +
          41 
          +
          42 };
          +
          43 
          +
          44 
          +
          45 class StringSensor : public Sensor, public StringProducer {
          +
          46 
          +
          47  public:
          +
          48  StringSensor(String config_path="");
          +
          49 
          +
          50 };
          +
          51 
          +
          52 #endif
          +
          +
          + +
          StringSensor(String config_path="")
          Definition: sensor.cpp:15
          + + +
          NumericSensor(String config_path="")
          Definition: sensor.cpp:9
          +
          IntegerSensor(String config_path="")
          Definition: sensor.cpp:12
          + + + +
          const String config_path
          Definition: configurable.h:31
          +
          static const std::set< Sensor * > & get_sensors()
          Definition: sensor.h:19
          + + +
          Sensor(String config_path="")
          Definition: sensor.cpp:5
          +
          Definition: enable.h:18
          + + +
          Definition: sensor.h:15
          + + + + diff --git a/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp.html b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp.html new file mode 100644 index 000000000..7b3325d4e --- /dev/null +++ b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp.html @@ -0,0 +1,208 @@ + + + + + + + +SensESP: src/sensors/sensor_nxp_fxos8700_fxas21002.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          sensor_nxp_fxos8700_fxas21002.cpp File Reference
          +
          +
          +
          #include "sensor_nxp_fxos8700_fxas21002.h"
          +#include <RemoteDebug.h>
          +#include "sensesp.h"
          +#include <Adafruit_FXAS21002C.h>
          +#include <Adafruit_FXOS8700.h>
          +
          +Include dependency graph for sensor_nxp_fxos8700_fxas21002.cpp:
          +
          +
          + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Macros

          #define MIN_PRINT_INTERVAL_MS    (200)
           
          + + + + + + + +

          +Variables

          Adafruit_FXOS8700 fxos = Adafruit_FXOS8700(0x8700A, 0x8700B)
           
          Adafruit_FXAS21002C fxas = Adafruit_FXAS21002C(0x0021002C)
           
          Adafruit_NXPSensorFusion filter
           
          +

          Macro Definition Documentation

          + +

          ◆ MIN_PRINT_INTERVAL_MS

          + +
          +
          + + + + +
          #define MIN_PRINT_INTERVAL_MS    (200)
          +
          + +

          Definition at line 9 of file sensor_nxp_fxos8700_fxas21002.cpp.

          + +
          +
          +

          Variable Documentation

          + +

          ◆ filter

          + +
          +
          + + + + +
          Adafruit_NXPSensorFusion filter
          +
          + +

          Definition at line 18 of file sensor_nxp_fxos8700_fxas21002.cpp.

          + +
          +
          + +

          ◆ fxas

          + +
          +
          + + + + +
          Adafruit_FXAS21002C fxas = Adafruit_FXAS21002C(0x0021002C)
          +
          + +

          Definition at line 16 of file sensor_nxp_fxos8700_fxas21002.cpp.

          + +
          +
          + +

          ◆ fxos

          + +
          +
          + + + + +
          Adafruit_FXOS8700 fxos = Adafruit_FXOS8700(0x8700A, 0x8700B)
          +
          + +

          Definition at line 15 of file sensor_nxp_fxos8700_fxas21002.cpp.

          + +
          +
          +
          +
          + + + + diff --git a/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp.js b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp.js new file mode 100644 index 000000000..dd0e84869 --- /dev/null +++ b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp.js @@ -0,0 +1,7 @@ +var sensor__nxp__fxos8700__fxas21002_8cpp = +[ + [ "MIN_PRINT_INTERVAL_MS", "sensor__nxp__fxos8700__fxas21002_8cpp.html#a9f38c1bd6c384c20a2559bbe12f87d18", null ], + [ "filter", "sensor__nxp__fxos8700__fxas21002_8cpp.html#a95a042ebf2273805da333239d975ecae", null ], + [ "fxas", "sensor__nxp__fxos8700__fxas21002_8cpp.html#a4b1ab4b048fbbcd75a1e22958393fb95", null ], + [ "fxos", "sensor__nxp__fxos8700__fxas21002_8cpp.html#a3aa61c72e9dcb6f6313835817ba9d134", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp__incl.map b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp__incl.map new file mode 100644 index 000000000..f8bdd22b5 --- /dev/null +++ b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp__incl.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp__incl.md5 b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp__incl.md5 new file mode 100644 index 000000000..4cf9f6e92 --- /dev/null +++ b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp__incl.md5 @@ -0,0 +1 @@ +f2e010a00b946925f2c194ba091fa31c \ No newline at end of file diff --git a/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp__incl.png b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp__incl.png new file mode 100644 index 000000000..2e10dd713 Binary files /dev/null and b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp__incl.png differ diff --git a/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp_source.html b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp_source.html new file mode 100644 index 000000000..a3f725bc6 --- /dev/null +++ b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8cpp_source.html @@ -0,0 +1,523 @@ + + + + + + + +SensESP: src/sensors/sensor_nxp_fxos8700_fxas21002.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          sensor_nxp_fxos8700_fxas21002.cpp
          +
          +
          +Go to the documentation of this file.
          +
          2 
          +
          3 #include <RemoteDebug.h>
          +
          4 #include "sensesp.h"
          +
          5 #include <Adafruit_FXAS21002C.h>
          +
          6 #include <Adafruit_FXOS8700.h>
          +
          7 
          +
          8 //#define AHRS_DEBUG_OUTPUT //output diagnostics from sensor read and filter
          +
          9 #define MIN_PRINT_INTERVAL_MS \
          +
          10  (200) // when result printing is requested, it won't happen
          +
          11  // any more frequently than this,
          +
          12  // to avoid overloading the serial channel
          +
          13 
          +
          14 // can the following be moved inside class? or into main.cpp?
          +
          15 Adafruit_FXOS8700 fxos = Adafruit_FXOS8700(0x8700A, 0x8700B);
          +
          16 Adafruit_FXAS21002C fxas = Adafruit_FXAS21002C(0x0021002C);
          +
          17 
          +
          18 Adafruit_NXPSensorFusion filter; // when placed inside class, results from this
          +
          19  // filter return Heading=0.0 always. Other two
          +
          20  // filters (see below) work OK inside class
          +
          21 
          + +
          23 
          +
          24 // Connect to FXOS8700 & FXAS21002 sensor combination using I2C.
          +
          25 // To use default Arduino I2C pins, pass pin_i2c_sda and pin_i2c_scl = -1
          +
          26 // Load calibration values if available (readings won't be valid without
          +
          27 // calibration).
          +
          28 // TODO: set ranges/sensitivity. For now use ICs' default values.
          +
          29 bool SensorNXP_FXOS8700_FXAS21002::connect(uint8_t pin_i2c_sda,
          +
          30  uint8_t pin_i2c_scl) {
          +
          31  debugI("NXP 9 Degrees-of-Freedom Sensor with Adafruit AHRS");
          +
          32  if (!cal.begin()) {
          +
          33  debugE("Failed to initialize calibration helper");
          +
          34  while (1) yield();
          +
          35  }
          +
          36  if (!cal.loadCalibration()) {
          +
          37  debugI("No calibration loaded/found...will start with defaults");
          +
          38  isCalibrated = false;
          +
          39  } else {
          +
          40  debugI("Loaded existing calibration:");
          +
          41  cal.printSavedCalibration();
          +
          42  isCalibrated = true;
          +
          43  }
          +
          44 
          +
          45  Wire.begin(pin_i2c_sda, pin_i2c_scl);
          +
          46  Wire.setClock(400000); // 400KHz I2C
          +
          47 
          +
          48  if (!initSensors()) {
          +
          49  debugE("Failed to find sensors");
          +
          50  return false;
          +
          51  }
          +
          52 
          +
          53  setupSensors(); // TODO - can set ranges, etc
          + +
          55 
          +
          56  return true;
          +
          57 } // end connect()
          +
          58 
          +
          59 // Prints details of FXOS8700 & FXAS21002 sensor combination
          + +
          61  accelerometer->printSensorDetails();
          +
          62  gyroscope->printSensorDetails();
          +
          63  magnetometer->printSensorDetails();
          +
          64 } // end printSensorDetails()
          +
          65 
          +
          66 void SensorNXP_FXOS8700_FXAS21002::initFilter(int sampling_interval_ms) {
          +
          67  roll = 0.0;
          +
          68  pitch = 0.0;
          +
          69  heading = 0.0;
          +
          70  gx = 0.0;
          +
          71  gy = 0.0;
          +
          72  gz = 0.0;
          +
          73  filter.begin(1000.0 / sampling_interval_ms);
          +
          74  timestamp = millis();
          +
          75 } // end initFilter()
          +
          76 
          +
          77 /* The following get___() methods return the specified parameter
          +
          78 of the nine measured parameters. Terminology is nautical
          +
          79 (e.g. heading, pitch, roll) and assumes the physical sensor
          +
          80 is aligned with the X-axis pointing to the Bow;
          +
          81 the Y-axis pointing to Port; and the Z-axis pointing up. If your
          +
          82 sensor is mounted differently, changes to the terminology/axes
          +
          83 will need to be made.
          +
          84 Per SignalK convention, units are SI: radians for headings;
          +
          85 radians / second for turn rates; and meters / second^2 for acceleration.
          +
          86 */
          + +
          88  return (360.0 - heading) / SENSORS_RADS_TO_DPS;
          +
          89 } // end getHeadingRadians()
          +
          90 
          + +
          92  return (-pitch) / SENSORS_RADS_TO_DPS;
          +
          93 } // end getPitchRadians()
          +
          94 
          + +
          96  return roll / SENSORS_RADS_TO_DPS;
          +
          97 } // end getRollRadians()
          +
          98 
          + +
          100  return accel_event.acceleration.x;
          +
          101 } // end getAccelerationX()
          +
          102 
          + +
          104  return accel_event.acceleration.y;
          +
          105 } // end getAccelerationY()
          +
          106 
          + +
          108  return accel_event.acceleration.z;
          +
          109 } // end getAccelerationZ()
          +
          110 
          + +
          112  return (-gz) / SENSORS_RADS_TO_DPS;
          +
          113 } // end getRateOfTurn()
          +
          114 
          + +
          116  return (-gy) / SENSORS_RADS_TO_DPS;
          +
          117 } // end getRateOfPitch()
          +
          118 
          + +
          120  return gx / SENSORS_RADS_TO_DPS;
          +
          121 } // end getRateOfRoll()
          +
          122 
          +
          123 // fetches data from sensors, applies filter function, and assigns orientation
          +
          124 // data to member variables as pitch/roll/heading and quaternion.
          + +
          126  bool is_print_results) {
          +
          127 
          +
          128  timestamp = millis();
          +
          129 
          +
          130  if (!isCalibrated) {
          +
          131  debugW("Orientation is uncalibrated!");
          +
          132  }
          +
          133  magnetometer->getEvent(&mag_event);
          +
          134  gyroscope->getEvent(&gyro_event);
          +
          135  accelerometer->getEvent(&accel_event);
          +
          136 
          +
          137 #if defined(AHRS_DEBUG_OUTPUT)
          +
          138  debugI("I2C took %lu ms", millis() - timestamp);
          +
          139 #endif
          +
          140 
          +
          141  cal.calibrate(mag_event);
          +
          142  cal.calibrate(accel_event);
          +
          143  cal.calibrate(gyro_event);
          +
          144  // Gyroscope needs to be converted from Rad/s to Degree/s for filter
          +
          145  // the rest are not unit-important
          +
          146  gx = gyro_event.gyro.x * SENSORS_RADS_TO_DPS;
          +
          147  gy = gyro_event.gyro.y * SENSORS_RADS_TO_DPS;
          +
          148  gz = gyro_event.gyro.z * SENSORS_RADS_TO_DPS;
          +
          149 
          +
          150  // Apply the desired filter
          +
          151  filter.update(gx, gy, gz,
          +
          152  accel_event.acceleration.x,
          +
          153  accel_event.acceleration.y,
          +
          154  accel_event.acceleration.z,
          +
          155  mag_event.magnetic.x,
          +
          156  mag_event.magnetic.y,
          +
          157  mag_event.magnetic.z);
          +
          158  roll = filter.getRoll();
          +
          159  pitch = filter.getPitch();
          +
          160  heading = filter.getYaw();
          +
          161  float qw, qx, qy, qz;
          +
          162  filter.getQuaternion(&qw, &qx, &qy, &qz);
          +
          163 
          +
          164 #if defined(AHRS_DEBUG_OUTPUT)
          +
          165  debugI("Update took %lu ms", millis() - timestamp);
          +
          166  debugI("Raw: %.4f, %.4f, %.4f, %.4f, %.4f, %.4f, %.4f, %.4f, %.4f",
          +
          167  accel_event.acceleration.x,
          +
          168  accel_event.acceleration.y,
          +
          169  accel_event.acceleration.z,
          +
          170  gx, gy, gz,
          +
          171  mag_event.magnetic.x,
          +
          172  mag_event.magnetic.y,
          +
          173  mag_event.magnetic.z );
          +
          174  debugI("Heading: %.1f", heading);
          +
          175 #endif
          +
          176 
          +
          177  if (is_print_results &&
          +
          178  (millis() - last_print_time > MIN_PRINT_INTERVAL_MS)) {
          +
          179  // print the heading, pitch and roll
          +
          180  debugI("Orientation: %.2f, %.2f, %.2f",
          +
          181  heading, pitch, roll);
          +
          182  debugI("Quaternion: %.4f, %.4f, %.4f, %.4f",
          +
          183  qw, qx, qy, qz);
          +
          184  last_print_time = millis();
          +
          185  }
          +
          186 
          +
          187 #if defined(AHRS_DEBUG_OUTPUT)
          +
          188  debugI("Orientation collection + processing took %lu ms", millis() - timestamp);
          +
          189 #endif
          +
          190 
          +
          191 } // end gatherOrientationDataOnce()
          +
          192 
          +
          193 // Fetches data from sensors and outputs to serial port in
          +
          194 // format that can be read by calibration utility/app.
          +
          195 // Monitors same serial port for incoming calibration values
          +
          196 // sent by the utility, and writes them to EEPROM/Flash if
          +
          197 // received.
          + +
          199  bool is_print_results) {
          +
          200 
          +
          201  magnetometer->getEvent(&mag_event);
          +
          202  gyroscope->getEvent(&gyro_event);
          +
          203  accelerometer->getEvent(&accel_event);
          +
          204 
          +
          205  if (is_print_results) {
          +
          206  // 'Raw' values in format matching expectation of MotionCal utility
          +
          207  // This section copied verbatim from Adafruit_AHRS_calibration.ino
          +
          208  Serial.print(int(millis()));
          +
          209  Serial.print(
          +
          210  "Raw:");
          +
          211  Serial.print(int(accel_event.acceleration.x * 8192 / 9.8));
          +
          212  Serial.print(",");
          +
          213  Serial.print(int(accel_event.acceleration.y * 8192 / 9.8));
          +
          214  Serial.print(",");
          +
          215  Serial.print(int(accel_event.acceleration.z * 8192 / 9.8));
          +
          216  Serial.print(",");
          +
          217  Serial.print(int(gyro_event.gyro.x * SENSORS_RADS_TO_DPS * 16));
          +
          218  Serial.print(",");
          +
          219  Serial.print(int(gyro_event.gyro.y * SENSORS_RADS_TO_DPS * 16));
          +
          220  Serial.print(",");
          +
          221  Serial.print(int(gyro_event.gyro.z * SENSORS_RADS_TO_DPS * 16));
          +
          222  Serial.print(",");
          +
          223  Serial.print(int(mag_event.magnetic.x * 10));
          +
          224  Serial.print(",");
          +
          225  Serial.print(int(mag_event.magnetic.y * 10));
          +
          226  Serial.print(",");
          +
          227  Serial.print(int(mag_event.magnetic.z * 10));
          +
          228  Serial.println("");
          +
          229 
          +
          230  // unified data
          +
          231  Serial.print("Uni:");
          +
          232  Serial.print(accel_event.acceleration.x);
          +
          233  Serial.print(",");
          +
          234  Serial.print(accel_event.acceleration.y);
          +
          235  Serial.print(",");
          +
          236  Serial.print(accel_event.acceleration.z);
          +
          237  Serial.print(",");
          +
          238  Serial.print(gyro_event.gyro.x, 4);
          +
          239  Serial.print(",");
          +
          240  Serial.print(gyro_event.gyro.y, 4);
          +
          241  Serial.print(",");
          +
          242  Serial.print(gyro_event.gyro.z, 4);
          +
          243  Serial.print(",");
          +
          244  Serial.print(mag_event.magnetic.x);
          +
          245  Serial.print(",");
          +
          246  Serial.print(mag_event.magnetic.y);
          +
          247  Serial.print(",");
          +
          248  Serial.print(mag_event.magnetic.z);
          +
          249  Serial.println("");
          +
          250  }
          +
          251 
          +
          252  receiveCalibration(); //check for incoming cal values
          +
          253 
          +
          254  if (is_print_results) {
          +
          255  Serial.print("Cal1:");
          +
          256  for (int i = 0; i < 3; i++) {
          +
          257  Serial.print(cal.accel_zerog[i], 3);
          +
          258  Serial.print(",");
          +
          259  }
          +
          260  for (int i = 0; i < 3; i++) {
          +
          261  Serial.print(cal.gyro_zerorate[i], 3);
          +
          262  Serial.print(",");
          +
          263  }
          +
          264  for (int i = 0; i < 3; i++) {
          +
          265  Serial.print(cal.mag_hardiron[i], 3);
          +
          266  Serial.print(",");
          +
          267  }
          +
          268  Serial.println(cal.mag_field, 3);
          +
          269 
          +
          270  Serial.print("Cal2:");
          +
          271  for (int i = 0; i < 9; i++) {
          +
          272  Serial.print(cal.mag_softiron[i], 4);
          +
          273  if (i < 8) Serial.print(',');
          +
          274  }
          +
          275  Serial.println();
          +
          276  }
          +
          277 } // end gatherCalibrationDataOnce()
          +
          278 
          +
          279 
          +
          280 bool SensorNXP_FXOS8700_FXAS21002::initSensors() {
          +
          281  if (!fxos.begin() || !fxas.begin()) {
          +
          282  return false;
          +
          283  }
          +
          284  accelerometer = fxos.getAccelerometerSensor();
          +
          285  magnetometer = fxos.getMagnetometerSensor();
          +
          286  gyroscope = &fxas;
          +
          287 
          +
          288  return true;
          +
          289 } // end initSensors()
          +
          290 
          +
          291 void SensorNXP_FXOS8700_FXAS21002::setupSensors(void) {
          +
          292  //TODO: we could set the g range for accelerometer here, for example
          +
          293  //Note that if the ranges are changed, the scaling of the output values
          +
          294  //may need adjusting. For example, the accelerometer is operating
          +
          295  //by default at +/-2g sensitivity (= 0.244 mg/LSB), and the accelerations
          +
          296  //are converted to m/s^2. The conversion factor needs scale
          +
          297  //proportionally to the sensitivity.
          +
          298 } // end setupSensors()
          +
          299 
          +
          300 // Receives calibration values sent by external calibration utility
          +
          301 // over serial port. For details and format, see
          +
          302 // https://github.com/PaulStoffregen/MotionCal
          +
          303 void SensorNXP_FXOS8700_FXAS21002::receiveCalibration(void) {
          +
          304  uint16_t crc;
          +
          305  byte b, i;
          +
          306 
          +
          307  while (
          +
          308  Serial.available()) { // unsure why while() here in example - due to later
          +
          309  // returns, there is only ever 1 byte collected per
          +
          310  // invocation of receiveCalibration() unless fails
          +
          311  // crc and 117,84 not found in data - then the final
          +
          312  // if() is entered, and we read 2 bytes.
          +
          313  b = Serial.read();
          +
          314  if (calcount == 0 && b != 117) {
          +
          315  // first byte must be 117
          +
          316  return;
          +
          317  }
          +
          318  if (calcount == 1 && b != 84) {
          +
          319  // second byte must be 84
          +
          320  calcount = 0;
          +
          321  return;
          +
          322  }
          +
          323  // store this byte
          +
          324  caldata[calcount++] = b;
          +
          325  if (calcount < 68) {
          +
          326  // full calibration message is 68 bytes
          +
          327  return;
          +
          328  }
          +
          329  // verify the crc16 check
          +
          330  crc = 0xFFFF;
          +
          331  for (i = 0; i < 68; i++) {
          +
          332  crc = crc16_update(crc, caldata[i]);
          +
          333  }
          +
          334  if (crc == 0) {
          +
          335  // data looks good, use it
          +
          336  float offsets[16];
          +
          337  memcpy(offsets, caldata + 2, 16 * 4);
          +
          338  cal.accel_zerog[0] = offsets[0];
          +
          339  cal.accel_zerog[1] = offsets[1];
          +
          340  cal.accel_zerog[2] = offsets[2];
          +
          341 
          +
          342  cal.gyro_zerorate[0] = offsets[3];
          +
          343  cal.gyro_zerorate[1] = offsets[4];
          +
          344  cal.gyro_zerorate[2] = offsets[5];
          +
          345 
          +
          346  cal.mag_hardiron[0] = offsets[6];
          +
          347  cal.mag_hardiron[1] = offsets[7];
          +
          348  cal.mag_hardiron[2] = offsets[8];
          +
          349 
          +
          350  cal.mag_field = offsets[9];
          +
          351 
          +
          352  cal.mag_softiron[0] = offsets[10];
          +
          353  cal.mag_softiron[1] = offsets[13];
          +
          354  cal.mag_softiron[2] = offsets[14];
          +
          355  cal.mag_softiron[3] = offsets[13];
          +
          356  cal.mag_softiron[4] = offsets[11];
          +
          357  cal.mag_softiron[5] = offsets[15];
          +
          358  cal.mag_softiron[6] = offsets[14];
          +
          359  cal.mag_softiron[7] = offsets[15];
          +
          360  cal.mag_softiron[8] = offsets[12];
          +
          361 
          +
          362  if (!cal.saveCalibration()) {
          +
          363  debugW("Couldn't save calibration");
          +
          364  } else {
          +
          365  debugI("Wrote calibration");
          +
          366  }
          +
          367  cal.printSavedCalibration();
          +
          368  calcount = 0;
          +
          369  return;
          +
          370  }
          +
          371  // look for the 117,84 in the data, before discarding
          +
          372  for (i = 2; i < 67; i++) {
          +
          373  if (caldata[i] == 117 && caldata[i + 1] == 84) {
          +
          374  // found possible start within data
          +
          375  calcount = 68 - i;
          +
          376  memmove(caldata, caldata + i, calcount);
          +
          377  return;
          +
          378  }
          +
          379  }
          +
          380  // look for 117 in last byte
          +
          381  if (caldata[67] == 117) {
          +
          382  caldata[0] = 117;
          +
          383  calcount = 1;
          +
          384  } else {
          +
          385  calcount = 0;
          +
          386  }
          +
          387  }
          +
          388 } // end receiveCalibration()
          +
          389 
          +
          390 uint16_t SensorNXP_FXOS8700_FXAS21002::crc16_update(uint16_t crc, uint8_t a) {
          +
          391  // CRC implementation as expected by external calibration utility
          +
          392  int i;
          +
          393  crc ^= a;
          +
          394  for (i = 0; i < 8; i++) {
          +
          395  if (crc & 1) {
          +
          396  crc = (crc >> 1) ^ 0xA001;
          +
          397  } else {
          +
          398  crc = (crc >> 1);
          +
          399  }
          +
          400  }
          +
          401  return crc;
          +
          402 } // end crc16_update()
          +
          +
          + + + + + + + + +
          Adafruit_FXAS21002C fxas
          +
          #define MIN_PRINT_INTERVAL_MS
          +
          void gatherOrientationDataOnce(bool is_print_results)
          + + + +
          void initFilter(int sampling_interval_ms)
          +
          Adafruit_FXOS8700 fxos
          +
          bool connect(uint8_t pin_i2c_sda, uint8_t pin_i2c_scl)
          + + +
          void gatherCalibrationDataOnce(bool is_print_results)
          +
          Adafruit_NXPSensorFusion filter
          + + + + diff --git a/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h.html b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h.html new file mode 100644 index 000000000..a8362515f --- /dev/null +++ b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h.html @@ -0,0 +1,135 @@ + + + + + + + +SensESP: src/sensors/sensor_nxp_fxos8700_fxas21002.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          sensor_nxp_fxos8700_fxas21002.h File Reference
          +
          +
          +
          #include <stdint.h>
          +#include <Adafruit_AHRS.h>
          +#include "Adafruit_Sensor_Calibration.h"
          +
          +Include dependency graph for sensor_nxp_fxos8700_fxas21002.h:
          +
          +
          + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  SensorNXP_FXOS8700_FXAS21002
           
          +
          +
          + + + + diff --git a/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__dep__incl.map b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__dep__incl.map new file mode 100644 index 000000000..6c6b20398 --- /dev/null +++ b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__dep__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__dep__incl.md5 b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__dep__incl.md5 new file mode 100644 index 000000000..6a4b534ca --- /dev/null +++ b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__dep__incl.md5 @@ -0,0 +1 @@ +1c5ca1d27a55caa61478d4ed01bd404a \ No newline at end of file diff --git a/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__dep__incl.png b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__dep__incl.png new file mode 100644 index 000000000..0fd66cb5a Binary files /dev/null and b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__dep__incl.png differ diff --git a/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__incl.map b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__incl.map new file mode 100644 index 000000000..59989c4db --- /dev/null +++ b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__incl.md5 b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__incl.md5 new file mode 100644 index 000000000..2d44b5946 --- /dev/null +++ b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__incl.md5 @@ -0,0 +1 @@ +33bb2c3ba933bd395d4ec65616dbe5ca \ No newline at end of file diff --git a/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__incl.png b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__incl.png new file mode 100644 index 000000000..ee6105299 Binary files /dev/null and b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h__incl.png differ diff --git a/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h_source.html b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h_source.html new file mode 100644 index 000000000..51b5d0aef --- /dev/null +++ b/docs/generated/docs/sensor__nxp__fxos8700__fxas21002_8h_source.html @@ -0,0 +1,204 @@ + + + + + + + +SensESP: src/sensors/sensor_nxp_fxos8700_fxas21002.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          sensor_nxp_fxos8700_fxas21002.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _SENSORS_NXP_FXOS8700_FXAS21002_H
          +
          2 #define _SENSORS_NXP_FXOS8700_FXAS21002_H
          +
          3 
          +
          4 // Based on examples in the Adafruit AHRS library (Adafruit_AHRS_calibration.ino,
          +
          5 // calibrated_orientation.ino).
          +
          6 // Connects to a supported magnetometer/gyro/accelerometer and outputs
          +
          7 // orientation data as heading/pitch/roll, and also in quaternion form.
          +
          8 
          +
          9 // Two data-reporting methods are available: one for
          +
          10 // generating raw data used when calibrating the sensor; the
          +
          11 // second for generating orientation data following calibration.
          +
          12 
          +
          13 // For calibration, the sensor readings are output in PJRC Motion Sensor
          +
          14 // Calibration Tool-compatible serial format. An external tool/app/program
          +
          15 // is needed to process the raw serial data and generate calibration values.
          +
          16 // Once generated, calibration values are stored in EEPROM and should not
          +
          17 // need re-creation unless the magnetic environment (mounting location,
          +
          18 // mounting enclosure, nearby magnetically-permeable objects) of the sensor
          +
          19 // changes. Orientation data will not be reliable without prior calibration.
          +
          20 
          +
          21 // Orientation data are intended as a SignalK data source, but can also
          +
          22 // be viewed on the serial port stream, or using the OrientationVisualiser
          +
          23 // example in the Adafruit AHRS Processing library.
          +
          24 
          +
          25 // Based on https://github.com/PaulStoffregen/NXPMotionSense with adjustments
          +
          26 // to Adafruit Unified Sensor interface.
          +
          27 // PJRC & Adafruit invest time and resources providing this open source code,
          +
          28 // please support PJRC and open-source hardware by purchasing products
          +
          29 // from PJRC! Written by PJRC, adapted by Limor Fried for Adafruit Industries.
          +
          30 
          +
          31 // Last edits by Bjarne Hansen 2020-09-03
          +
          32 
          +
          33 // Relies on Serial object existing for sending data/diagnostics to serial port
          +
          34 
          +
          35 #include <stdint.h>
          +
          36 
          +
          37 #include <Adafruit_AHRS.h>
          +
          38 #include "Adafruit_Sensor_Calibration.h"
          +
          39 
          + +
          41 
          +
          42  public:
          + +
          44  bool connect(uint8_t pin_i2c_sda, uint8_t pin_i2c_scl);
          +
          45  void printSensorDetails(void);
          +
          46  void initFilter(int sampling_interval_ms);
          +
          47  float getHeadingRadians(void);
          +
          48  float getPitchRadians(void);
          +
          49  float getRollRadians(void);
          +
          50  float getAccelerationX(void);
          +
          51  float getAccelerationY(void);
          +
          52  float getAccelerationZ(void);
          +
          53  float getRateOfTurn(void);
          +
          54  float getRateOfPitch(void);
          +
          55  float getRateOfRoll(void);
          +
          56  void gatherCalibrationDataOnce(bool is_print_results);
          +
          57  void gatherOrientationDataOnce(bool is_print_results);
          +
          58 
          +
          59  private:
          +
          60  // pick one of three following filters: slower == better quality output
          +
          61  // Adafruit_NXPSensorFusion filter; // slowest. Note that this one needs to
          +
          62  // be declared outside of class, else heading returns 0.0 always. Unsure
          +
          63  // why. Currently declared in *.cpp file The other two filters are fine when
          +
          64  // declared inside class. Adafruit_NXP_SensorFusion filter runs fine on ESP32.
          +
          65  // Adafruit_Madgwick filter; // faster than NXP
          +
          66  // Adafruit_Mahony filter; // fastest/smallest
          +
          67 
          +
          68  Adafruit_Sensor *accelerometer, *gyroscope, *magnetometer;
          +
          69  Adafruit_Sensor_Calibration_EEPROM cal; // use EEPROM on ESP32 module
          +
          70  byte caldata[68]; // buffer to receive magnetic calibration data
          +
          71  byte calcount = 0;
          +
          72  bool isCalibrated = false;
          +
          73  sensors_event_t mag_event, gyro_event, accel_event;
          +
          74  uint32_t timestamp;
          +
          75  uint32_t last_print_time = 0;
          +
          76  float roll, pitch, heading; // rotation values calculated by filter function,
          +
          77  // and reported to outside world
          +
          78  float gx, gy, gz; // angular velocity (gyroscope) calculated by filter
          +
          79  // function, and reported to outside world
          +
          80  // linear acceleration readings are stored in accel_event
          +
          81 
          +
          82  bool initSensors(void);
          +
          83  void setupSensors(void);
          +
          84  void receiveCalibration(void);
          +
          85  uint16_t crc16_update(uint16_t crc, uint8_t a);
          +
          86 };
          +
          87 
          +
          88 #endif //_SENSORS_NXP_FXOS8700_FXAS21002_H
          +
          +
          + + + + + + + +
          void gatherOrientationDataOnce(bool is_print_results)
          + + + +
          void initFilter(int sampling_interval_ms)
          +
          bool connect(uint8_t pin_i2c_sda, uint8_t pin_i2c_scl)
          + + +
          void gatherCalibrationDataOnce(bool is_print_results)
          + + + + diff --git a/docs/setup_8h.html b/docs/generated/docs/setup_8h.html similarity index 81% rename from docs/setup_8h.html rename to docs/generated/docs/setup_8h.html index 4efd42cec..2e4099984 100644 --- a/docs/setup_8h.html +++ b/docs/generated/docs/setup_8h.html @@ -3,7 +3,7 @@ - + SensESP: src/net/web/setup.h File Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
          @@ -97,19 +93,19 @@
          Include dependency graph for setup.h:
          -
          - - - +
          + + +
          This graph shows which files directly or indirectly include this file:
          -
          - - - +
          + + +
          @@ -117,7 +113,7 @@ - +

          Variables

          const char PAGE_setup [] PROGMEM
          const char PAGE_setup[] PROGMEM
           

          Variable Documentation

          @@ -143,9 +139,7 @@

          diff --git a/docs/setup_8h.js b/docs/generated/docs/setup_8h.js similarity index 100% rename from docs/setup_8h.js rename to docs/generated/docs/setup_8h.js diff --git a/docs/setup_8h__dep__incl.map b/docs/generated/docs/setup_8h__dep__incl.map similarity index 100% rename from docs/setup_8h__dep__incl.map rename to docs/generated/docs/setup_8h__dep__incl.map diff --git a/docs/generated/docs/setup_8h__dep__incl.md5 b/docs/generated/docs/setup_8h__dep__incl.md5 new file mode 100644 index 000000000..4c534a28d --- /dev/null +++ b/docs/generated/docs/setup_8h__dep__incl.md5 @@ -0,0 +1 @@ +356d1bdda367a4999b1ff027275561a7 \ No newline at end of file diff --git a/docs/generated/docs/setup_8h__dep__incl.png b/docs/generated/docs/setup_8h__dep__incl.png new file mode 100644 index 000000000..5c4b04377 Binary files /dev/null and b/docs/generated/docs/setup_8h__dep__incl.png differ diff --git a/docs/setup_8h__incl.map b/docs/generated/docs/setup_8h__incl.map similarity index 100% rename from docs/setup_8h__incl.map rename to docs/generated/docs/setup_8h__incl.map diff --git a/docs/generated/docs/setup_8h__incl.md5 b/docs/generated/docs/setup_8h__incl.md5 new file mode 100644 index 000000000..01b5408c5 --- /dev/null +++ b/docs/generated/docs/setup_8h__incl.md5 @@ -0,0 +1 @@ +8bcda0043a87610f50a002b7f110a6b7 \ No newline at end of file diff --git a/docs/generated/docs/setup_8h__incl.png b/docs/generated/docs/setup_8h__incl.png new file mode 100644 index 000000000..892c52eb1 Binary files /dev/null and b/docs/generated/docs/setup_8h__incl.png differ diff --git a/docs/generated/docs/setup_8h_source.html b/docs/generated/docs/setup_8h_source.html new file mode 100644 index 000000000..a59e3fd5a --- /dev/null +++ b/docs/generated/docs/setup_8h_source.html @@ -0,0 +1,162 @@ + + + + + + + +SensESP: src/net/web/setup.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          setup.h
          +
          +
          +Go to the documentation of this file.
          1 #include <pgmspace.h>
          +
          2 const char PAGE_setup[] PROGMEM = R"=====(
          +
          3 <html>
          +
          4  <head>
          +
          5  <title>Configure SensESP Device</title>
          +
          6 
          +
          7 <style>
          +
          8 /* Remove default bullets */
          +
          9 ul, #tree {
          +
          10  list-style-type: none;
          +
          11 }
          +
          12 
          +
          13 /* Remove margins and padding from the parent ul */
          +
          14 #tree {
          +
          15  margin: 0;
          +
          16  padding: 0;
          +
          17 }
          +
          18 
          +
          19 /* Style the caret/arrow */
          +
          20 .caret, .selectable {
          +
          21  cursor: pointer;
          +
          22  user-select: none; /* Prevent text selection */
          +
          23 }
          +
          24 
          +
          25 
          +
          26 /* Create the caret/arrow with a unicode, and style it */
          +
          27 .caret::before {
          +
          28  content: "\25B6";
          +
          29  color: black;
          +
          30  display: inline-block;
          +
          31  margin-right: 6px;
          +
          32 }
          +
          33 
          +
          34 /* Rotate the caret/arrow icon when clicked on (using JavaScript) */
          +
          35 .caret-down::before {
          +
          36  transform: rotate(90deg);
          +
          37 }
          +
          38 
          +
          39 /* Hide the nested list */
          +
          40 .nested {
          +
          41  display: none;
          +
          42 }
          +
          43 
          +
          44 /* Show the nested list when the user clicks on the caret/arrow (with JavaScript) */
          +
          45 .active {
          +
          46  display: block;
          +
          47 }
          +
          48 </style>
          +
          49 
          +
          50 <script src="/js/jsoneditor.min.js"></script>
          +
          51 <script src="/js/sensesp.js"></script>
          +
          52 </head>
          +
          53 
          +
          54 <body onload="showConfigTree()">
          +
          55 <h1>SensESP Device</h1>
          +
          56 <div id="mountNode">
          +
          57 </div>
          +
          58 </body>
          +
          59 </html>
          +
          60 
          +
          61 )=====";
          +
          +
          +
          const char PAGE_setup[] PROGMEM
          Definition: setup.h:2
          + + + + diff --git a/docs/generated/docs/sht31_8cpp.html b/docs/generated/docs/sht31_8cpp.html new file mode 100644 index 000000000..a95e24bf7 --- /dev/null +++ b/docs/generated/docs/sht31_8cpp.html @@ -0,0 +1,134 @@ + + + + + + + +SensESP: src/sensors/sht31.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          sht31.cpp File Reference
          +
          +
          +
          #include "sht31.h"
          +#include <RemoteDebug.h>
          +#include "sensesp.h"
          +
          +Include dependency graph for sht31.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/sht31_8cpp__incl.map b/docs/generated/docs/sht31_8cpp__incl.map new file mode 100644 index 000000000..3bc1179cb --- /dev/null +++ b/docs/generated/docs/sht31_8cpp__incl.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/sht31_8cpp__incl.md5 b/docs/generated/docs/sht31_8cpp__incl.md5 new file mode 100644 index 000000000..e1cd38604 --- /dev/null +++ b/docs/generated/docs/sht31_8cpp__incl.md5 @@ -0,0 +1 @@ +5b8fd17c6a5557f90f958c6e0e494083 \ No newline at end of file diff --git a/docs/generated/docs/sht31_8cpp__incl.png b/docs/generated/docs/sht31_8cpp__incl.png new file mode 100644 index 000000000..07e2cf2bf Binary files /dev/null and b/docs/generated/docs/sht31_8cpp__incl.png differ diff --git a/docs/generated/docs/sht31_8cpp_source.html b/docs/generated/docs/sht31_8cpp_source.html new file mode 100644 index 000000000..1ac7d178b --- /dev/null +++ b/docs/generated/docs/sht31_8cpp_source.html @@ -0,0 +1,185 @@ + + + + + + + +SensESP: src/sensors/sht31.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          sht31.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "sht31.h"
          +
          2 
          +
          3 #include <RemoteDebug.h>
          +
          4 
          +
          5 #include "sensesp.h"
          +
          6 
          +
          7 // SHT31 represents an ADAfruit (or compatible) SHT31 temperature & humidity
          +
          8 // sensor.
          +
          9 SHT31::SHT31(uint8_t addr, String config_path)
          +
          10  : Sensor(config_path), addr{addr} {
          +
          11  load_configuration();
          +
          12  adafruit_sht31 = new Adafruit_SHT31();
          +
          13  if (!adafruit_sht31->begin(addr)) {
          +
          14  debugE("Could not find a valid SHT31 sensor: check address and wiring");
          +
          15  }
          +
          16 }
          +
          17 
          +
          18 // SHT31Value reads and outputs the specified type of value of a SHT31 sensor
          +
          19 SHT31Value::SHT31Value(SHT31* sht31, SHT31ValType val_type, uint read_delay,
          +
          20  String config_path)
          +
          21  : NumericSensor(config_path),
          +
          22  sht31{sht31},
          +
          23  val_type{val_type},
          +
          24  read_delay{read_delay} {
          +
          25  load_configuration();
          +
          26 }
          +
          27 
          +
          28 // SHT31 outputs temp in Celsius. Need to convert to Kelvin before sending to
          +
          29 // Signal K. Humidity is output in relative humidity (0 - 100%)
          + +
          31  app.onRepeat(read_delay, [this]() {
          +
          32  if (val_type == temperature) {
          +
          33  output = sht31->adafruit_sht31->readTemperature() +
          +
          34  273.15; // Kelvin is Celsius + 273.15
          +
          35  } else if (val_type == humidity) {
          +
          36  output = sht31->adafruit_sht31->readHumidity();
          +
          37  } else
          +
          38  output = 0.0;
          +
          39 
          +
          40  notify();
          +
          41  });
          +
          42 }
          +
          43 
          +
          44 void SHT31Value::get_configuration(JsonObject& root) {
          +
          45  root["read_delay"] = read_delay;
          +
          46  root["value"] = output;
          +
          47 };
          +
          48 
          +
          49 static const char SCHEMA[] PROGMEM = R"###({
          +
          50  "type": "object",
          +
          51  "properties": {
          +
          52  "read_delay": { "title": "Read delay", "type": "number", "description": "The time, in milliseconds, between each read of the input" },
          +
          53  "value": { "title": "Last value", "type" : "number", "readOnly": true }
          +
          54  }
          +
          55  })###";
          +
          56 
          +
          57 String SHT31Value::get_config_schema() { return FPSTR(SCHEMA); }
          +
          58 
          +
          59 bool SHT31Value::set_configuration(const JsonObject& config) {
          +
          60  String expected[] = {"read_delay"};
          +
          61  for (auto str : expected) {
          +
          62  if (!config.containsKey(str)) {
          +
          63  return false;
          +
          64  }
          +
          65  }
          +
          66  read_delay = config["read_delay"];
          +
          67  return true;
          +
          68 }
          +
          +
          +
          SHT31Value(SHT31 *sht31, SHT31ValType val_type, uint read_delay=500, String config_path="")
          Definition: sht31.cpp:19
          +
          @ temperature
          Definition: bme280.h:32
          +
          void notify()
          Definition: observable.cpp:3
          +
          SHT31ValType
          Definition: sht31.h:27
          +
          Adafruit_SHT31 * adafruit_sht31
          Definition: sht31.h:19
          + +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          + +
          SHT31(uint8_t addr=0x44, String config_path="")
          Definition: sht31.cpp:9
          +
          SHT31 * sht31
          Definition: sht31.h:35
          +
          Definition: sht31.h:16
          + + +
          ReactESP app
          +
          void enable() override final
          Definition: sht31.cpp:30
          +
          @ humidity
          Definition: bme280.h:32
          +
          Definition: sensor.h:15
          + + + + diff --git a/docs/generated/docs/sht31_8h.html b/docs/generated/docs/sht31_8h.html new file mode 100644 index 000000000..9971c7a12 --- /dev/null +++ b/docs/generated/docs/sht31_8h.html @@ -0,0 +1,204 @@ + + + + + + + +SensESP: src/sensors/sht31.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          sht31.h File Reference
          +
          +
          +
          #include <Adafruit_SHT31.h>
          +#include <Wire.h>
          +#include "sensor.h"
          +
          +Include dependency graph for sht31.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + +
          +
          +

          Go to the source code of this file.

          + + + + + + +

          +Classes

          class  SHT31
           
          class  SHT31Value
           
          + + + +

          +Typedefs

          typedef SHT31Value SHT31value
           
          + + + +

          +Enumerations

          enum  SHT31ValType { temperature, +humidity + }
           
          +

          Typedef Documentation

          + +

          ◆ SHT31value

          + +
          +
          + + + + +
          typedef SHT31Value SHT31value
          +
          + +

          Definition at line 47 of file sht31.h.

          + +
          +
          +

          Enumeration Type Documentation

          + +

          ◆ SHT31ValType

          + +
          +
          + + + + +
          enum SHT31ValType
          +
          + + + +
          Enumerator
          temperature 
          humidity 
          + +

          Definition at line 27 of file sht31.h.

          + +
          +
          +
          +
          + + + + diff --git a/docs/generated/docs/sht31_8h.js b/docs/generated/docs/sht31_8h.js new file mode 100644 index 000000000..0f9be07e4 --- /dev/null +++ b/docs/generated/docs/sht31_8h.js @@ -0,0 +1,10 @@ +var sht31_8h = +[ + [ "SHT31", "class_s_h_t31.html", "class_s_h_t31" ], + [ "SHT31Value", "class_s_h_t31_value.html", "class_s_h_t31_value" ], + [ "SHT31value", "sht31_8h.html#a4c30892c341612f9799ac178cf78112d", null ], + [ "SHT31ValType", "sht31_8h.html#a6c9ef8dce1c0c00daf564286ec45ce04", [ + [ "temperature", "sht31_8h.html#a6c9ef8dce1c0c00daf564286ec45ce04a9922a43d37bee3212593f77ce4ec82f3", null ], + [ "humidity", "sht31_8h.html#a6c9ef8dce1c0c00daf564286ec45ce04af78a0094726cca324b69464b475ed069", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/generated/docs/sht31_8h__dep__incl.map b/docs/generated/docs/sht31_8h__dep__incl.map new file mode 100644 index 000000000..63003ed21 --- /dev/null +++ b/docs/generated/docs/sht31_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/sht31_8h__dep__incl.md5 b/docs/generated/docs/sht31_8h__dep__incl.md5 new file mode 100644 index 000000000..c0351a170 --- /dev/null +++ b/docs/generated/docs/sht31_8h__dep__incl.md5 @@ -0,0 +1 @@ +e20634f924e85ce49151faca34487d8c \ No newline at end of file diff --git a/docs/generated/docs/sht31_8h__dep__incl.png b/docs/generated/docs/sht31_8h__dep__incl.png new file mode 100644 index 000000000..58214c2b5 Binary files /dev/null and b/docs/generated/docs/sht31_8h__dep__incl.png differ diff --git a/docs/generated/docs/sht31_8h__incl.map b/docs/generated/docs/sht31_8h__incl.map new file mode 100644 index 000000000..184fe92cc --- /dev/null +++ b/docs/generated/docs/sht31_8h__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/sht31_8h__incl.md5 b/docs/generated/docs/sht31_8h__incl.md5 new file mode 100644 index 000000000..071e52028 --- /dev/null +++ b/docs/generated/docs/sht31_8h__incl.md5 @@ -0,0 +1 @@ +542cdb6ca4e9e1234b860ed9dafbf8c6 \ No newline at end of file diff --git a/docs/generated/docs/sht31_8h__incl.png b/docs/generated/docs/sht31_8h__incl.png new file mode 100644 index 000000000..76ace3619 Binary files /dev/null and b/docs/generated/docs/sht31_8h__incl.png differ diff --git a/docs/generated/docs/sht31_8h_source.html b/docs/generated/docs/sht31_8h_source.html new file mode 100644 index 000000000..657df6511 --- /dev/null +++ b/docs/generated/docs/sht31_8h_source.html @@ -0,0 +1,164 @@ + + + + + + + +SensESP: src/sensors/sht31.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          sht31.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _sht31_H_
          +
          2 #define _sht31_H_
          +
          3 
          +
          4 #include <Adafruit_SHT31.h>
          +
          5 #include <Wire.h>
          +
          6 
          +
          7 #include "sensor.h"
          +
          8 
          +
          9 // The SHT31 classes are based on the ADAfruit_SHT31 library.
          +
          10 
          +
          11 // SHT31 represents an ADAfruit (or compatible) SHT31 temperature & humidity
          +
          12 // sensor. The constructor creates a pointer to the instance, and starts up the
          +
          13 // sensor. The pointer is passed to SHT31value, which retrieves the specified
          +
          14 // value.
          +
          15 
          +
          16 class SHT31 : public Sensor {
          +
          17  public:
          +
          18  SHT31(uint8_t addr = 0x44, String config_path = "");
          +
          19  Adafruit_SHT31* adafruit_sht31;
          +
          20 
          +
          21  private:
          +
          22  uint8_t addr;
          +
          23 };
          +
          24 
          +
          25 // Pass one of these in the constructor to SHT31value() to tell which type of
          +
          26 // value you want to output
          + +
          28 
          +
          29 // SHT31Value reads and outputs the specified value of a SHT31 sensor.
          +
          30 class SHT31Value : public NumericSensor {
          +
          31  public:
          +
          32  SHT31Value(SHT31* sht31, SHT31ValType val_type, uint read_delay = 500,
          +
          33  String config_path = "");
          +
          34  void enable() override final;
          + +
          36 
          +
          37  private:
          +
          38  SHT31ValType val_type;
          +
          39  uint read_delay;
          +
          40  virtual void get_configuration(JsonObject& doc) override;
          +
          41  virtual bool set_configuration(const JsonObject& config) override;
          +
          42  virtual String get_config_schema() override;
          +
          43 };
          +
          44 
          +
          45 // FIXME: Uncomment the following once the PIO Xtensa toolchain is updated
          +
          46 // [[deprecated("Use SHT31Value instead.")]]
          + +
          48 
          +
          49 #endif
          +
          +
          +
          SHT31Value(SHT31 *sht31, SHT31ValType val_type, uint read_delay=500, String config_path="")
          Definition: sht31.cpp:19
          +
          SHT31ValType
          Definition: sht31.h:27
          +
          Adafruit_SHT31 * adafruit_sht31
          Definition: sht31.h:19
          +
          @ temperature
          Definition: sht31.h:27
          + + +
          SHT31(uint8_t addr=0x44, String config_path="")
          Definition: sht31.cpp:9
          +
          SHT31 * sht31
          Definition: sht31.h:35
          +
          Definition: sht31.h:16
          +
          @ humidity
          Definition: sht31.h:27
          + +
          const String config_path
          Definition: configurable.h:31
          +
          SHT31Value SHT31value
          Definition: sht31.h:47
          +
          void enable() override final
          Definition: sht31.cpp:30
          +
          Definition: sensor.h:15
          + + + + diff --git a/docs/signalk__delta_8cpp.html b/docs/generated/docs/signalk__delta_8cpp.html similarity index 79% rename from docs/signalk__delta_8cpp.html rename to docs/generated/docs/signalk__delta_8cpp.html index 4c5122e99..30306e523 100644 --- a/docs/signalk__delta_8cpp.html +++ b/docs/generated/docs/signalk__delta_8cpp.html @@ -3,7 +3,7 @@ - + SensESP: src/signalk/signalk_delta.cpp File Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
          @@ -98,16 +94,16 @@
          Include dependency graph for signalk_delta.cpp:
          -
          - - - - - - - - - +
          + + + + + + + + +
          @@ -118,9 +114,7 @@ diff --git a/docs/signalk__delta_8cpp__incl.map b/docs/generated/docs/signalk__delta_8cpp__incl.map similarity index 100% rename from docs/signalk__delta_8cpp__incl.map rename to docs/generated/docs/signalk__delta_8cpp__incl.map diff --git a/docs/generated/docs/signalk__delta_8cpp__incl.md5 b/docs/generated/docs/signalk__delta_8cpp__incl.md5 new file mode 100644 index 000000000..9cd4e136b --- /dev/null +++ b/docs/generated/docs/signalk__delta_8cpp__incl.md5 @@ -0,0 +1 @@ +b814e9e99d78118fb5767bef2299e440 \ No newline at end of file diff --git a/docs/generated/docs/signalk__delta_8cpp__incl.png b/docs/generated/docs/signalk__delta_8cpp__incl.png new file mode 100644 index 000000000..19ac9dafd Binary files /dev/null and b/docs/generated/docs/signalk__delta_8cpp__incl.png differ diff --git a/docs/generated/docs/signalk__delta_8cpp_source.html b/docs/generated/docs/signalk__delta_8cpp_source.html new file mode 100644 index 000000000..6908ca931 --- /dev/null +++ b/docs/generated/docs/signalk__delta_8cpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +SensESP: src/signalk/signalk_delta.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_delta.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "signalk_delta.h"
          +
          2 
          +
          3 #include "Arduino.h"
          +
          4 #include "ArduinoJson.h"
          +
          5 #include "sensesp.h"
          +
          6 
          +
          7 SKDelta::SKDelta(const String& hostname, unsigned int max_buffer_size)
          +
          8  : hostname{hostname}, max_buffer_size{max_buffer_size} {}
          +
          9 
          +
          10 void SKDelta::append(const String val) {
          +
          11  if (buffer.size() >= max_buffer_size) {
          +
          12  buffer.pop_back();
          +
          13  }
          +
          14  buffer.push_front(val);
          +
          15 }
          +
          16 
          +
          17 bool SKDelta::data_available() { return buffer.size() > 0; }
          +
          18 
          +
          19 void SKDelta::get_delta(String& output) {
          +
          20  DynamicJsonDocument jsonDoc(1024);
          +
          21 
          +
          22  // JsonObject delta = jsonDoc.as<JsonObject>();
          +
          23  JsonArray updates = jsonDoc.createNestedArray("updates");
          +
          24 
          +
          25  JsonObject current = updates.createNestedObject();
          +
          26  JsonObject source = current.createNestedObject("source");
          +
          27  source["label"] = hostname;
          +
          28  JsonArray values = current.createNestedArray("values");
          +
          29 
          +
          30  while (!buffer.empty()) {
          +
          31  values.add(serialized(buffer.back()));
          +
          32  buffer.pop_back();
          +
          33  }
          +
          34 
          +
          35  serializeJson(jsonDoc, output);
          +
          36 
          +
          37  debugD("SKDelta::get_delta: %s", output.c_str());
          +
          38 }
          +
          +
          +
          void append(const String val)
          +
          @ current
          Definition: ina219.h:30
          +
          SKDelta(const String &hostname, unsigned int max_buffer_size=20)
          +
          void get_delta(String &output)
          + +
          bool data_available()
          + +
          ObservableValue< String > * hostname
          Definition: sensesp_app.cpp:56
          + + + + diff --git a/docs/generated/docs/signalk__delta_8h.html b/docs/generated/docs/signalk__delta_8h.html new file mode 100644 index 000000000..fa14a19a6 --- /dev/null +++ b/docs/generated/docs/signalk__delta_8h.html @@ -0,0 +1,143 @@ + + + + + + + +SensESP: src/signalk/signalk_delta.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          signalk_delta.h File Reference
          +
          +
          +
          #include <list>
          +#include "ArduinoJson.h"
          +
          +Include dependency graph for signalk_delta.h:
          +
          +
          + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  SKDelta
           
          +
          +
          + + + + diff --git a/docs/generated/docs/signalk__delta_8h__dep__incl.map b/docs/generated/docs/signalk__delta_8h__dep__incl.map new file mode 100644 index 000000000..e7cb67b68 --- /dev/null +++ b/docs/generated/docs/signalk__delta_8h__dep__incl.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/signalk__delta_8h__dep__incl.md5 b/docs/generated/docs/signalk__delta_8h__dep__incl.md5 new file mode 100644 index 000000000..fab6f14ab --- /dev/null +++ b/docs/generated/docs/signalk__delta_8h__dep__incl.md5 @@ -0,0 +1 @@ +2e4a8ba3126bb756c7be35ba66ebaf07 \ No newline at end of file diff --git a/docs/generated/docs/signalk__delta_8h__dep__incl.png b/docs/generated/docs/signalk__delta_8h__dep__incl.png new file mode 100644 index 000000000..1dc05f917 Binary files /dev/null and b/docs/generated/docs/signalk__delta_8h__dep__incl.png differ diff --git a/docs/signalk__delta_8h__incl.map b/docs/generated/docs/signalk__delta_8h__incl.map similarity index 100% rename from docs/signalk__delta_8h__incl.map rename to docs/generated/docs/signalk__delta_8h__incl.map diff --git a/docs/generated/docs/signalk__delta_8h__incl.md5 b/docs/generated/docs/signalk__delta_8h__incl.md5 new file mode 100644 index 000000000..6b3c7780d --- /dev/null +++ b/docs/generated/docs/signalk__delta_8h__incl.md5 @@ -0,0 +1 @@ +7335f596743681867dbd0011594deed2 \ No newline at end of file diff --git a/docs/generated/docs/signalk__delta_8h__incl.png b/docs/generated/docs/signalk__delta_8h__incl.png new file mode 100644 index 000000000..6a8a7701b Binary files /dev/null and b/docs/generated/docs/signalk__delta_8h__incl.png differ diff --git a/docs/generated/docs/signalk__delta_8h_source.html b/docs/generated/docs/signalk__delta_8h_source.html new file mode 100644 index 000000000..151383b80 --- /dev/null +++ b/docs/generated/docs/signalk__delta_8h_source.html @@ -0,0 +1,131 @@ + + + + + + + +SensESP: src/signalk/signalk_delta.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_delta.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _signalk_delta_H_
          +
          2 #define _signalk_delta_H_
          +
          3 
          +
          4 #include <list>
          +
          5 
          +
          6 #include "ArduinoJson.h"
          +
          7 
          +
          9 // Signal K delta message representation
          +
          10 
          +
          11 class SKDelta {
          +
          12  public:
          +
          13  SKDelta(const String& hostname, unsigned int max_buffer_size = 20);
          +
          14  void append(const String val);
          +
          15  bool data_available();
          +
          16  void get_delta(String& output);
          +
          17  void set_hostname(String hostname) { this->hostname = hostname; }
          +
          18 
          +
          19  private:
          +
          20  String hostname;
          +
          21  unsigned int max_buffer_size;
          +
          22  std::list<String> buffer;
          +
          23 };
          +
          24 
          +
          25 #endif
          +
          +
          +
          void append(const String val)
          +
          void set_hostname(String hostname)
          Definition: signalk_delta.h:17
          + +
          SKDelta(const String &hostname, unsigned int max_buffer_size=20)
          +
          void get_delta(String &output)
          +
          bool data_available()
          +
          ObservableValue< String > * hostname
          Definition: sensesp_app.cpp:56
          + + + + diff --git a/docs/generated/docs/signalk__emitter_8cpp.html b/docs/generated/docs/signalk__emitter_8cpp.html new file mode 100644 index 000000000..2a67a0272 --- /dev/null +++ b/docs/generated/docs/signalk__emitter_8cpp.html @@ -0,0 +1,127 @@ + + + + + + + +SensESP: src/signalk/signalk_emitter.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_emitter.cpp File Reference
          +
          +
          +
          #include "signalk_emitter.h"
          +
          +Include dependency graph for signalk_emitter.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/signalk__emitter_8cpp__incl.map b/docs/generated/docs/signalk__emitter_8cpp__incl.map new file mode 100644 index 000000000..ed95e04f3 --- /dev/null +++ b/docs/generated/docs/signalk__emitter_8cpp__incl.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/signalk__emitter_8cpp__incl.md5 b/docs/generated/docs/signalk__emitter_8cpp__incl.md5 new file mode 100644 index 000000000..7101b7a00 --- /dev/null +++ b/docs/generated/docs/signalk__emitter_8cpp__incl.md5 @@ -0,0 +1 @@ +ae6e960f5e482453435ff34e7722abf1 \ No newline at end of file diff --git a/docs/generated/docs/signalk__emitter_8cpp__incl.png b/docs/generated/docs/signalk__emitter_8cpp__incl.png new file mode 100644 index 000000000..9a9cac73a Binary files /dev/null and b/docs/generated/docs/signalk__emitter_8cpp__incl.png differ diff --git a/docs/generated/docs/signalk__emitter_8cpp_source.html b/docs/generated/docs/signalk__emitter_8cpp_source.html new file mode 100644 index 000000000..39bbbaa41 --- /dev/null +++ b/docs/generated/docs/signalk__emitter_8cpp_source.html @@ -0,0 +1,110 @@ + + + + + + + +SensESP: src/signalk/signalk_emitter.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_emitter.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "signalk_emitter.h"
          +
          2 
          +
          3 std::vector<SKEmitter*> SKEmitter::sources;
          +
          4 
          +
          5 SKEmitter::SKEmitter(String sk_path) : sk_path{sk_path} {
          +
          6  sources.push_back(this);
          +
          7 }
          +
          +
          +
          SKEmitter(String sk_path)
          +
          String sk_path
          + + + + + diff --git a/docs/generated/docs/signalk__emitter_8h.html b/docs/generated/docs/signalk__emitter_8h.html new file mode 100644 index 000000000..1b6cf03c7 --- /dev/null +++ b/docs/generated/docs/signalk__emitter_8h.html @@ -0,0 +1,157 @@ + + + + + + + +SensESP: src/signalk/signalk_emitter.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          signalk_emitter.h File Reference
          +
          +
          +
          #include <ArduinoJson.h>
          +#include <set>
          +#include "Arduino.h"
          +#include "sensesp.h"
          +#include "system/configurable.h"
          +#include "system/observable.h"
          +#include "system/valueproducer.h"
          +
          +Include dependency graph for signalk_emitter.h:
          +
          +
          + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  SKEmitter
           
          +
          +
          + + + + diff --git a/docs/generated/docs/signalk__emitter_8h__dep__incl.map b/docs/generated/docs/signalk__emitter_8h__dep__incl.map new file mode 100644 index 000000000..da3b8fe1a --- /dev/null +++ b/docs/generated/docs/signalk__emitter_8h__dep__incl.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/docs/generated/docs/signalk__emitter_8h__dep__incl.md5 b/docs/generated/docs/signalk__emitter_8h__dep__incl.md5 new file mode 100644 index 000000000..dd3b40f89 --- /dev/null +++ b/docs/generated/docs/signalk__emitter_8h__dep__incl.md5 @@ -0,0 +1 @@ +4b8989f7ebdddd2e95730481ccc33b92 \ No newline at end of file diff --git a/docs/generated/docs/signalk__emitter_8h__dep__incl.png b/docs/generated/docs/signalk__emitter_8h__dep__incl.png new file mode 100644 index 000000000..98ae23940 Binary files /dev/null and b/docs/generated/docs/signalk__emitter_8h__dep__incl.png differ diff --git a/docs/generated/docs/signalk__emitter_8h__incl.map b/docs/generated/docs/signalk__emitter_8h__incl.map new file mode 100644 index 000000000..93b838380 --- /dev/null +++ b/docs/generated/docs/signalk__emitter_8h__incl.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/signalk__emitter_8h__incl.md5 b/docs/generated/docs/signalk__emitter_8h__incl.md5 new file mode 100644 index 000000000..3638cb27a --- /dev/null +++ b/docs/generated/docs/signalk__emitter_8h__incl.md5 @@ -0,0 +1 @@ +b217a39700200ac5a77b1c9f2182f1c4 \ No newline at end of file diff --git a/docs/generated/docs/signalk__emitter_8h__incl.png b/docs/generated/docs/signalk__emitter_8h__incl.png new file mode 100644 index 000000000..08ea7d23d Binary files /dev/null and b/docs/generated/docs/signalk__emitter_8h__incl.png differ diff --git a/docs/generated/docs/signalk__emitter_8h_source.html b/docs/generated/docs/signalk__emitter_8h_source.html new file mode 100644 index 000000000..4346cbdd9 --- /dev/null +++ b/docs/generated/docs/signalk__emitter_8h_source.html @@ -0,0 +1,145 @@ + + + + + + + +SensESP: src/signalk/signalk_emitter.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_emitter.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _signalk_emitter_H_
          +
          2 #define _signalk_emitter_H_
          +
          3 
          +
          4 #include <ArduinoJson.h>
          +
          5 
          +
          6 #include <set>
          +
          7 
          +
          8 #include "Arduino.h"
          +
          9 #include "sensesp.h"
          +
          10 #include "system/configurable.h"
          +
          11 #include "system/observable.h"
          +
          12 #include "system/valueproducer.h"
          +
          13 
          +
          19 class SKEmitter : virtual public Observable {
          +
          20  public:
          +
          26  SKEmitter(String sk_path);
          +
          27 
          +
          32  virtual String as_signalk() { return "not implemented"; }
          +
          33 
          +
          39  String& get_sk_path() { return sk_path; }
          +
          40 
          +
          41  void set_sk_path(const String& path) { sk_path = path; }
          +
          42 
          +
          43  static const std::vector<SKEmitter*>& get_sources() { return sources; }
          +
          44 
          +
          45  protected:
          +
          46  String sk_path;
          +
          47 
          +
          48  private:
          +
          49  static std::vector<SKEmitter*> sources;
          +
          50 };
          +
          51 
          +
          52 #endif
          +
          +
          +
          SKEmitter(String sk_path)
          +
          void set_sk_path(const String &path)
          +
          static const std::vector< SKEmitter * > & get_sources()
          + +
          String & get_sk_path()
          +
          String sk_path
          +
          virtual String as_signalk()
          + + + + + + + + + diff --git a/docs/generated/docs/signalk__listener_8cpp.html b/docs/generated/docs/signalk__listener_8cpp.html new file mode 100644 index 000000000..9d3de0eb2 --- /dev/null +++ b/docs/generated/docs/signalk__listener_8cpp.html @@ -0,0 +1,127 @@ + + + + + + + +SensESP: src/signalk/signalk_listener.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_listener.cpp File Reference
          +
          +
          +
          #include "signalk_listener.h"
          +
          +Include dependency graph for signalk_listener.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/signalk__listener_8cpp__incl.map b/docs/generated/docs/signalk__listener_8cpp__incl.map new file mode 100644 index 000000000..9fdf80c68 --- /dev/null +++ b/docs/generated/docs/signalk__listener_8cpp__incl.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/signalk__listener_8cpp__incl.md5 b/docs/generated/docs/signalk__listener_8cpp__incl.md5 new file mode 100644 index 000000000..d13890eae --- /dev/null +++ b/docs/generated/docs/signalk__listener_8cpp__incl.md5 @@ -0,0 +1 @@ +c33f4291374c8daed084cbf65c2ace80 \ No newline at end of file diff --git a/docs/generated/docs/signalk__listener_8cpp__incl.png b/docs/generated/docs/signalk__listener_8cpp__incl.png new file mode 100644 index 000000000..c8c3aedd3 Binary files /dev/null and b/docs/generated/docs/signalk__listener_8cpp__incl.png differ diff --git a/docs/generated/docs/signalk__listener_8cpp_source.html b/docs/generated/docs/signalk__listener_8cpp_source.html new file mode 100644 index 000000000..df7adf4cb --- /dev/null +++ b/docs/generated/docs/signalk__listener_8cpp_source.html @@ -0,0 +1,111 @@ + + + + + + + +SensESP: src/signalk/signalk_listener.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_listener.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "signalk_listener.h"
          +
          2 
          +
          3 std::vector<SKListener*> SKListener::listeners;
          +
          4 
          +
          5 SKListener::SKListener(String sk_path, int listen_delay)
          +
          6  : sk_path{sk_path}, listen_delay{listen_delay} {
          +
          7  listeners.push_back(this);
          +
          8 }
          +
          +
          + + +
          SKListener(String sk_path, int listen_delay)
          + + + + diff --git a/docs/generated/docs/signalk__listener_8h.html b/docs/generated/docs/signalk__listener_8h.html new file mode 100644 index 000000000..66362e100 --- /dev/null +++ b/docs/generated/docs/signalk__listener_8h.html @@ -0,0 +1,151 @@ + + + + + + + +SensESP: src/signalk/signalk_listener.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          signalk_listener.h File Reference
          +
          +
          +
          #include <ArduinoJson.h>
          +#include <set>
          +#include "Arduino.h"
          +#include "sensesp.h"
          +#include "system/configurable.h"
          +#include "system/observable.h"
          +#include "system/valueproducer.h"
          +
          +Include dependency graph for signalk_listener.h:
          +
          +
          + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  SKListener
           
          +
          +
          + + + + diff --git a/docs/generated/docs/signalk__listener_8h__dep__incl.map b/docs/generated/docs/signalk__listener_8h__dep__incl.map new file mode 100644 index 000000000..2f68c6cac --- /dev/null +++ b/docs/generated/docs/signalk__listener_8h__dep__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/generated/docs/signalk__listener_8h__dep__incl.md5 b/docs/generated/docs/signalk__listener_8h__dep__incl.md5 new file mode 100644 index 000000000..777c42487 --- /dev/null +++ b/docs/generated/docs/signalk__listener_8h__dep__incl.md5 @@ -0,0 +1 @@ +5cccbadab6aaf9c71ab9cbf85a0692f7 \ No newline at end of file diff --git a/docs/generated/docs/signalk__listener_8h__dep__incl.png b/docs/generated/docs/signalk__listener_8h__dep__incl.png new file mode 100644 index 000000000..b5cdead09 Binary files /dev/null and b/docs/generated/docs/signalk__listener_8h__dep__incl.png differ diff --git a/docs/generated/docs/signalk__listener_8h__incl.map b/docs/generated/docs/signalk__listener_8h__incl.map new file mode 100644 index 000000000..054ec82e1 --- /dev/null +++ b/docs/generated/docs/signalk__listener_8h__incl.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/signalk__listener_8h__incl.md5 b/docs/generated/docs/signalk__listener_8h__incl.md5 new file mode 100644 index 000000000..b1dededa2 --- /dev/null +++ b/docs/generated/docs/signalk__listener_8h__incl.md5 @@ -0,0 +1 @@ +292a12a53e18846801d277128a409db1 \ No newline at end of file diff --git a/docs/generated/docs/signalk__listener_8h__incl.png b/docs/generated/docs/signalk__listener_8h__incl.png new file mode 100644 index 000000000..628a61490 Binary files /dev/null and b/docs/generated/docs/signalk__listener_8h__incl.png differ diff --git a/docs/generated/docs/signalk__listener_8h_source.html b/docs/generated/docs/signalk__listener_8h_source.html new file mode 100644 index 000000000..39fbe4f45 --- /dev/null +++ b/docs/generated/docs/signalk__listener_8h_source.html @@ -0,0 +1,146 @@ + + + + + + + +SensESP: src/signalk/signalk_listener.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_listener.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _signalk_listener_H_
          +
          2 #define _signalk_listener_H_
          +
          3 
          +
          4 #include <ArduinoJson.h>
          +
          5 
          +
          6 #include <set>
          +
          7 
          +
          8 #include "Arduino.h"
          +
          9 #include "sensesp.h"
          +
          10 #include "system/configurable.h"
          +
          11 #include "system/observable.h"
          +
          12 #include "system/valueproducer.h"
          +
          13 
          +
          18 class SKListener : virtual public Observable {
          +
          19  public:
          +
          27  SKListener(String sk_path, int listen_delay);
          +
          28 
          +
          34  String& get_sk_path() { return sk_path; }
          +
          35 
          +
          36  int get_listen_delay() { return listen_delay; }
          +
          37 
          +
          38  virtual void parse_value(JsonObject& json) {}
          +
          39 
          +
          40  static const std::vector<SKListener*>& get_listeners() { return listeners; }
          +
          41 
          +
          42  protected:
          +
          43  String sk_path;
          +
          44 
          +
          45  private:
          +
          46  static std::vector<SKListener*> listeners;
          +
          47  int listen_delay;
          +
          48 };
          +
          49 
          +
          50 #endif
          +
          +
          +
          static const std::vector< SKListener * > & get_listeners()
          +
          String & get_sk_path()
          + +
          virtual void parse_value(JsonObject &json)
          +
          int get_listen_delay()
          + + + + + + +
          SKListener(String sk_path, int listen_delay)
          + + + + diff --git a/docs/signalk__output_8h.html b/docs/generated/docs/signalk__output_8h.html similarity index 77% rename from docs/signalk__output_8h.html rename to docs/generated/docs/signalk__output_8h.html index bab3bc2c9..bdc8d4633 100644 --- a/docs/signalk__output_8h.html +++ b/docs/generated/docs/signalk__output_8h.html @@ -3,7 +3,7 @@ - + SensESP: src/signalk/signalk_output.h File Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
          @@ -99,40 +95,41 @@
          Include dependency graph for signalk_output.h:
          -
          - - - - - - - - - - - - - - - - - - - - - +
          + + + + + + + + + + + + + + + + + + + + +
          This graph shows which files directly or indirectly include this file:
          -
          - - - - - - +
          + + + + + + +
          @@ -167,7 +164,7 @@

          -

          Definition at line 67 of file signalk_output.h.

          +

          Definition at line 57 of file signalk_output.h.

          @@ -183,7 +180,7 @@

          -

          Definition at line 66 of file signalk_output.h.

          +

          Definition at line 56 of file signalk_output.h.

          @@ -199,7 +196,7 @@

          -

          Definition at line 65 of file signalk_output.h.

          +

          Definition at line 55 of file signalk_output.h.

          @@ -215,7 +212,7 @@

          -

          Definition at line 68 of file signalk_output.h.

          +

          Definition at line 58 of file signalk_output.h.

          @@ -225,9 +222,7 @@

          diff --git a/docs/signalk__output_8h.js b/docs/generated/docs/signalk__output_8h.js similarity index 100% rename from docs/signalk__output_8h.js rename to docs/generated/docs/signalk__output_8h.js diff --git a/docs/generated/docs/signalk__output_8h__dep__incl.map b/docs/generated/docs/signalk__output_8h__dep__incl.map new file mode 100644 index 000000000..c8f23a418 --- /dev/null +++ b/docs/generated/docs/signalk__output_8h__dep__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/generated/docs/signalk__output_8h__dep__incl.md5 b/docs/generated/docs/signalk__output_8h__dep__incl.md5 new file mode 100644 index 000000000..9e9b00a00 --- /dev/null +++ b/docs/generated/docs/signalk__output_8h__dep__incl.md5 @@ -0,0 +1 @@ +7037240764c887f2c7cb4637391be055 \ No newline at end of file diff --git a/docs/generated/docs/signalk__output_8h__dep__incl.png b/docs/generated/docs/signalk__output_8h__dep__incl.png new file mode 100644 index 000000000..af5ab3de0 Binary files /dev/null and b/docs/generated/docs/signalk__output_8h__dep__incl.png differ diff --git a/docs/generated/docs/signalk__output_8h__incl.map b/docs/generated/docs/signalk__output_8h__incl.map new file mode 100644 index 000000000..bf773b5ba --- /dev/null +++ b/docs/generated/docs/signalk__output_8h__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/signalk__output_8h__incl.md5 b/docs/generated/docs/signalk__output_8h__incl.md5 new file mode 100644 index 000000000..ea4065a07 --- /dev/null +++ b/docs/generated/docs/signalk__output_8h__incl.md5 @@ -0,0 +1 @@ +2319be6f9ba190d53ae1431d0c6d5bd0 \ No newline at end of file diff --git a/docs/generated/docs/signalk__output_8h__incl.png b/docs/generated/docs/signalk__output_8h__incl.png new file mode 100644 index 000000000..10617335b Binary files /dev/null and b/docs/generated/docs/signalk__output_8h__incl.png differ diff --git a/docs/generated/docs/signalk__output_8h_source.html b/docs/generated/docs/signalk__output_8h_source.html new file mode 100644 index 000000000..bfb2eb307 --- /dev/null +++ b/docs/generated/docs/signalk__output_8h_source.html @@ -0,0 +1,183 @@ + + + + + + + +SensESP: src/signalk/signalk_output.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_output.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _signalk_output_H_
          +
          2 #define _signalk_output_H_
          +
          3 
          + +
          5 #include "transforms/transform.h"
          +
          6 
          +
          7 static const char SIGNALKOUTPUT_SCHEMA[] PROGMEM = R"({
          +
          8  "type": "object",
          +
          9  "properties": {
          +
          10  "sk_path": { "title": "Signal K Path", "type": "string" }
          +
          11  }
          +
          12  })";
          +
          13 
          +
          14 // SKOutput is a specialized transform whose primary purpose is
          +
          15 // to output Signal K data on the Signal K network.
          +
          16 template <typename T>
          +
          17 class SKOutput : public SKEmitter, public SymmetricTransform<T> {
          +
          18  public:
          +
          19  SKOutput() : SKOutput("") {}
          +
          20 
          +
          21  SKOutput(String sk_path, String config_path = "")
          +
          22  : SKEmitter(sk_path), SymmetricTransform<T>(config_path) {
          + +
          24  }
          +
          25 
          +
          26  virtual void set_input(T new_value, uint8_t input_channel = 0) override {
          +
          27  ValueProducer<T>::output = new_value;
          +
          28  this->notify();
          +
          29  }
          +
          30 
          +
          31  virtual String as_signalk() override {
          +
          32  DynamicJsonDocument json_doc(1024);
          +
          33  String json;
          +
          34  json_doc["path"] = this->get_sk_path();
          +
          35  json_doc["value"] = ValueProducer<T>::output;
          +
          36  serializeJson(json_doc, json);
          +
          37  return json;
          +
          38  }
          +
          39 
          +
          40  virtual void get_configuration(JsonObject& root) override {
          +
          41  root["sk_path"] = this->get_sk_path();
          +
          42  }
          +
          43 
          +
          44  String get_config_schema() override { return FPSTR(SIGNALKOUTPUT_SCHEMA); }
          +
          45 
          +
          46  virtual bool set_configuration(const JsonObject& config) override {
          +
          47  if (!config.containsKey("sk_path")) {
          +
          48  return false;
          +
          49  }
          +
          50  this->set_sk_path(config["sk_path"].as<String>());
          +
          51  return true;
          +
          52  }
          +
          53 };
          +
          54 
          + + + + +
          59 
          +
          60 #endif
          +
          +
          +
          virtual String as_signalk() override
          +
          virtual void get_configuration(JsonObject &root) override
          +
          SKOutput(String sk_path, String config_path="")
          +
          void notify()
          Definition: observable.cpp:3
          + +
          virtual bool set_configuration(const JsonObject &config) override
          + +
          void set_sk_path(const String &path)
          +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          +
          SKOutput< bool > SKOutputBool
          +
          virtual void set_input(T new_value, uint8_t input_channel=0) override
          +
          void set_priority(uint8_t priority)
          Definition: enable.h:30
          +
          SKOutput< float > SKOutputNumber
          + +
          String & get_sk_path()
          +
          String sk_path
          + +
          SKOutput< int > SKOutputInt
          +
          SKOutput< String > SKOutputString
          + + + +
          String get_config_schema() override
          + + + + diff --git a/docs/generated/docs/signalk__position_8cpp.html b/docs/generated/docs/signalk__position_8cpp.html new file mode 100644 index 000000000..e41ddce36 --- /dev/null +++ b/docs/generated/docs/signalk__position_8cpp.html @@ -0,0 +1,136 @@ + + + + + + + +SensESP: src/signalk/signalk_position.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_position.cpp File Reference
          +
          +
          +
          #include "signalk_position.h"
          +
          +Include dependency graph for signalk_position.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/signalk__position_8cpp__incl.map b/docs/generated/docs/signalk__position_8cpp__incl.map new file mode 100644 index 000000000..7e641fa10 --- /dev/null +++ b/docs/generated/docs/signalk__position_8cpp__incl.map @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/signalk__position_8cpp__incl.md5 b/docs/generated/docs/signalk__position_8cpp__incl.md5 new file mode 100644 index 000000000..291cdbd45 --- /dev/null +++ b/docs/generated/docs/signalk__position_8cpp__incl.md5 @@ -0,0 +1 @@ +420ef15783605ef1aa6a6817c72e835b \ No newline at end of file diff --git a/docs/generated/docs/signalk__position_8cpp__incl.png b/docs/generated/docs/signalk__position_8cpp__incl.png new file mode 100644 index 000000000..e4e6f21c7 Binary files /dev/null and b/docs/generated/docs/signalk__position_8cpp__incl.png differ diff --git a/docs/generated/docs/signalk__position_8cpp_source.html b/docs/generated/docs/signalk__position_8cpp_source.html new file mode 100644 index 000000000..52eaea1b6 --- /dev/null +++ b/docs/generated/docs/signalk__position_8cpp_source.html @@ -0,0 +1,120 @@ + + + + + + + +SensESP: src/signalk/signalk_position.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_position.cpp
          +
          +
          +Go to the documentation of this file.
          1 
          +
          2 #include "signalk_position.h"
          +
          3 
          +
          4 template <>
          + +
          6  DynamicJsonDocument jsonDoc(1024);
          +
          7  String json;
          +
          8  JsonObject root = jsonDoc.as<JsonObject>();
          +
          9  root["path"] = this->get_sk_path();
          +
          10  JsonObject value = root.createNestedObject("value");
          +
          11  value["latitude"] = output.latitude;
          +
          12  value["longitude"] = output.longitude;
          +
          13  if (output.altitude > -10000) {
          +
          14  value["altitude"] = output.altitude;
          +
          15  }
          +
          16  serializeJson(root, json);
          +
          17  return json;
          +
          18 }
          +
          +
          +
          virtual String as_signalk() override
          + + + + + diff --git a/docs/generated/docs/signalk__position_8h.html b/docs/generated/docs/signalk__position_8h.html new file mode 100644 index 000000000..0773a2411 --- /dev/null +++ b/docs/generated/docs/signalk__position_8h.html @@ -0,0 +1,175 @@ + + + + + + + +SensESP: src/signalk/signalk_position.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          signalk_position.h File Reference
          +
          +
          +
          #include <ArduinoJson.h>
          +#include <set>
          +#include "Arduino.h"
          +#include "sensesp.h"
          +#include "sensors/gps.h"
          +#include "signalk_output.h"
          +
          +Include dependency graph for signalk_position.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Typedefs

          typedef SKOutput< PositionSKOutputPosition
           
          +

          Typedef Documentation

          + +

          ◆ SKOutputPosition

          + +
          +
          + + + + +
          typedef SKOutput<Position> SKOutputPosition
          +
          + +

          Definition at line 19 of file signalk_position.h.

          + +
          +
          +
          +
          + + + + diff --git a/docs/signalk__position_8h.js b/docs/generated/docs/signalk__position_8h.js similarity index 100% rename from docs/signalk__position_8h.js rename to docs/generated/docs/signalk__position_8h.js diff --git a/docs/signalk__position_8h__dep__incl.map b/docs/generated/docs/signalk__position_8h__dep__incl.map similarity index 100% rename from docs/signalk__position_8h__dep__incl.map rename to docs/generated/docs/signalk__position_8h__dep__incl.map diff --git a/docs/generated/docs/signalk__position_8h__dep__incl.md5 b/docs/generated/docs/signalk__position_8h__dep__incl.md5 new file mode 100644 index 000000000..a85e9f264 --- /dev/null +++ b/docs/generated/docs/signalk__position_8h__dep__incl.md5 @@ -0,0 +1 @@ +3d7451751876a04b49202958b1677c53 \ No newline at end of file diff --git a/docs/generated/docs/signalk__position_8h__dep__incl.png b/docs/generated/docs/signalk__position_8h__dep__incl.png new file mode 100644 index 000000000..7ec26613f Binary files /dev/null and b/docs/generated/docs/signalk__position_8h__dep__incl.png differ diff --git a/docs/generated/docs/signalk__position_8h__incl.map b/docs/generated/docs/signalk__position_8h__incl.map new file mode 100644 index 000000000..46553135e --- /dev/null +++ b/docs/generated/docs/signalk__position_8h__incl.map @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/signalk__position_8h__incl.md5 b/docs/generated/docs/signalk__position_8h__incl.md5 new file mode 100644 index 000000000..558056e4c --- /dev/null +++ b/docs/generated/docs/signalk__position_8h__incl.md5 @@ -0,0 +1 @@ +93a0b95d9274433a24e68d7f7051bbec \ No newline at end of file diff --git a/docs/generated/docs/signalk__position_8h__incl.png b/docs/generated/docs/signalk__position_8h__incl.png new file mode 100644 index 000000000..ac694202d Binary files /dev/null and b/docs/generated/docs/signalk__position_8h__incl.png differ diff --git a/docs/generated/docs/signalk__position_8h_source.html b/docs/generated/docs/signalk__position_8h_source.html new file mode 100644 index 000000000..84e5edbaf --- /dev/null +++ b/docs/generated/docs/signalk__position_8h_source.html @@ -0,0 +1,126 @@ + + + + + + + +SensESP: src/signalk/signalk_position.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_position.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _signalk_position_H_
          +
          2 #define _signalk_position_H_
          +
          3 
          +
          4 #include <ArduinoJson.h>
          +
          5 
          +
          6 #include <set>
          +
          7 
          +
          8 #include "Arduino.h"
          +
          9 #include "sensesp.h"
          +
          10 #include "sensors/gps.h"
          +
          11 #include "signalk_output.h"
          +
          12 
          +
          14 // provide correct output formatting for GNSS position
          +
          15 
          +
          16 template <>
          + +
          18 
          + +
          20 
          +
          21 #endif
          +
          +
          +
          virtual String as_signalk() override
          +
          SKOutput< Position > SKOutputPosition
          + + + + + + + + diff --git a/docs/generated/docs/signalk__time_8cpp.html b/docs/generated/docs/signalk__time_8cpp.html new file mode 100644 index 000000000..b470f6082 --- /dev/null +++ b/docs/generated/docs/signalk__time_8cpp.html @@ -0,0 +1,133 @@ + + + + + + + +SensESP: src/signalk/signalk_time.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_time.cpp File Reference
          +
          +
          +
          #include "signalk_time.h"
          +
          +Include dependency graph for signalk_time.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/signalk__time_8cpp__incl.map b/docs/generated/docs/signalk__time_8cpp__incl.map new file mode 100644 index 000000000..f80bfe731 --- /dev/null +++ b/docs/generated/docs/signalk__time_8cpp__incl.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/signalk__time_8cpp__incl.md5 b/docs/generated/docs/signalk__time_8cpp__incl.md5 new file mode 100644 index 000000000..8bdaf6946 --- /dev/null +++ b/docs/generated/docs/signalk__time_8cpp__incl.md5 @@ -0,0 +1 @@ +92833a7481ad2f452dffa4cc5f0f7a32 \ No newline at end of file diff --git a/docs/generated/docs/signalk__time_8cpp__incl.png b/docs/generated/docs/signalk__time_8cpp__incl.png new file mode 100644 index 000000000..d33505bed Binary files /dev/null and b/docs/generated/docs/signalk__time_8cpp__incl.png differ diff --git a/docs/generated/docs/signalk__time_8cpp_source.html b/docs/generated/docs/signalk__time_8cpp_source.html new file mode 100644 index 000000000..c4290f65e --- /dev/null +++ b/docs/generated/docs/signalk__time_8cpp_source.html @@ -0,0 +1,153 @@ + + + + + + + +SensESP: src/signalk/signalk_time.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_time.cpp
          +
          +
          +Go to the documentation of this file.
          1 
          +
          2 #include "signalk_time.h"
          +
          3 
          +
          4 SKOutputTime::SKOutputTime(String sk_path, String config_path)
          +
          5  : TimeString(config_path), SKEmitter(sk_path) {
          +
          6  load_configuration();
          +
          7 }
          +
          8 
          + +
          10  DynamicJsonDocument json_doc(1024);
          +
          11  String json;
          +
          12  JsonObject root = json_doc.as<JsonObject>();
          +
          13  root["path"] = this->sk_path;
          +
          14  root["value"] = output;
          +
          15  serializeJson(root, json);
          +
          16  return json;
          +
          17 }
          +
          18 
          +
          19 void SKOutputTime::get_configuration(JsonObject& root) {
          +
          20  root["sk_path"] = sk_path;
          +
          21  root["value"] = output;
          +
          22 }
          +
          23 
          +
          24 static const char SCHEMA[] PROGMEM = R"({
          +
          25  "type": "object",
          +
          26  "properties": {
          +
          27  "sk_path": { "title": "Signal K Path", "type": "string" },
          +
          28  "value": { "title": "Last value", "type" : "string", "readOnly": true }
          +
          29  }
          +
          30  })";
          +
          31 
          +
          32 String SKOutputTime::get_config_schema() { return FPSTR(SCHEMA); }
          +
          33 
          +
          34 bool SKOutputTime::set_configuration(const JsonObject& config) {
          +
          35  String expected[] = {"sk_path"};
          +
          36  for (auto str : expected) {
          +
          37  if (!config.containsKey(str)) {
          +
          38  return false;
          +
          39  }
          +
          40  }
          +
          41  sk_path = config["sk_path"].as<String>();
          +
          42  return true;
          +
          43 }
          +
          +
          +
          virtual void get_configuration(JsonObject &doc) override
          + +
          SKOutputTime(String sk_path, String config_path="")
          Definition: signalk_time.cpp:4
          +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          +
          virtual String get_config_schema() override
          + +
          String sk_path
          +
          virtual bool set_configuration(const JsonObject &config) override
          + +
          virtual String as_signalk() override
          Definition: signalk_time.cpp:9
          + + + + diff --git a/docs/generated/docs/signalk__time_8h.html b/docs/generated/docs/signalk__time_8h.html new file mode 100644 index 000000000..05c25c406 --- /dev/null +++ b/docs/generated/docs/signalk__time_8h.html @@ -0,0 +1,151 @@ + + + + + + + +SensESP: src/signalk/signalk_time.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          signalk_time.h File Reference
          +
          +
          +
          +Include dependency graph for signalk_time.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  SKOutputTime
           
          +
          +
          + + + + diff --git a/docs/signalk__time_8h__dep__incl.map b/docs/generated/docs/signalk__time_8h__dep__incl.map similarity index 100% rename from docs/signalk__time_8h__dep__incl.map rename to docs/generated/docs/signalk__time_8h__dep__incl.map diff --git a/docs/generated/docs/signalk__time_8h__dep__incl.md5 b/docs/generated/docs/signalk__time_8h__dep__incl.md5 new file mode 100644 index 000000000..79060daa8 --- /dev/null +++ b/docs/generated/docs/signalk__time_8h__dep__incl.md5 @@ -0,0 +1 @@ +c6050730feb52c412827d67a11f5498c \ No newline at end of file diff --git a/docs/generated/docs/signalk__time_8h__dep__incl.png b/docs/generated/docs/signalk__time_8h__dep__incl.png new file mode 100644 index 000000000..7e742a61b Binary files /dev/null and b/docs/generated/docs/signalk__time_8h__dep__incl.png differ diff --git a/docs/generated/docs/signalk__time_8h__incl.map b/docs/generated/docs/signalk__time_8h__incl.map new file mode 100644 index 000000000..a38c7b611 --- /dev/null +++ b/docs/generated/docs/signalk__time_8h__incl.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/signalk__time_8h__incl.md5 b/docs/generated/docs/signalk__time_8h__incl.md5 new file mode 100644 index 000000000..a00b1f239 --- /dev/null +++ b/docs/generated/docs/signalk__time_8h__incl.md5 @@ -0,0 +1 @@ +7c11a32c71170e5a7cc3c243bf77d1f4 \ No newline at end of file diff --git a/docs/generated/docs/signalk__time_8h__incl.png b/docs/generated/docs/signalk__time_8h__incl.png new file mode 100644 index 000000000..79294c1ee Binary files /dev/null and b/docs/generated/docs/signalk__time_8h__incl.png differ diff --git a/docs/generated/docs/signalk__time_8h_source.html b/docs/generated/docs/signalk__time_8h_source.html new file mode 100644 index 000000000..df21affb6 --- /dev/null +++ b/docs/generated/docs/signalk__time_8h_source.html @@ -0,0 +1,127 @@ + + + + + + + +SensESP: src/signalk/signalk_time.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_time.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _signalk_time_H_
          +
          2 #define _signalk_time_H_
          +
          3 
          +
          4 #include "signalk_emitter.h"
          + +
          6 
          +
          7 class SKOutputTime : public TimeString, public SKEmitter {
          +
          8  public:
          +
          9  SKOutputTime(String sk_path, String config_path = "");
          +
          10  virtual String as_signalk() override;
          +
          11  virtual void get_configuration(JsonObject& doc) override;
          +
          12  virtual bool set_configuration(const JsonObject& config) override;
          +
          13  virtual String get_config_schema() override;
          +
          14 };
          +
          15 
          +
          16 #endif
          +
          +
          +
          virtual void get_configuration(JsonObject &doc) override
          + +
          SKOutputTime(String sk_path, String config_path="")
          Definition: signalk_time.cpp:4
          + +
          virtual String get_config_schema() override
          + + +
          String sk_path
          +
          virtual bool set_configuration(const JsonObject &config) override
          +
          virtual String as_signalk() override
          Definition: signalk_time.cpp:9
          + + + + + diff --git a/docs/generated/docs/signalk__value__listener_8h.html b/docs/generated/docs/signalk__value__listener_8h.html new file mode 100644 index 000000000..6bc365d3b --- /dev/null +++ b/docs/generated/docs/signalk__value__listener_8h.html @@ -0,0 +1,215 @@ + + + + + + + +SensESP: src/signalk/signalk_value_listener.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          signalk_value_listener.h File Reference
          +
          +
          +
          #include <ArduinoJson.h>
          +#include "signalk_listener.h"
          +#include "system/observable.h"
          +#include "system/valueproducer.h"
          +
          +Include dependency graph for signalk_value_listener.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  SKValueListener< T >
           
          + + + + + + + + + +

          +Typedefs

          typedef SKValueListener< float > SKNumericListener
           
          typedef SKValueListener< int > SKIntListener
           
          typedef SKValueListener< bool > SKBoolListener
           
          typedef SKValueListener< String > SKStringListener
           
          +

          Typedef Documentation

          + +

          ◆ SKBoolListener

          + +
          +
          + + + + +
          typedef SKValueListener<bool> SKBoolListener
          +
          + +

          Definition at line 31 of file signalk_value_listener.h.

          + +
          +
          + +

          ◆ SKIntListener

          + +
          +
          + + + + +
          typedef SKValueListener<int> SKIntListener
          +
          + +

          Definition at line 30 of file signalk_value_listener.h.

          + +
          +
          + +

          ◆ SKNumericListener

          + +
          +
          + + + + +
          typedef SKValueListener<float> SKNumericListener
          +
          + +

          Definition at line 29 of file signalk_value_listener.h.

          + +
          +
          + +

          ◆ SKStringListener

          + +
          +
          + + + + +
          typedef SKValueListener<String> SKStringListener
          +
          + +

          Definition at line 32 of file signalk_value_listener.h.

          + +
          +
          +
          +
          + + + + diff --git a/docs/generated/docs/signalk__value__listener_8h.js b/docs/generated/docs/signalk__value__listener_8h.js new file mode 100644 index 000000000..dad51b19e --- /dev/null +++ b/docs/generated/docs/signalk__value__listener_8h.js @@ -0,0 +1,8 @@ +var signalk__value__listener_8h = +[ + [ "SKValueListener", "class_s_k_value_listener.html", "class_s_k_value_listener" ], + [ "SKBoolListener", "signalk__value__listener_8h.html#a8f575605d1ef3b54dda1b6c42176ea58", null ], + [ "SKIntListener", "signalk__value__listener_8h.html#adf04f595b2363166ad957fdf9ce49df8", null ], + [ "SKNumericListener", "signalk__value__listener_8h.html#a75e67b33609f9d94e37f31d5b8d28323", null ], + [ "SKStringListener", "signalk__value__listener_8h.html#a754369a24853b40cebe8febff7b43e65", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/signalk__value__listener_8h__incl.map b/docs/generated/docs/signalk__value__listener_8h__incl.map new file mode 100644 index 000000000..970ef3753 --- /dev/null +++ b/docs/generated/docs/signalk__value__listener_8h__incl.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/signalk__value__listener_8h__incl.md5 b/docs/generated/docs/signalk__value__listener_8h__incl.md5 new file mode 100644 index 000000000..cd286860e --- /dev/null +++ b/docs/generated/docs/signalk__value__listener_8h__incl.md5 @@ -0,0 +1 @@ +05d79bb31cb3a6ae3239bf9f870236c6 \ No newline at end of file diff --git a/docs/generated/docs/signalk__value__listener_8h__incl.png b/docs/generated/docs/signalk__value__listener_8h__incl.png new file mode 100644 index 000000000..d4230d915 Binary files /dev/null and b/docs/generated/docs/signalk__value__listener_8h__incl.png differ diff --git a/docs/generated/docs/signalk__value__listener_8h_source.html b/docs/generated/docs/signalk__value__listener_8h_source.html new file mode 100644 index 000000000..3f4bb73ca --- /dev/null +++ b/docs/generated/docs/signalk__value__listener_8h_source.html @@ -0,0 +1,146 @@ + + + + + + + +SensESP: src/signalk/signalk_value_listener.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          signalk_value_listener.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _sk_value_listener_H
          +
          2 #define _sk_value_listener_H
          +
          3 
          +
          4 #include <ArduinoJson.h>
          +
          5 
          +
          6 #include "signalk_listener.h"
          +
          7 #include "system/observable.h"
          +
          8 #include "system/valueproducer.h"
          +
          10 // SKListener is object that listens for specific value in Signal K,
          +
          11 // listen_delay is minimum interval between updates in ms
          +
          13 template <class T>
          +
          14 class SKValueListener : public SKListener, public ValueProducer<T> {
          +
          15  public:
          +
          16  SKValueListener(String sk_path, int listen_delay = 1000)
          +
          17  : SKListener(sk_path, listen_delay) {
          +
          18  if (sk_path == "") {
          +
          19  debugE("SKValueListener: User has provided no sk_path to listen to.");
          +
          20  }
          +
          21  }
          +
          22 
          +
          23  void parse_value(JsonObject& json) override {
          +
          24  this->output = (T)json["value"];
          +
          25  notify();
          +
          26  }
          +
          27 };
          +
          28 
          + + + + +
          33 #endif
          +
          +
          + +
          void notify()
          Definition: observable.cpp:3
          + +
          SKValueListener(String sk_path, int listen_delay=1000)
          +
          SKValueListener< String > SKStringListener
          + + +
          void parse_value(JsonObject &json) override
          + + + + +
          SKValueListener< float > SKNumericListener
          +
          SKValueListener< bool > SKBoolListener
          +
          SKValueListener< int > SKIntListener
          + + + + diff --git a/docs/spiffs__storage_8cpp.html b/docs/generated/docs/spiffs__storage_8cpp.html similarity index 82% rename from docs/spiffs__storage_8cpp.html rename to docs/generated/docs/spiffs__storage_8cpp.html index f5476e9eb..a7e059582 100644 --- a/docs/spiffs__storage_8cpp.html +++ b/docs/generated/docs/spiffs__storage_8cpp.html @@ -3,7 +3,7 @@ - + SensESP: src/system/spiffs_storage.cpp File Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
          @@ -93,22 +89,21 @@
          spiffs_storage.cpp File Reference
          -
          #include "sensesp.h"
          -#include "spiffs_storage.h"
          -#include "FS.h"
          +
          #include "spiffs_storage.h"
          +#include "sensesp.h"
          Include dependency graph for spiffs_storage.cpp:
          -
          - - - - - - - - - +
          + + + + + + + + +
          @@ -140,7 +135,7 @@

          -

          Definition at line 23 of file spiffs_storage.cpp.

          +

          Definition at line 27 of file spiffs_storage.cpp.

          @@ -159,7 +154,7 @@

          -

          Definition at line 7 of file spiffs_storage.cpp.

          +

          Definition at line 11 of file spiffs_storage.cpp.

          @@ -189,7 +184,7 @@

          -

          Definition at line 15 of file spiffs_storage.cpp.

          +

          Definition at line 19 of file spiffs_storage.cpp.

          @@ -199,9 +194,7 @@

          diff --git a/docs/spiffs__storage_8cpp.js b/docs/generated/docs/spiffs__storage_8cpp.js similarity index 100% rename from docs/spiffs__storage_8cpp.js rename to docs/generated/docs/spiffs__storage_8cpp.js diff --git a/docs/generated/docs/spiffs__storage_8cpp__incl.map b/docs/generated/docs/spiffs__storage_8cpp__incl.map new file mode 100644 index 000000000..2a3204ef3 --- /dev/null +++ b/docs/generated/docs/spiffs__storage_8cpp__incl.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/docs/generated/docs/spiffs__storage_8cpp__incl.md5 b/docs/generated/docs/spiffs__storage_8cpp__incl.md5 new file mode 100644 index 000000000..156ccae46 --- /dev/null +++ b/docs/generated/docs/spiffs__storage_8cpp__incl.md5 @@ -0,0 +1 @@ +a84267ec17ef5d55d93125d61cf2fe9e \ No newline at end of file diff --git a/docs/generated/docs/spiffs__storage_8cpp__incl.png b/docs/generated/docs/spiffs__storage_8cpp__incl.png new file mode 100644 index 000000000..5652e4477 Binary files /dev/null and b/docs/generated/docs/spiffs__storage_8cpp__incl.png differ diff --git a/docs/generated/docs/spiffs__storage_8cpp_source.html b/docs/generated/docs/spiffs__storage_8cpp_source.html new file mode 100644 index 000000000..b838b76fe --- /dev/null +++ b/docs/generated/docs/spiffs__storage_8cpp_source.html @@ -0,0 +1,140 @@ + + + + + + + +SensESP: src/system/spiffs_storage.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          spiffs_storage.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "spiffs_storage.h"
          +
          2 
          +
          3 #include "sensesp.h"
          +
          4 
          +
          5 #ifdef ESP8266
          +
          6 #include "FS.h"
          +
          7 #elif defined(ESP32)
          +
          8 #include "SPIFFS.h"
          +
          9 #endif
          +
          10 
          + +
          12  bool result = SPIFFS.begin();
          +
          13  if (!result) {
          +
          14  debugE("FATAL: Filesystem initialization failed.");
          +
          15  ESP.restart();
          +
          16  }
          +
          17 }
          +
          18 
          +
          19 void write_string(const String filename, String data) {
          +
          20  File f = SPIFFS.open(filename, "w");
          +
          21  if (f) {
          +
          22  f.print(data);
          +
          23  f.close();
          +
          24  }
          +
          25 }
          +
          26 
          +
          27 String read_string(const String filename) {
          +
          28  File f = SPIFFS.open(filename, "r");
          +
          29  if (!f) {
          +
          30  return "";
          +
          31  }
          +
          32  String input = f.readString();
          +
          33  f.close();
          +
          34  return input;
          +
          35 }
          +
          +
          +
          String read_string(const String filename)
          +
          void write_string(const String filename, String data)
          + +
          void setup_spiffs_storage()
          + + + + + diff --git a/docs/spiffs__storage_8h.html b/docs/generated/docs/spiffs__storage_8h.html similarity index 77% rename from docs/spiffs__storage_8h.html rename to docs/generated/docs/spiffs__storage_8h.html index 82dbf5c04..670264493 100644 --- a/docs/spiffs__storage_8h.html +++ b/docs/generated/docs/spiffs__storage_8h.html @@ -3,7 +3,7 @@ - + SensESP: src/system/spiffs_storage.h File Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
          @@ -99,22 +95,22 @@
          Include dependency graph for spiffs_storage.h:
          -
          - - - - - +
          + + + + +
          This graph shows which files directly or indirectly include this file:
          -
          - - - - +
          + + + +
          @@ -128,20 +124,20 @@   String read_string (const String filename)   -void write_json (const String filename, JsonObject &data) -  -JsonObject & read_json (const String filename, JsonBuffer &buf) -  +void write_json (const String filename, JsonObject data) +  +JsonObject read_json (const String filename, JsonDocument doc) + 

          Function Documentation

          - -

          ◆ read_json()

          + +

          ◆ read_json()

          - + @@ -149,8 +145,8 @@

          - - + + @@ -178,7 +174,7 @@

          -

          Definition at line 23 of file spiffs_storage.cpp.

          +

          Definition at line 27 of file spiffs_storage.cpp.

          @@ -197,12 +193,12 @@

          -

          Definition at line 7 of file spiffs_storage.cpp.

          +

          Definition at line 11 of file spiffs_storage.cpp.

          - -

          ◆ write_json()

          + +

          ◆ write_json()

          @@ -216,7 +212,7 @@

          - + @@ -255,7 +251,7 @@

          -

          Definition at line 15 of file spiffs_storage.cpp.

          +

          Definition at line 19 of file spiffs_storage.cpp.

          @@ -265,9 +261,7 @@

          diff --git a/docs/generated/docs/spiffs__storage_8h.js b/docs/generated/docs/spiffs__storage_8h.js new file mode 100644 index 000000000..548f58830 --- /dev/null +++ b/docs/generated/docs/spiffs__storage_8h.js @@ -0,0 +1,8 @@ +var spiffs__storage_8h = +[ + [ "read_json", "spiffs__storage_8h.html#a3ca6038ce2edba53098d8ca7ffdaa35d", null ], + [ "read_string", "spiffs__storage_8h.html#a7429780969e66149e25ea6088bf65b7a", null ], + [ "setup_spiffs_storage", "spiffs__storage_8h.html#a1dfee751479797b385c81cacb151c115", null ], + [ "write_json", "spiffs__storage_8h.html#a48b9b058342e94d2f8c0c2670799b9fe", null ], + [ "write_string", "spiffs__storage_8h.html#ae1cd66733f6f724334874c5ff65b958b", null ] +]; \ No newline at end of file diff --git a/docs/spiffs__storage_8h__dep__incl.map b/docs/generated/docs/spiffs__storage_8h__dep__incl.map similarity index 100% rename from docs/spiffs__storage_8h__dep__incl.map rename to docs/generated/docs/spiffs__storage_8h__dep__incl.map diff --git a/docs/generated/docs/spiffs__storage_8h__dep__incl.md5 b/docs/generated/docs/spiffs__storage_8h__dep__incl.md5 new file mode 100644 index 000000000..c221ae7ed --- /dev/null +++ b/docs/generated/docs/spiffs__storage_8h__dep__incl.md5 @@ -0,0 +1 @@ +ebbca4217883e67504116e6edd8d08e5 \ No newline at end of file diff --git a/docs/generated/docs/spiffs__storage_8h__dep__incl.png b/docs/generated/docs/spiffs__storage_8h__dep__incl.png new file mode 100644 index 000000000..614e2be58 Binary files /dev/null and b/docs/generated/docs/spiffs__storage_8h__dep__incl.png differ diff --git a/docs/spiffs__storage_8h__incl.map b/docs/generated/docs/spiffs__storage_8h__incl.map similarity index 100% rename from docs/spiffs__storage_8h__incl.map rename to docs/generated/docs/spiffs__storage_8h__incl.map diff --git a/docs/generated/docs/spiffs__storage_8h__incl.md5 b/docs/generated/docs/spiffs__storage_8h__incl.md5 new file mode 100644 index 000000000..57f894fe6 --- /dev/null +++ b/docs/generated/docs/spiffs__storage_8h__incl.md5 @@ -0,0 +1 @@ +b7bde28ce5d35bf927eaecb581106763 \ No newline at end of file diff --git a/docs/generated/docs/spiffs__storage_8h__incl.png b/docs/generated/docs/spiffs__storage_8h__incl.png new file mode 100644 index 000000000..20afa6de3 Binary files /dev/null and b/docs/generated/docs/spiffs__storage_8h__incl.png differ diff --git a/docs/generated/docs/spiffs__storage_8h_source.html b/docs/generated/docs/spiffs__storage_8h_source.html new file mode 100644 index 000000000..00dc289b1 --- /dev/null +++ b/docs/generated/docs/spiffs__storage_8h_source.html @@ -0,0 +1,124 @@ + + + + + + + +SensESP: src/system/spiffs_storage.h Source File + + + + + + + + + + + + + +
          +
          +

          JsonObject& read_json JsonObject read_json ( const String  filename, JsonBuffer & buf JsonDocument doc 
          JsonObject & JsonObject  data 
          + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          spiffs_storage.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _fs_H_
          +
          2 #define _fs_H_
          +
          3 
          +
          4 #include "Arduino.h"
          +
          5 #include "ArduinoJson.h"
          +
          6 #include "FS.h"
          +
          7 
          +
          8 // quick and dirty hack to get string values to
          +
          9 // disk and back
          +
          10 
          + +
          12 
          +
          13 void write_string(const String filename, String data);
          +
          14 String read_string(const String filename);
          +
          15 
          +
          16 void write_json(const String filename, JsonObject data);
          +
          17 JsonObject read_json(const String filename, JsonDocument doc);
          +
          18 
          +
          19 #endif
          +
          +
          +
          void setup_spiffs_storage()
          +
          void write_string(const String filename, String data)
          +
          String read_string(const String filename)
          +
          JsonObject read_json(const String filename, JsonDocument doc)
          +
          void write_json(const String filename, JsonObject data)
          + + + + diff --git a/docs/splitbar.png b/docs/generated/docs/splitbar.png similarity index 100% rename from docs/splitbar.png rename to docs/generated/docs/splitbar.png diff --git a/docs/struct_e_n_u_vector-members.html b/docs/generated/docs/struct_e_n_u_vector-members.html similarity index 90% rename from docs/struct_e_n_u_vector-members.html rename to docs/generated/docs/struct_e_n_u_vector-members.html index 0a9552c4c..567559afe 100644 --- a/docs/struct_e_n_u_vector-members.html +++ b/docs/generated/docs/struct_e_n_u_vector-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
          @@ -102,9 +98,7 @@ diff --git a/docs/struct_e_n_u_vector.html b/docs/generated/docs/struct_e_n_u_vector.html similarity index 93% rename from docs/struct_e_n_u_vector.html rename to docs/generated/docs/struct_e_n_u_vector.html index 410e9bb0a..d44d6c227 100644 --- a/docs/struct_e_n_u_vector.html +++ b/docs/generated/docs/struct_e_n_u_vector.html @@ -3,7 +3,7 @@ - + SensESP: ENUVector Struct Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
          - +
          @@ -108,7 +104,7 @@

          Detailed Description

          -

          Definition at line 19 of file nmea_parser.h.

          +

          Definition at line 18 of file nmea_parser.h.

          Member Data Documentation

          ◆ east

          @@ -122,7 +118,7 @@

          -

          Definition at line 20 of file nmea_parser.h.

          +

          Definition at line 19 of file nmea_parser.h.

          @@ -138,7 +134,7 @@

          -

          Definition at line 21 of file nmea_parser.h.

          +

          Definition at line 20 of file nmea_parser.h.

          @@ -154,7 +150,7 @@

          -

          Definition at line 22 of file nmea_parser.h.

          +

          Definition at line 21 of file nmea_parser.h.

          @@ -167,9 +163,7 @@

          diff --git a/docs/struct_e_n_u_vector.js b/docs/generated/docs/struct_e_n_u_vector.js similarity index 100% rename from docs/struct_e_n_u_vector.js rename to docs/generated/docs/struct_e_n_u_vector.js diff --git a/docs/struct_n_m_e_a_data-members.html b/docs/generated/docs/struct_n_m_e_a_data-members.html similarity index 94% rename from docs/struct_n_m_e_a_data-members.html rename to docs/generated/docs/struct_n_m_e_a_data-members.html index 13ce70068..a2118b592 100644 --- a/docs/struct_n_m_e_a_data-members.html +++ b/docs/generated/docs/struct_n_m_e_a_data-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
          @@ -116,9 +112,7 @@ diff --git a/docs/struct_n_m_e_a_data.html b/docs/generated/docs/struct_n_m_e_a_data.html similarity index 97% rename from docs/struct_n_m_e_a_data.html rename to docs/generated/docs/struct_n_m_e_a_data.html index 6c4e42a20..9f47b76e3 100644 --- a/docs/struct_n_m_e_a_data.html +++ b/docs/generated/docs/struct_n_m_e_a_data.html @@ -3,7 +3,7 @@ - + SensESP: NMEAData Struct Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
          - +
          @@ -136,7 +132,7 @@

          Detailed Description

          -

          Definition at line 25 of file nmea_parser.h.

          +

          Definition at line 24 of file nmea_parser.h.

          Member Data Documentation

          ◆ baseline_course

          @@ -150,7 +146,7 @@

          -

          Definition at line 42 of file nmea_parser.h.

          +

          Definition at line 41 of file nmea_parser.h.

          @@ -166,7 +162,7 @@

          -

          Definition at line 41 of file nmea_parser.h.

          +

          Definition at line 40 of file nmea_parser.h.

          @@ -182,7 +178,7 @@

          -

          Definition at line 40 of file nmea_parser.h.

          +

          Definition at line 39 of file nmea_parser.h.

          @@ -198,7 +194,7 @@

          -

          Definition at line 33 of file nmea_parser.h.

          +

          Definition at line 32 of file nmea_parser.h.

          @@ -214,7 +210,7 @@

          -

          Definition at line 31 of file nmea_parser.h.

          +

          Definition at line 30 of file nmea_parser.h.

          @@ -230,7 +226,7 @@

          -

          Definition at line 32 of file nmea_parser.h.

          +

          Definition at line 31 of file nmea_parser.h.

          @@ -246,7 +242,7 @@

          -

          Definition at line 37 of file nmea_parser.h.

          +

          Definition at line 36 of file nmea_parser.h.

          @@ -262,7 +258,7 @@

          -

          Definition at line 30 of file nmea_parser.h.

          +

          Definition at line 29 of file nmea_parser.h.

          @@ -278,7 +274,7 @@

          -

          Definition at line 27 of file nmea_parser.h.

          +

          Definition at line 26 of file nmea_parser.h.

          @@ -294,7 +290,7 @@

          -

          Definition at line 29 of file nmea_parser.h.

          +

          Definition at line 28 of file nmea_parser.h.

          @@ -310,7 +306,7 @@

          -

          Definition at line 28 of file nmea_parser.h.

          +

          Definition at line 27 of file nmea_parser.h.

          @@ -326,7 +322,7 @@

          -

          Definition at line 26 of file nmea_parser.h.

          +

          Definition at line 25 of file nmea_parser.h.

          @@ -342,7 +338,7 @@

          -

          Definition at line 38 of file nmea_parser.h.

          +

          Definition at line 37 of file nmea_parser.h.

          @@ -358,7 +354,7 @@

          -

          Definition at line 39 of file nmea_parser.h.

          +

          Definition at line 38 of file nmea_parser.h.

          @@ -374,7 +370,7 @@

          -

          Definition at line 34 of file nmea_parser.h.

          +

          Definition at line 33 of file nmea_parser.h.

          @@ -390,7 +386,7 @@

          -

          Definition at line 35 of file nmea_parser.h.

          +

          Definition at line 34 of file nmea_parser.h.

          @@ -406,7 +402,7 @@

          -

          Definition at line 36 of file nmea_parser.h.

          +

          Definition at line 35 of file nmea_parser.h.

          @@ -419,9 +415,7 @@

          diff --git a/docs/struct_n_m_e_a_data.js b/docs/generated/docs/struct_n_m_e_a_data.js similarity index 100% rename from docs/struct_n_m_e_a_data.js rename to docs/generated/docs/struct_n_m_e_a_data.js diff --git a/docs/generated/docs/struct_param_info-members.html b/docs/generated/docs/struct_param_info-members.html new file mode 100644 index 000000000..ef3dff894 --- /dev/null +++ b/docs/generated/docs/struct_param_info-members.html @@ -0,0 +1,104 @@ + + + + + + + +SensESP: Member List + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          ParamInfo Member List
          +
          +
          + +

          This is the complete list of members for ParamInfo, including all inherited members.

          + + + +
          descriptionParamInfo
          keyParamInfo
          +
          + + + + diff --git a/docs/generated/docs/struct_param_info.html b/docs/generated/docs/struct_param_info.html new file mode 100644 index 000000000..38b054c93 --- /dev/null +++ b/docs/generated/docs/struct_param_info.html @@ -0,0 +1,153 @@ + + + + + + + +SensESP: ParamInfo Struct Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          ParamInfo Struct Reference
          +
          +
          + +

          #include <lambda_transform.h>

          + + + + + + +

          +Public Attributes

          const char * key
           
          const char * description
           
          +

          Detailed Description

          +

          Configuration parameter information struct

          + +

          Definition at line 39 of file lambda_transform.h.

          +

          Member Data Documentation

          + +

          ◆ description

          + +
          +
          + + + + +
          const char* ParamInfo::description
          +
          + +

          Definition at line 41 of file lambda_transform.h.

          + +
          +
          + +

          ◆ key

          + +
          +
          + + + + +
          const char* ParamInfo::key
          +
          + +

          Definition at line 40 of file lambda_transform.h.

          + +
          +
          +
          The documentation for this struct was generated from the following file: +
          +
          + + + + diff --git a/docs/generated/docs/struct_param_info.js b/docs/generated/docs/struct_param_info.js new file mode 100644 index 000000000..b1fbdfcb9 --- /dev/null +++ b/docs/generated/docs/struct_param_info.js @@ -0,0 +1,5 @@ +var struct_param_info = +[ + [ "description", "struct_param_info.html#a4cc8fb2021184f5b228e6307f3507a38", null ], + [ "key", "struct_param_info.html#a92b4878247486f15fdecf4fc1b6be4e3", null ] +]; \ No newline at end of file diff --git a/docs/struct_position-members.html b/docs/generated/docs/struct_position-members.html similarity index 90% rename from docs/struct_position-members.html rename to docs/generated/docs/struct_position-members.html index 31bb9d5a9..e09c1e336 100644 --- a/docs/struct_position-members.html +++ b/docs/generated/docs/struct_position-members.html @@ -3,7 +3,7 @@ - + SensESP: Member List @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@ - +
          @@ -102,9 +98,7 @@ diff --git a/docs/struct_position.html b/docs/generated/docs/struct_position.html similarity index 93% rename from docs/struct_position.html rename to docs/generated/docs/struct_position.html index 5ea370992..892c317c6 100644 --- a/docs/struct_position.html +++ b/docs/generated/docs/struct_position.html @@ -3,7 +3,7 @@ - + SensESP: Position Struct Reference @@ -13,10 +13,6 @@ - @@ -39,7 +35,7 @@
          - +
          @@ -108,7 +104,7 @@

          Detailed Description

          -

          Definition at line 13 of file nmea_parser.h.

          +

          Definition at line 12 of file nmea_parser.h.

          Member Data Documentation

          ◆ altitude

          @@ -122,7 +118,7 @@

          -

          Definition at line 16 of file nmea_parser.h.

          +

          Definition at line 15 of file nmea_parser.h.

          @@ -138,7 +134,7 @@

          -

          Definition at line 14 of file nmea_parser.h.

          +

          Definition at line 13 of file nmea_parser.h.

          @@ -154,7 +150,7 @@

          -

          Definition at line 15 of file nmea_parser.h.

          +

          Definition at line 14 of file nmea_parser.h.

          @@ -167,9 +163,7 @@

          diff --git a/docs/struct_position.js b/docs/generated/docs/struct_position.js similarity index 100% rename from docs/struct_position.js rename to docs/generated/docs/struct_position.js diff --git a/docs/sync_off.png b/docs/generated/docs/sync_off.png similarity index 100% rename from docs/sync_off.png rename to docs/generated/docs/sync_off.png diff --git a/docs/sync_on.png b/docs/generated/docs/sync_on.png similarity index 100% rename from docs/sync_on.png rename to docs/generated/docs/sync_on.png diff --git a/docs/generated/docs/system__info_8cpp.html b/docs/generated/docs/system__info_8cpp.html new file mode 100644 index 000000000..1ee8ccf49 --- /dev/null +++ b/docs/generated/docs/system__info_8cpp.html @@ -0,0 +1,132 @@ + + + + + + + +SensESP: src/sensors/system_info.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          system_info.cpp File Reference
          +
          +
          +
          #include "system_info.h"
          +#include "Arduino.h"
          +#include "sensesp.h"
          +
          +Include dependency graph for system_info.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/system__info_8cpp__incl.map b/docs/generated/docs/system__info_8cpp__incl.map new file mode 100644 index 000000000..24846c700 --- /dev/null +++ b/docs/generated/docs/system__info_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/system__info_8cpp__incl.md5 b/docs/generated/docs/system__info_8cpp__incl.md5 new file mode 100644 index 000000000..352f9d9ba --- /dev/null +++ b/docs/generated/docs/system__info_8cpp__incl.md5 @@ -0,0 +1 @@ +35fd0f0944ea6cc2532b93671d42b8d2 \ No newline at end of file diff --git a/docs/generated/docs/system__info_8cpp__incl.png b/docs/generated/docs/system__info_8cpp__incl.png new file mode 100644 index 000000000..b22083e18 Binary files /dev/null and b/docs/generated/docs/system__info_8cpp__incl.png differ diff --git a/docs/generated/docs/system__info_8cpp_source.html b/docs/generated/docs/system__info_8cpp_source.html new file mode 100644 index 000000000..11dff845b --- /dev/null +++ b/docs/generated/docs/system__info_8cpp_source.html @@ -0,0 +1,176 @@ + + + + + + + +SensESP: src/sensors/system_info.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          system_info.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "system_info.h"
          +
          2 
          +
          3 #include "Arduino.h"
          +
          4 #include "sensesp.h"
          +
          5 
          +
          6 void SystemHz::tick() { tick_count++; }
          +
          7 
          +
          8 void SystemHz::update() {
          +
          9  uint32_t cur_millis = millis();
          +
          10  uint32_t elapsed = cur_millis - prev_millis;
          +
          11 
          +
          12  // getting sporadic divide by 0 exceptions, no harm in skipping a loop.
          +
          13  if (elapsed == 0) {
          +
          14  return;
          +
          15  }
          +
          16 
          +
          17  output = (tick_count * 1000) / elapsed;
          +
          18 
          +
          19  tick_count = 0;
          +
          20  prev_millis = cur_millis;
          +
          21 
          +
          22  this->notify();
          +
          23 }
          +
          24 
          + +
          26  prev_millis = millis();
          +
          27 
          +
          28  app.onTick([this]() { this->tick(); });
          +
          29  app.onRepeat(1000, [this]() { this->update(); });
          +
          30 }
          +
          31 
          +
          32 void FreeMem::update() {
          +
          33  output = ESP.getFreeHeap();
          +
          34  this->notify();
          +
          35 }
          +
          36 
          + +
          38  app.onRepeat(1000, [this]() { this->update(); });
          +
          39 }
          +
          40 
          +
          41 void Uptime::update() {
          +
          42  output = millis() / 1000.;
          +
          43  this->notify();
          +
          44 }
          +
          45 
          + +
          47  app.onRepeat(1000, [this]() { this->update(); });
          +
          48 }
          +
          49 
          +
          50 void IPAddrDev::update() {
          +
          51  output = WiFi.localIP().toString();
          +
          52  this->notify();
          +
          53 }
          +
          54 
          + +
          56  app.onRepeat(10000, [this]() { this->update(); });
          +
          57 }
          +
          58 
          + +
          60  app.onRepeat(3000, [this]() { this->update(); });
          +
          61 }
          +
          62 
          +
          63 void WifiSignal::update() {
          +
          64  output = WiFi.RSSI();
          +
          65  this->notify();
          +
          66 }
          +
          +
          +
          void notify()
          Definition: observable.cpp:3
          + +
          void enable() override final
          Definition: system_info.cpp:46
          +
          void enable() override final
          Definition: system_info.cpp:59
          + +
          void enable() override final
          Definition: system_info.cpp:37
          + +
          void enable() override final
          Definition: system_info.cpp:55
          +
          ReactESP app
          +
          void enable() override final
          Definition: system_info.cpp:25
          + + + + diff --git a/docs/generated/docs/system__info_8h.html b/docs/generated/docs/system__info_8h.html new file mode 100644 index 000000000..798d76913 --- /dev/null +++ b/docs/generated/docs/system__info_8h.html @@ -0,0 +1,155 @@ + + + + + + + +SensESP: src/sensors/system_info.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          system_info.h File Reference
          +
          +
          +
          #include "sensor.h"
          +
          +Include dependency graph for system_info.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + + + + + + + + + +

          +Classes

          class  SystemHz
           
          class  FreeMem
           
          class  Uptime
           
          class  IPAddrDev
           
          class  WifiSignal
           
          +
          +
          + + + + diff --git a/docs/system__info_8h__dep__incl.map b/docs/generated/docs/system__info_8h__dep__incl.map similarity index 100% rename from docs/system__info_8h__dep__incl.map rename to docs/generated/docs/system__info_8h__dep__incl.map diff --git a/docs/generated/docs/system__info_8h__dep__incl.md5 b/docs/generated/docs/system__info_8h__dep__incl.md5 new file mode 100644 index 000000000..e84dd86ea --- /dev/null +++ b/docs/generated/docs/system__info_8h__dep__incl.md5 @@ -0,0 +1 @@ +359ed8498ae97879a5a01ee4306dddfa \ No newline at end of file diff --git a/docs/generated/docs/system__info_8h__dep__incl.png b/docs/generated/docs/system__info_8h__dep__incl.png new file mode 100644 index 000000000..e9c5dcc3f Binary files /dev/null and b/docs/generated/docs/system__info_8h__dep__incl.png differ diff --git a/docs/generated/docs/system__info_8h__incl.map b/docs/generated/docs/system__info_8h__incl.map new file mode 100644 index 000000000..24c4afec6 --- /dev/null +++ b/docs/generated/docs/system__info_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/system__info_8h__incl.md5 b/docs/generated/docs/system__info_8h__incl.md5 new file mode 100644 index 000000000..274fd0892 --- /dev/null +++ b/docs/generated/docs/system__info_8h__incl.md5 @@ -0,0 +1 @@ +30638a96c7d5007f1201ed5612aff98a \ No newline at end of file diff --git a/docs/generated/docs/system__info_8h__incl.png b/docs/generated/docs/system__info_8h__incl.png new file mode 100644 index 000000000..15796427d Binary files /dev/null and b/docs/generated/docs/system__info_8h__incl.png differ diff --git a/docs/generated/docs/system__info_8h_source.html b/docs/generated/docs/system__info_8h_source.html new file mode 100644 index 000000000..e507e93c7 --- /dev/null +++ b/docs/generated/docs/system__info_8h_source.html @@ -0,0 +1,185 @@ + + + + + + + +SensESP: src/sensors/system_info.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          system_info.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _systeminfo_H_
          +
          2 #define _systeminfo_H_
          +
          3 
          +
          4 #include "sensor.h"
          +
          5 
          +
          6 class SystemHz : public NumericSensor {
          +
          7  public:
          +
          8  SystemHz() {}
          +
          9  void enable() override final;
          +
          10  String get_value_name() { return "systemhz"; }
          +
          11 
          +
          12  private:
          +
          13  uint32_t tick_count = 0;
          +
          14  uint32_t prev_millis;
          +
          15  float system_hz;
          +
          16  void tick();
          +
          17  void update();
          +
          18 };
          +
          19 
          +
          20 class FreeMem : public Sensor, public ValueProducer<uint32_t> {
          +
          21  public:
          +
          22  FreeMem() {}
          +
          23  void enable() override final;
          +
          24  String get_value_name() { return "freemem"; }
          +
          25 
          +
          26  private:
          +
          27  void update();
          +
          28 };
          +
          29 
          +
          30 class Uptime : public NumericSensor {
          +
          31  public:
          +
          32  Uptime() {}
          +
          33  void enable() override final;
          +
          34  String get_value_name() { return "uptime"; }
          +
          35 
          +
          36  private:
          +
          37  void update();
          +
          38 };
          +
          39 
          +
          40 class IPAddrDev : public StringSensor {
          +
          41  public:
          +
          42  IPAddrDev() {}
          +
          43  void enable() override final;
          +
          44  String get_value_name() { return "ipaddr"; }
          +
          45 
          +
          46  private:
          +
          47  void update();
          +
          48 };
          +
          49 
          +
          50 class WifiSignal : public NumericSensor {
          +
          51  public:
          + +
          53  void enable() override final;
          +
          54  String get_value_name() { return "wifisignal"; }
          +
          55 
          +
          56  private:
          +
          57  void update();
          +
          58 };
          +
          59 
          +
          60 #endif
          +
          +
          + + + +
          String get_value_name()
          Definition: system_info.h:34
          + +
          void enable() override final
          Definition: system_info.cpp:46
          + +
          Uptime()
          Definition: system_info.h:32
          +
          void enable() override final
          Definition: system_info.cpp:59
          + + +
          String get_value_name()
          Definition: system_info.h:24
          +
          String get_value_name()
          Definition: system_info.h:44
          + +
          String get_value_name()
          Definition: system_info.h:54
          +
          void enable() override final
          Definition: system_info.cpp:37
          +
          SystemHz()
          Definition: system_info.h:8
          +
          void enable() override final
          Definition: system_info.cpp:55
          +
          String get_value_name()
          Definition: system_info.h:10
          + + +
          void enable() override final
          Definition: system_info.cpp:25
          + +
          Definition: sensor.h:15
          + + + + + diff --git a/docs/tab_a.png b/docs/generated/docs/tab_a.png similarity index 100% rename from docs/tab_a.png rename to docs/generated/docs/tab_a.png diff --git a/docs/tab_b.png b/docs/generated/docs/tab_b.png similarity index 100% rename from docs/tab_b.png rename to docs/generated/docs/tab_b.png diff --git a/docs/tab_h.png b/docs/generated/docs/tab_h.png similarity index 100% rename from docs/tab_h.png rename to docs/generated/docs/tab_h.png diff --git a/docs/tab_s.png b/docs/generated/docs/tab_s.png similarity index 100% rename from docs/tab_s.png rename to docs/generated/docs/tab_s.png diff --git a/docs/generated/docs/tabs.css b/docs/generated/docs/tabs.css new file mode 100644 index 000000000..85a0cd5b5 --- /dev/null +++ b/docs/generated/docs/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/docs/generated/docs/threshold_8cpp.html b/docs/generated/docs/threshold_8cpp.html new file mode 100644 index 000000000..edacaff8e --- /dev/null +++ b/docs/generated/docs/threshold_8cpp.html @@ -0,0 +1,130 @@ + + + + + + + +SensESP: src/transforms/threshold.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          threshold.cpp File Reference
          +
          +
          +
          #include "threshold.h"
          +
          +Include dependency graph for threshold.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/threshold_8cpp__incl.map b/docs/generated/docs/threshold_8cpp__incl.map new file mode 100644 index 000000000..a5fd1b76f --- /dev/null +++ b/docs/generated/docs/threshold_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/threshold_8cpp__incl.md5 b/docs/generated/docs/threshold_8cpp__incl.md5 new file mode 100644 index 000000000..5b26042e2 --- /dev/null +++ b/docs/generated/docs/threshold_8cpp__incl.md5 @@ -0,0 +1 @@ +b1b545660155d221550f385fdcad971c \ No newline at end of file diff --git a/docs/generated/docs/threshold_8cpp__incl.png b/docs/generated/docs/threshold_8cpp__incl.png new file mode 100644 index 000000000..3c19220f9 Binary files /dev/null and b/docs/generated/docs/threshold_8cpp__incl.png differ diff --git a/docs/generated/docs/threshold_8cpp_source.html b/docs/generated/docs/threshold_8cpp_source.html new file mode 100644 index 000000000..915fd74c2 --- /dev/null +++ b/docs/generated/docs/threshold_8cpp_source.html @@ -0,0 +1,192 @@ + + + + + + + +SensESP: src/transforms/threshold.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          threshold.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "threshold.h"
          +
          2 
          +
          3 template <class C, class P>
          +
          4 void ThresholdTransform<C, P>::set_input(C input, uint8_t input_channel) {
          +
          5  if (input >= min_value && input <= max_value) {
          +
          6  this->output = in_range;
          +
          7  } else {
          +
          8  this->output = out_range;
          +
          9  }
          +
          10 
          +
          11  this->notify();
          +
          12 }
          +
          13 
          +
          14 void NumericThreshold::get_configuration(JsonObject& root) {
          +
          15  root["min"] = min_value;
          +
          16  root["max"] = max_value;
          +
          17  root["in_range"] = in_range;
          +
          18  root["value"] = output;
          +
          19 }
          +
          20 
          +
          21 static const char NUMERIC_SCHEMA[] PROGMEM = R"({
          +
          22  "type": "object",
          +
          23  "properties": {
          +
          24  "min": { "title": "Minimum value", "type": "number", "description" : "Minimum value to be 'in range'" },
          +
          25  "max": { "title": "Maximum value", "type": "number", "description" : "Maximum value to be 'in range'" },
          +
          26  "in_range": { "title": "In range value", "type": "boolean", "description" : "Output value when input value is 'in range'" },
          +
          27  "value": { "title": "Last value", "type" : "boolean", "readOnly": true }
          +
          28  }
          +
          29  })";
          +
          30 
          +
          31 bool NumericThreshold::set_configuration(const JsonObject& config) {
          +
          32  String expected[] = {"min", "max", "in_range", "value"};
          +
          33  for (auto str : expected) {
          +
          34  if (!config.containsKey(str)) {
          +
          35  return false;
          +
          36  }
          +
          37  }
          +
          38  min_value = config["min"];
          +
          39  max_value = config["max"];
          +
          40  in_range = config["in_range"];
          +
          41  output = config["value"];
          +
          42 
          +
          43  return true;
          +
          44 }
          +
          45 
          +
          46 String NumericThreshold::get_config_schema() { return FPSTR(NUMERIC_SCHEMA); }
          +
          47 
          +
          48 void IntegerThreshold::get_configuration(JsonObject& root) {
          +
          49  root["min"] = min_value;
          +
          50  root["max"] = max_value;
          +
          51  root["in_range"] = in_range;
          +
          52  root["value"] = output;
          +
          53 }
          +
          54 
          +
          55 static const char INTEGER_SCHEMA[] PROGMEM = R"({
          +
          56  "type": "object",
          +
          57  "properties": {
          +
          58  "min": { "title": "Minimum value", "type": "number", "description" : "Minimum value to be 'in range'" },
          +
          59  "max": { "title": "Maximum value", "type": "number", "description" : "Maximum value to be 'in range'" },
          +
          60  "in_range": { "title": "In range value", "type": "boolean", "description" : "Output value when input value is 'in range'" },
          +
          61  "value": { "title": "Last value", "type" : "boolean", "readOnly": true }
          +
          62  }
          +
          63  })";
          +
          64 
          +
          65 bool IntegerThreshold::set_configuration(const JsonObject& config) {
          +
          66  String expected[] = {"min", "max", "in_range"};
          +
          67  for (auto str : expected) {
          +
          68  if (!config.containsKey(str)) {
          +
          69  return false;
          +
          70  }
          +
          71  }
          +
          72  min_value = config["min"];
          +
          73  max_value = config["max"];
          +
          74  in_range = config["in_range"];
          +
          75  output = config["value"];
          +
          76 
          +
          77  return true;
          +
          78 }
          +
          79 
          +
          80 String IntegerThreshold::get_config_schema() { return FPSTR(INTEGER_SCHEMA); }
          +
          +
          + + +
          virtual bool set_configuration(const JsonObject &config) override
          Definition: threshold.cpp:31
          +
          virtual void set_input(C new_value, uint8_t input_channel=0) override
          Definition: threshold.cpp:4
          +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          +
          virtual void get_configuration(JsonObject &doc) override
          Definition: threshold.cpp:48
          +
          virtual void get_configuration(JsonObject &doc) override
          Definition: threshold.cpp:14
          + + +
          virtual bool set_configuration(const JsonObject &config) override
          Definition: threshold.cpp:65
          +
          virtual String get_config_schema() override
          Definition: threshold.cpp:46
          +
          virtual String get_config_schema() override
          Definition: threshold.cpp:80
          + + + + diff --git a/docs/generated/docs/threshold_8h.html b/docs/generated/docs/threshold_8h.html new file mode 100644 index 000000000..367873d4c --- /dev/null +++ b/docs/generated/docs/threshold_8h.html @@ -0,0 +1,150 @@ + + + + + + + +SensESP: src/transforms/threshold.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          threshold.h File Reference
          +
          +
          +
          #include "transform.h"
          +
          +Include dependency graph for threshold.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + +
          +
          +

          Go to the source code of this file.

          + + + + + + + + +

          +Classes

          class  ThresholdTransform< C, P >
           
          class  NumericThreshold
           
          class  IntegerThreshold
           
          +
          +
          + + + + diff --git a/docs/generated/docs/threshold_8h__dep__incl.map b/docs/generated/docs/threshold_8h__dep__incl.map new file mode 100644 index 000000000..b4662b054 --- /dev/null +++ b/docs/generated/docs/threshold_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/threshold_8h__dep__incl.md5 b/docs/generated/docs/threshold_8h__dep__incl.md5 new file mode 100644 index 000000000..2eedf6f5d --- /dev/null +++ b/docs/generated/docs/threshold_8h__dep__incl.md5 @@ -0,0 +1 @@ +1eb239bafc9ac737cbbffdfec161e41b \ No newline at end of file diff --git a/docs/generated/docs/threshold_8h__dep__incl.png b/docs/generated/docs/threshold_8h__dep__incl.png new file mode 100644 index 000000000..33ba947e3 Binary files /dev/null and b/docs/generated/docs/threshold_8h__dep__incl.png differ diff --git a/docs/generated/docs/threshold_8h__incl.map b/docs/generated/docs/threshold_8h__incl.map new file mode 100644 index 000000000..623ae3ac6 --- /dev/null +++ b/docs/generated/docs/threshold_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/threshold_8h__incl.md5 b/docs/generated/docs/threshold_8h__incl.md5 new file mode 100644 index 000000000..1568387b2 --- /dev/null +++ b/docs/generated/docs/threshold_8h__incl.md5 @@ -0,0 +1 @@ +bc207da6a86531846980c6ad35d8da57 \ No newline at end of file diff --git a/docs/generated/docs/threshold_8h__incl.png b/docs/generated/docs/threshold_8h__incl.png new file mode 100644 index 000000000..5b7cf4a57 Binary files /dev/null and b/docs/generated/docs/threshold_8h__incl.png differ diff --git a/docs/generated/docs/threshold_8h_source.html b/docs/generated/docs/threshold_8h_source.html new file mode 100644 index 000000000..302f19fa5 --- /dev/null +++ b/docs/generated/docs/threshold_8h_source.html @@ -0,0 +1,168 @@ + + + + + + + +SensESP: src/transforms/threshold.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          threshold.h
          +
          +
          +Go to the documentation of this file.
          1 #include "transform.h"
          +
          2 #ifndef _threshold_h
          +
          3 #define _threshold_h
          +
          4 
          +
          16 template <typename C, typename P>
          +
          17 class ThresholdTransform : public Transform<C, P> {
          +
          18  public:
          + +
          20  String config_path = "")
          +
          21  : Transform<C, P>(config_path),
          + + + + +
          26  this->load_configuration();
          +
          27  };
          +
          28  virtual void set_input(C new_value, uint8_t input_channel = 0) override;
          +
          29 
          +
          30  protected:
          + + + + +
          35 };
          +
          36 
          +
          42 class NumericThreshold : public ThresholdTransform<float, bool> {
          +
          43  public:
          +
          44  NumericThreshold(float min_value, float max_value, bool in_range = true,
          +
          45  String config_path = "")
          + +
          47  !in_range, config_path) {}
          +
          48 
          +
          49  virtual void get_configuration(JsonObject& doc) override;
          +
          50  virtual bool set_configuration(const JsonObject& config) override;
          +
          51  virtual String get_config_schema() override;
          +
          52 };
          +
          53 
          +
          59 class IntegerThreshold : public ThresholdTransform<int, bool> {
          +
          60  public:
          + +
          62  String config_path = "")
          + +
          64  config_path) {}
          +
          65 
          +
          66  virtual void get_configuration(JsonObject& doc) override;
          +
          67  virtual bool set_configuration(const JsonObject& config) override;
          +
          68  virtual String get_config_schema() override;
          +
          69 };
          +
          70 #endif
          +
          +
          + + +
          virtual bool set_configuration(const JsonObject &config) override
          Definition: threshold.cpp:31
          +
          virtual void set_input(C new_value, uint8_t input_channel=0) override
          Definition: threshold.cpp:4
          +
          virtual void get_configuration(JsonObject &doc) override
          Definition: threshold.cpp:48
          + +
          NumericThreshold(float min_value, float max_value, bool in_range=true, String config_path="")
          Definition: threshold.h:44
          +
          virtual void get_configuration(JsonObject &doc) override
          Definition: threshold.cpp:14
          +
          ThresholdTransform(C min_value, C max_value, P in_range, P out_range, String config_path="")
          Definition: threshold.h:19
          + +
          IntegerThreshold(int min_value, int max_value, bool in_range=true, String config_path="")
          Definition: threshold.h:61
          + + + + +
          virtual bool set_configuration(const JsonObject &config) override
          Definition: threshold.cpp:65
          + +
          virtual String get_config_schema() override
          Definition: threshold.cpp:46
          +
          virtual String get_config_schema() override
          Definition: threshold.cpp:80
          + + + + diff --git a/docs/generated/docs/timestring_8cpp.html b/docs/generated/docs/timestring_8cpp.html new file mode 100644 index 000000000..feb29d08e --- /dev/null +++ b/docs/generated/docs/timestring_8cpp.html @@ -0,0 +1,131 @@ + + + + + + + +SensESP: src/transforms/timestring.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          timestring.cpp File Reference
          +
          +
          +
          #include "timestring.h"
          +
          +Include dependency graph for timestring.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/timestring_8cpp__incl.map b/docs/generated/docs/timestring_8cpp__incl.map new file mode 100644 index 000000000..a6fad86ce --- /dev/null +++ b/docs/generated/docs/timestring_8cpp__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/timestring_8cpp__incl.md5 b/docs/generated/docs/timestring_8cpp__incl.md5 new file mode 100644 index 000000000..ad59a68be --- /dev/null +++ b/docs/generated/docs/timestring_8cpp__incl.md5 @@ -0,0 +1 @@ +e0a7d0b9c1313cf079be2b05da411f94 \ No newline at end of file diff --git a/docs/generated/docs/timestring_8cpp__incl.png b/docs/generated/docs/timestring_8cpp__incl.png new file mode 100644 index 000000000..133fdd595 Binary files /dev/null and b/docs/generated/docs/timestring_8cpp__incl.png differ diff --git a/docs/generated/docs/timestring_8cpp_source.html b/docs/generated/docs/timestring_8cpp_source.html new file mode 100644 index 000000000..436e7a89d --- /dev/null +++ b/docs/generated/docs/timestring_8cpp_source.html @@ -0,0 +1,116 @@ + + + + + + + +SensESP: src/transforms/timestring.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          timestring.cpp
          +
          +
          +Go to the documentation of this file.
          1 
          +
          2 #include "timestring.h"
          +
          3 
          +
          4 TimeString::TimeString(String config_path)
          +
          5  : Transform<time_t, String>(config_path) {}
          +
          6 
          +
          7 void TimeString::set_input(time_t input, uint8_t inputChannel) {
          +
          8  char buf[sizeof "2011-10-08T07:07:09Z"];
          +
          9  strftime(buf, sizeof buf, "%FT%TZ", gmtime(&input));
          +
          10  output = String(buf);
          +
          11  notify();
          +
          12 }
          +
          +
          +
          virtual void set_input(time_t input, uint8_t input_channel=0) override
          Definition: timestring.cpp:7
          +
          TimeString(String config_path="")
          Definition: timestring.cpp:4
          + + + + + + diff --git a/docs/generated/docs/timestring_8h.html b/docs/generated/docs/timestring_8h.html new file mode 100644 index 000000000..59fcd0503 --- /dev/null +++ b/docs/generated/docs/timestring_8h.html @@ -0,0 +1,152 @@ + + + + + + + +SensESP: src/transforms/timestring.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          timestring.h File Reference
          +
          +
          +
          #include <ctime>
          +#include "system/valueconsumer.h"
          +#include "transform.h"
          +
          +Include dependency graph for timestring.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  TimeString
           
          +
          +
          + + + + diff --git a/docs/timestring_8h__dep__incl.map b/docs/generated/docs/timestring_8h__dep__incl.map similarity index 100% rename from docs/timestring_8h__dep__incl.map rename to docs/generated/docs/timestring_8h__dep__incl.map diff --git a/docs/generated/docs/timestring_8h__dep__incl.md5 b/docs/generated/docs/timestring_8h__dep__incl.md5 new file mode 100644 index 000000000..f23eecc6a --- /dev/null +++ b/docs/generated/docs/timestring_8h__dep__incl.md5 @@ -0,0 +1 @@ +ba5f03b6b830cdd0d7a746e2be567c2f \ No newline at end of file diff --git a/docs/generated/docs/timestring_8h__dep__incl.png b/docs/generated/docs/timestring_8h__dep__incl.png new file mode 100644 index 000000000..8d09e1dd3 Binary files /dev/null and b/docs/generated/docs/timestring_8h__dep__incl.png differ diff --git a/docs/generated/docs/timestring_8h__incl.map b/docs/generated/docs/timestring_8h__incl.map new file mode 100644 index 000000000..6dc2836b0 --- /dev/null +++ b/docs/generated/docs/timestring_8h__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/timestring_8h__incl.md5 b/docs/generated/docs/timestring_8h__incl.md5 new file mode 100644 index 000000000..a4e0894f8 --- /dev/null +++ b/docs/generated/docs/timestring_8h__incl.md5 @@ -0,0 +1 @@ +57ad7281104717c2d3c367845bc90b20 \ No newline at end of file diff --git a/docs/generated/docs/timestring_8h__incl.png b/docs/generated/docs/timestring_8h__incl.png new file mode 100644 index 000000000..fc94e0b4c Binary files /dev/null and b/docs/generated/docs/timestring_8h__incl.png differ diff --git a/docs/generated/docs/timestring_8h_source.html b/docs/generated/docs/timestring_8h_source.html new file mode 100644 index 000000000..090166c5c --- /dev/null +++ b/docs/generated/docs/timestring_8h_source.html @@ -0,0 +1,121 @@ + + + + + + + +SensESP: src/transforms/timestring.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          timestring.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _timestring_H_
          +
          2 #define _timestring_H_
          +
          3 
          +
          4 #include <ctime>
          +
          5 
          +
          6 #include "system/valueconsumer.h"
          +
          7 #include "transform.h"
          +
          8 
          +
          13 class TimeString : public Transform<time_t, String> {
          +
          14  public:
          +
          15  TimeString(String config_path = "");
          +
          16  virtual void set_input(time_t input, uint8_t input_channel = 0) override;
          +
          17 };
          +
          18 
          +
          19 #endif
          +
          +
          +
          virtual void set_input(time_t input, uint8_t input_channel=0) override
          Definition: timestring.cpp:7
          + +
          TimeString(String config_path="")
          Definition: timestring.cpp:4
          + + + + + + + diff --git a/docs/generated/docs/transform_8cpp.html b/docs/generated/docs/transform_8cpp.html new file mode 100644 index 000000000..0112cc884 --- /dev/null +++ b/docs/generated/docs/transform_8cpp.html @@ -0,0 +1,131 @@ + + + + + + + +SensESP: src/transforms/transform.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          transform.cpp File Reference
          +
          +
          +
          #include "transform.h"
          +#include "ArduinoJson.h"
          +#include "sensesp.h"
          +
          +Include dependency graph for transform.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/transform_8cpp__incl.map b/docs/generated/docs/transform_8cpp__incl.map new file mode 100644 index 000000000..451095a94 --- /dev/null +++ b/docs/generated/docs/transform_8cpp__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/transform_8cpp__incl.md5 b/docs/generated/docs/transform_8cpp__incl.md5 new file mode 100644 index 000000000..c1d42f065 --- /dev/null +++ b/docs/generated/docs/transform_8cpp__incl.md5 @@ -0,0 +1 @@ +b2f750cfabb6eea9ac0ef80e23d27139 \ No newline at end of file diff --git a/docs/generated/docs/transform_8cpp__incl.png b/docs/generated/docs/transform_8cpp__incl.png new file mode 100644 index 000000000..af1f2604a Binary files /dev/null and b/docs/generated/docs/transform_8cpp__incl.png differ diff --git a/docs/generated/docs/transform_8cpp_source.html b/docs/generated/docs/transform_8cpp_source.html new file mode 100644 index 000000000..11d2a75a0 --- /dev/null +++ b/docs/generated/docs/transform_8cpp_source.html @@ -0,0 +1,119 @@ + + + + + + + +SensESP: src/transforms/transform.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          transform.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "transform.h"
          +
          2 
          +
          3 #include "ArduinoJson.h"
          +
          4 #include "sensesp.h"
          +
          5 
          +
          6 // Transform
          +
          7 
          +
          8 std::set<TransformBase*> TransformBase::transforms;
          +
          9 
          +
          10 TransformBase::TransformBase(String config_path)
          + +
          12  transforms.insert(this);
          +
          13 }
          +
          +
          +
          TransformBase(String config_path="")
          Definition: transform.cpp:10
          +
          const String config_path
          Definition: configurable.h:31
          + + +
          Definition: enable.h:18
          + + + + + diff --git a/docs/generated/docs/transform_8h.html b/docs/generated/docs/transform_8h.html new file mode 100644 index 000000000..a4ef1e1dd --- /dev/null +++ b/docs/generated/docs/transform_8h.html @@ -0,0 +1,277 @@ + + + + + + + +SensESP: src/transforms/transform.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          transform.h File Reference
          +
          +
          +
          #include <ArduinoJson.h>
          +#include <set>
          +#include "Arduino.h"
          +#include "sensesp.h"
          +#include "system/configurable.h"
          +#include "system/enable.h"
          +#include "system/observable.h"
          +#include "system/valueconsumer.h"
          +#include "system/valueproducer.h"
          +
          +Include dependency graph for transform.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + + + + + +

          +Classes

          class  TransformBase
           
          class  Transform< C, P >
           
          class  SymmetricTransform< T >
           
          + + + + + + + + + +

          +Typedefs

          typedef SymmetricTransform< float > NumericTransform
           
          typedef SymmetricTransform< int > IntegerTransform
           
          typedef SymmetricTransform< bool > BooleanTransform
           
          typedef SymmetricTransform< String > StringTransform
           
          +

          Typedef Documentation

          + +

          ◆ BooleanTransform

          + +
          +
          + + + + +
          typedef SymmetricTransform<bool> BooleanTransform
          +
          + +

          Definition at line 96 of file transform.h.

          + +
          +
          + +

          ◆ IntegerTransform

          + +
          +
          + + + + +
          typedef SymmetricTransform<int> IntegerTransform
          +
          + +

          Definition at line 95 of file transform.h.

          + +
          +
          + +

          ◆ NumericTransform

          + +
          +
          + + + + +
          typedef SymmetricTransform<float> NumericTransform
          +
          + +

          Definition at line 94 of file transform.h.

          + +
          +
          + +

          ◆ StringTransform

          + +
          +
          + + + + +
          typedef SymmetricTransform<String> StringTransform
          +
          + +

          Definition at line 97 of file transform.h.

          + +
          +
          +
          +
          + + + + diff --git a/docs/transform_8h.js b/docs/generated/docs/transform_8h.js similarity index 100% rename from docs/transform_8h.js rename to docs/generated/docs/transform_8h.js diff --git a/docs/generated/docs/transform_8h__dep__incl.map b/docs/generated/docs/transform_8h__dep__incl.map new file mode 100644 index 000000000..365d8d583 --- /dev/null +++ b/docs/generated/docs/transform_8h__dep__incl.map @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/transform_8h__dep__incl.md5 b/docs/generated/docs/transform_8h__dep__incl.md5 new file mode 100644 index 000000000..ad589f781 --- /dev/null +++ b/docs/generated/docs/transform_8h__dep__incl.md5 @@ -0,0 +1 @@ +f12771013c1d0a43ee672a773b867468 \ No newline at end of file diff --git a/docs/generated/docs/transform_8h__dep__incl.png b/docs/generated/docs/transform_8h__dep__incl.png new file mode 100644 index 000000000..fdae252ba Binary files /dev/null and b/docs/generated/docs/transform_8h__dep__incl.png differ diff --git a/docs/generated/docs/transform_8h__incl.map b/docs/generated/docs/transform_8h__incl.map new file mode 100644 index 000000000..eb76bbcc0 --- /dev/null +++ b/docs/generated/docs/transform_8h__incl.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/transform_8h__incl.md5 b/docs/generated/docs/transform_8h__incl.md5 new file mode 100644 index 000000000..553580711 --- /dev/null +++ b/docs/generated/docs/transform_8h__incl.md5 @@ -0,0 +1 @@ +9409044a90202f14d9fbb5d9e36a1bd7 \ No newline at end of file diff --git a/docs/generated/docs/transform_8h__incl.png b/docs/generated/docs/transform_8h__incl.png new file mode 100644 index 000000000..479501beb Binary files /dev/null and b/docs/generated/docs/transform_8h__incl.png differ diff --git a/docs/generated/docs/transform_8h_source.html b/docs/generated/docs/transform_8h_source.html new file mode 100644 index 000000000..31fd8d77d --- /dev/null +++ b/docs/generated/docs/transform_8h_source.html @@ -0,0 +1,198 @@ + + + + + + + +SensESP: src/transforms/transform.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          transform.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _transform_H_
          +
          2 #define _transform_H_
          +
          3 
          +
          4 #include <ArduinoJson.h>
          +
          5 
          +
          6 #include <set>
          +
          7 
          +
          8 #include "Arduino.h"
          +
          9 #include "sensesp.h"
          +
          10 #include "system/configurable.h"
          +
          11 #include "system/enable.h"
          +
          12 #include "system/observable.h"
          +
          13 #include "system/valueconsumer.h"
          +
          14 #include "system/valueproducer.h"
          +
          15 
          +
          16 // TODO: Split into multiple files
          +
          17 
          +
          19 // Transforms transform raw device readouts into useful sensor values.
          +
          20 
          +
          27 class TransformBase : public Configurable, public Enable {
          +
          28  public:
          +
          29  TransformBase(String config_path = "");
          +
          30 
          +
          31  // Primary purpose of this was to supply Signal K sources
          +
          32  // (now handled by SKEmitter::get_sources). Should
          +
          33  // this be deprecated?
          +
          34  static const std::set<TransformBase*>& get_transforms() { return transforms; }
          +
          35 
          +
          36  private:
          +
          37  static std::set<TransformBase*> transforms;
          +
          38 };
          +
          39 
          +
          45 template <typename C, typename P>
          +
          46 class Transform : public TransformBase,
          +
          47  public ValueConsumer<C>,
          +
          48  public ValueProducer<P> {
          +
          49  public:
          +
          50  Transform(String config_path = "")
          +
          51  : TransformBase(config_path), ValueConsumer<C>(), ValueProducer<P>() {}
          +
          52 
          + +
          63  ValueProducer<P>* producer1 = NULL,
          +
          64  ValueProducer<P>* producer2 = NULL,
          +
          65  ValueProducer<P>* producer3 = NULL,
          +
          66  ValueProducer<P>* producer4 = NULL) {
          +
          67  this->ValueConsumer<C>::connect_from(producer0);
          +
          68  if (producer1 != NULL) {
          +
          69  this->ValueConsumer<C>::connect_from(producer1, 1);
          +
          70  }
          +
          71  if (producer2 != NULL) {
          +
          72  this->ValueConsumer<C>::connect_from(producer2, 2);
          +
          73  }
          +
          74  if (producer3 != NULL) {
          +
          75  this->ValueConsumer<C>::connect_from(producer3, 3);
          +
          76  }
          +
          77  if (producer4 != NULL) {
          +
          78  this->ValueConsumer<C>::connect_from(producer4, 4);
          +
          79  }
          +
          80  return this;
          +
          81  }
          +
          82 };
          +
          83 
          +
          88 template <typename T>
          +
          89 class SymmetricTransform : public Transform<T, T> {
          +
          90  public:
          +
          91  SymmetricTransform(String config_path = "") : Transform<T, T>(config_path) {}
          +
          92 };
          +
          93 
          + + + + +
          98 
          +
          99 #endif
          +
          +
          +
          static const std::set< TransformBase * > & get_transforms()
          Definition: transform.h:34
          +
          Transform(String config_path="")
          Definition: transform.h:50
          + +
          SymmetricTransform< bool > BooleanTransform
          Definition: transform.h:96
          +
          Transform< C, P > * connectFrom(ValueProducer< P > *producer0, ValueProducer< P > *producer1=NULL, ValueProducer< P > *producer2=NULL, ValueProducer< P > *producer3=NULL, ValueProducer< P > *producer4=NULL)
          Definition: transform.h:62
          + + +
          SymmetricTransform< float > NumericTransform
          Definition: transform.h:94
          +
          SymmetricTransform< int > IntegerTransform
          Definition: transform.h:95
          + +
          TransformBase(String config_path="")
          Definition: transform.cpp:10
          + +
          const String config_path
          Definition: configurable.h:31
          +
          SymmetricTransform(String config_path="")
          Definition: transform.h:91
          + +
          void connect_from(ValueProducer< T > *producer, uint8_t input_channel=0)
          Definition: valueconsumer.h:38
          + + +
          SymmetricTransform< String > StringTransform
          Definition: transform.h:97
          + +
          Definition: enable.h:18
          + + + + + + + diff --git a/docs/generated/docs/ultrasonic__distance_8cpp.html b/docs/generated/docs/ultrasonic__distance_8cpp.html new file mode 100644 index 000000000..ab543028c --- /dev/null +++ b/docs/generated/docs/ultrasonic__distance_8cpp.html @@ -0,0 +1,132 @@ + + + + + + + +SensESP: src/sensors/ultrasonic_distance.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          ultrasonic_distance.cpp File Reference
          +
          +
          +
          #include "ultrasonic_distance.h"
          +#include "Arduino.h"
          +#include "sensesp.h"
          +
          +Include dependency graph for ultrasonic_distance.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/ultrasonic__distance_8cpp__incl.map b/docs/generated/docs/ultrasonic__distance_8cpp__incl.map new file mode 100644 index 000000000..c27c5f8e5 --- /dev/null +++ b/docs/generated/docs/ultrasonic__distance_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/ultrasonic__distance_8cpp__incl.md5 b/docs/generated/docs/ultrasonic__distance_8cpp__incl.md5 new file mode 100644 index 000000000..d2845f241 --- /dev/null +++ b/docs/generated/docs/ultrasonic__distance_8cpp__incl.md5 @@ -0,0 +1 @@ +2faaec180aff3800ad81bf839af2f4e6 \ No newline at end of file diff --git a/docs/generated/docs/ultrasonic__distance_8cpp__incl.png b/docs/generated/docs/ultrasonic__distance_8cpp__incl.png new file mode 100644 index 000000000..d6ca4d9c4 Binary files /dev/null and b/docs/generated/docs/ultrasonic__distance_8cpp__incl.png differ diff --git a/docs/generated/docs/ultrasonic__distance_8cpp_source.html b/docs/generated/docs/ultrasonic__distance_8cpp_source.html new file mode 100644 index 000000000..3500ba49a --- /dev/null +++ b/docs/generated/docs/ultrasonic__distance_8cpp_source.html @@ -0,0 +1,163 @@ + + + + + + + +SensESP: src/sensors/ultrasonic_distance.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          ultrasonic_distance.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "ultrasonic_distance.h"
          +
          2 
          +
          3 #include "Arduino.h"
          +
          4 #include "sensesp.h"
          +
          5 
          +
          6 UltrasonicDistance::UltrasonicDistance(int8_t trig_pin, int8_t input_pin,
          +
          7  uint read_delay, String config_path)
          +
          8  : NumericSensor(config_path),
          +
          9  trigger_pin{trig_pin},
          +
          10  input_pin{input_pin},
          +
          11  read_delay{read_delay} {
          +
          12  pinMode(trig_pin, OUTPUT);
          +
          13  pinMode(input_pin, INPUT_PULLUP);
          +
          14  load_configuration();
          +
          15 }
          +
          16 
          + +
          18  app.onRepeat(read_delay, [this]() {
          +
          19  digitalWrite(trigger_pin, HIGH);
          +
          20  long lastTime = micros();
          +
          21  while (micros() - lastTime < 100) {
          +
          22  yield();
          +
          23  }
          +
          24  digitalWrite(trigger_pin, LOW);
          +
          25  output = pulseIn(input_pin, HIGH);
          +
          26  this->notify();
          +
          27  });
          +
          28 }
          +
          29 
          +
          30 void UltrasonicDistance::get_configuration(JsonObject& root) {
          +
          31  root["read_delay"] = read_delay;
          +
          32  root["value"] = output;
          +
          33 };
          +
          34 
          +
          35 static const char SCHEMA[] PROGMEM = R"###({
          +
          36  "type": "object",
          +
          37  "properties": {
          +
          38  "read_delay": { "title": "Read delay", "type": "number", "description": "Number of milliseconds between each thermocouple read " },
          +
          39  "value": { "title": "Last value", "type" : "number", "readOnly": true }
          +
          40  }
          +
          41  })###";
          +
          42 
          +
          43 String UltrasonicDistance::get_config_schema() { return FPSTR(SCHEMA); }
          +
          44 
          +
          45 bool UltrasonicDistance::set_configuration(const JsonObject& config) {
          +
          46  String expected[] = {"read_delay"};
          +
          47  for (auto str : expected) {
          +
          48  if (!config.containsKey(str)) {
          +
          49  return false;
          +
          50  }
          +
          51  }
          +
          52  read_delay = config["read_delay"];
          +
          53  return true;
          +
          54 }
          +
          +
          +
          void notify()
          Definition: observable.cpp:3
          + +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          +
          void enable() override final
          +
          UltrasonicDistance(int8_t trigger_pin, int8_t input_pin, uint read_delay=1000, String config_path="")
          + + + +
          ReactESP app
          + + + + diff --git a/docs/generated/docs/ultrasonic__distance_8h.html b/docs/generated/docs/ultrasonic__distance_8h.html new file mode 100644 index 000000000..4619149f7 --- /dev/null +++ b/docs/generated/docs/ultrasonic__distance_8h.html @@ -0,0 +1,169 @@ + + + + + + + +SensESP: src/sensors/ultrasonic_distance.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          ultrasonic_distance.h File Reference
          +
          +
          +
          #include "sensor.h"
          +
          +Include dependency graph for ultrasonic_distance.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  UltrasonicDistance
           
          + + + +

          +Typedefs

          typedef UltrasonicDistance UltrasonicSens
           
          +

          Typedef Documentation

          + +

          ◆ UltrasonicSens

          + +
          +
          + + + + +
          typedef UltrasonicDistance UltrasonicSens
          +
          + +

          Definition at line 23 of file ultrasonic_distance.h.

          + +
          +
          +
          +
          + + + + diff --git a/docs/generated/docs/ultrasonic__distance_8h.js b/docs/generated/docs/ultrasonic__distance_8h.js new file mode 100644 index 000000000..56167886f --- /dev/null +++ b/docs/generated/docs/ultrasonic__distance_8h.js @@ -0,0 +1,5 @@ +var ultrasonic__distance_8h = +[ + [ "UltrasonicDistance", "class_ultrasonic_distance.html", "class_ultrasonic_distance" ], + [ "UltrasonicSens", "ultrasonic__distance_8h.html#a338eb3dc4d54d3371114ad3304ffab4f", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/ultrasonic__distance_8h__dep__incl.map b/docs/generated/docs/ultrasonic__distance_8h__dep__incl.map new file mode 100644 index 000000000..10d59866e --- /dev/null +++ b/docs/generated/docs/ultrasonic__distance_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/ultrasonic__distance_8h__dep__incl.md5 b/docs/generated/docs/ultrasonic__distance_8h__dep__incl.md5 new file mode 100644 index 000000000..38c160d67 --- /dev/null +++ b/docs/generated/docs/ultrasonic__distance_8h__dep__incl.md5 @@ -0,0 +1 @@ +b0fdc52467e3fcb11336e15d12e20e15 \ No newline at end of file diff --git a/docs/generated/docs/ultrasonic__distance_8h__dep__incl.png b/docs/generated/docs/ultrasonic__distance_8h__dep__incl.png new file mode 100644 index 000000000..0f2624c6c Binary files /dev/null and b/docs/generated/docs/ultrasonic__distance_8h__dep__incl.png differ diff --git a/docs/generated/docs/ultrasonic__distance_8h__incl.map b/docs/generated/docs/ultrasonic__distance_8h__incl.map new file mode 100644 index 000000000..5450f2b7e --- /dev/null +++ b/docs/generated/docs/ultrasonic__distance_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/ultrasonic__distance_8h__incl.md5 b/docs/generated/docs/ultrasonic__distance_8h__incl.md5 new file mode 100644 index 000000000..45045b857 --- /dev/null +++ b/docs/generated/docs/ultrasonic__distance_8h__incl.md5 @@ -0,0 +1 @@ +8a27772c1e84a5901bbdef74f7b10c1c \ No newline at end of file diff --git a/docs/generated/docs/ultrasonic__distance_8h__incl.png b/docs/generated/docs/ultrasonic__distance_8h__incl.png new file mode 100644 index 000000000..fba7d762b Binary files /dev/null and b/docs/generated/docs/ultrasonic__distance_8h__incl.png differ diff --git a/docs/generated/docs/ultrasonic__distance_8h_source.html b/docs/generated/docs/ultrasonic__distance_8h_source.html new file mode 100644 index 000000000..32edddea9 --- /dev/null +++ b/docs/generated/docs/ultrasonic__distance_8h_source.html @@ -0,0 +1,132 @@ + + + + + + + +SensESP: src/sensors/ultrasonic_distance.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          ultrasonic_distance.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _ultrasonic_distance_H_
          +
          2 #define _ultrasonic_distance_H_
          +
          3 #include "sensor.h"
          +
          4 
          +
          5 // FIXME: This class would need at least some minimal documentation
          + +
          7  public:
          +
          8  UltrasonicDistance(int8_t trigger_pin, int8_t input_pin,
          +
          9  uint read_delay = 1000, String config_path = "");
          +
          10  void enable() override final;
          +
          11 
          +
          12  private:
          +
          13  int8_t trigger_pin;
          +
          14  int8_t input_pin;
          +
          15  uint read_delay;
          +
          16  virtual void get_configuration(JsonObject& doc) override;
          +
          17  virtual bool set_configuration(const JsonObject& config) override;
          +
          18  virtual String get_config_schema() override;
          +
          19 };
          +
          20 
          +
          21 // FIXME: Uncomment the following once the PIO Xtensa toolchain is updated
          +
          22 // [[deprecated("Use UltrasonicDistance instead.")]]
          + +
          24 
          +
          25 #endif
          +
          +
          +
          void enable() override final
          + +
          UltrasonicDistance UltrasonicSens
          +
          UltrasonicDistance(int8_t trigger_pin, int8_t input_pin, uint read_delay=1000, String config_path="")
          + +
          const String config_path
          Definition: configurable.h:31
          + + + + + diff --git a/docs/generated/docs/valueconsumer_8h.html b/docs/generated/docs/valueconsumer_8h.html new file mode 100644 index 000000000..c9dca7daf --- /dev/null +++ b/docs/generated/docs/valueconsumer_8h.html @@ -0,0 +1,260 @@ + + + + + + + +SensESP: src/system/valueconsumer.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          valueconsumer.h File Reference
          +
          +
          +
          #include <ArduinoJson.h>
          +#include <stdint.h>
          +#include "sensesp.h"
          +
          +Include dependency graph for valueconsumer.h:
          +
          +
          + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  ValueConsumer< T >
           
          + + + + + + + + + +

          +Typedefs

          typedef ValueConsumer< float > NumericConsumer
           
          typedef ValueConsumer< int > IntegerConsumer
           
          typedef ValueConsumer< bool > BooleanConsumer
           
          typedef ValueConsumer< String > StringConsumer
           
          +

          Typedef Documentation

          + +

          ◆ BooleanConsumer

          + +
          +
          + + + + +
          typedef ValueConsumer<bool> BooleanConsumer
          +
          + +

          Definition at line 54 of file valueconsumer.h.

          + +
          +
          + +

          ◆ IntegerConsumer

          + +
          +
          + + + + +
          typedef ValueConsumer<int> IntegerConsumer
          +
          + +

          Definition at line 53 of file valueconsumer.h.

          + +
          +
          + +

          ◆ NumericConsumer

          + +
          +
          + + + + +
          typedef ValueConsumer<float> NumericConsumer
          +
          + +

          Definition at line 52 of file valueconsumer.h.

          + +
          +
          + +

          ◆ StringConsumer

          + +
          +
          + + + + +
          typedef ValueConsumer<String> StringConsumer
          +
          + +

          Definition at line 55 of file valueconsumer.h.

          + +
          +
          +
          +
          + + + + diff --git a/docs/valueconsumer_8h.js b/docs/generated/docs/valueconsumer_8h.js similarity index 85% rename from docs/valueconsumer_8h.js rename to docs/generated/docs/valueconsumer_8h.js index 756326b92..1c1602c6f 100644 --- a/docs/valueconsumer_8h.js +++ b/docs/generated/docs/valueconsumer_8h.js @@ -1,6 +1,5 @@ var valueconsumer_8h = [ - [ "ValueProducer", "class_value_producer.html", "class_value_producer" ], [ "ValueConsumer", "class_value_consumer.html", "class_value_consumer" ], [ "BooleanConsumer", "valueconsumer_8h.html#abea8a189967941972b3e7c5a329c4963", null ], [ "IntegerConsumer", "valueconsumer_8h.html#a45a844f7269f830a1f708f965627248c", null ], diff --git a/docs/generated/docs/valueconsumer_8h__dep__incl.map b/docs/generated/docs/valueconsumer_8h__dep__incl.map new file mode 100644 index 000000000..ec9846c52 --- /dev/null +++ b/docs/generated/docs/valueconsumer_8h__dep__incl.map @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/valueconsumer_8h__dep__incl.md5 b/docs/generated/docs/valueconsumer_8h__dep__incl.md5 new file mode 100644 index 000000000..10419f173 --- /dev/null +++ b/docs/generated/docs/valueconsumer_8h__dep__incl.md5 @@ -0,0 +1 @@ +c5da297090fa85b2453624a2ef5f1deb \ No newline at end of file diff --git a/docs/generated/docs/valueconsumer_8h__dep__incl.png b/docs/generated/docs/valueconsumer_8h__dep__incl.png new file mode 100644 index 000000000..ccc9e5447 Binary files /dev/null and b/docs/generated/docs/valueconsumer_8h__dep__incl.png differ diff --git a/docs/generated/docs/valueconsumer_8h__incl.map b/docs/generated/docs/valueconsumer_8h__incl.map new file mode 100644 index 000000000..a8ad0710f --- /dev/null +++ b/docs/generated/docs/valueconsumer_8h__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/generated/docs/valueconsumer_8h__incl.md5 b/docs/generated/docs/valueconsumer_8h__incl.md5 new file mode 100644 index 000000000..f9d67cca2 --- /dev/null +++ b/docs/generated/docs/valueconsumer_8h__incl.md5 @@ -0,0 +1 @@ +b2c3cd9c54beca20f26bc5058df2a89a \ No newline at end of file diff --git a/docs/generated/docs/valueconsumer_8h__incl.png b/docs/generated/docs/valueconsumer_8h__incl.png new file mode 100644 index 000000000..7ec255e0e Binary files /dev/null and b/docs/generated/docs/valueconsumer_8h__incl.png differ diff --git a/docs/generated/docs/valueconsumer_8h_source.html b/docs/generated/docs/valueconsumer_8h_source.html new file mode 100644 index 000000000..597feeaff --- /dev/null +++ b/docs/generated/docs/valueconsumer_8h_source.html @@ -0,0 +1,145 @@ + + + + + + + +SensESP: src/system/valueconsumer.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          valueconsumer.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _value_consumer_H_
          +
          2 #define _value_consumer_H_
          +
          3 
          +
          4 #include <ArduinoJson.h>
          +
          5 #include <stdint.h>
          +
          6 #include "sensesp.h"
          +
          7 template <typename T>
          +
          8 class ValueProducer;
          +
          9 
          +
          17 template <typename T>
          + +
          19  public:
          +
          28  virtual void set_input(T new_value, uint8_t input_channel = 0) {}
          +
          29 
          +
          38  void connect_from(ValueProducer<T>* producer, uint8_t input_channel = 0) {
          +
          39  producer->attach([producer, this, input_channel]() {
          +
          40  this->set_input(producer->get(), input_channel);
          +
          41  });
          +
          42  }
          +
          43  // FIXME: Uncomment the following once the PIO Xtensa toolchain is updated
          +
          44  // [[deprecated("Use connect_from() instead.")]]
          + +
          46  ValueProducer<T>* producer, uint8_t input_channel = 0) {
          +
          47  debugW("Use connect_from() instead.");
          +
          48  connect_from(producer, input_channel);
          +
          49  }
          +
          50 };
          +
          51 
          + + + + +
          56 
          +
          57 #endif
          +
          +
          +
          ValueConsumer< bool > BooleanConsumer
          Definition: valueconsumer.h:54
          +
          ValueConsumer< String > StringConsumer
          Definition: valueconsumer.h:55
          +
          ValueConsumer< float > NumericConsumer
          Definition: valueconsumer.h:52
          +
          ValueConsumer< int > IntegerConsumer
          Definition: valueconsumer.h:53
          + + +
          virtual void set_input(T new_value, uint8_t input_channel=0)
          Definition: valueconsumer.h:28
          + +
          void connect_from(ValueProducer< T > *producer, uint8_t input_channel=0)
          Definition: valueconsumer.h:38
          +
          void connectFrom(ValueProducer< T > *producer, uint8_t input_channel=0)
          Definition: valueconsumer.h:45
          +
          virtual const T & get()
          Definition: valueproducer.h:27
          + + + + diff --git a/docs/generated/docs/valueproducer_8h.html b/docs/generated/docs/valueproducer_8h.html new file mode 100644 index 000000000..c3e2584ff --- /dev/null +++ b/docs/generated/docs/valueproducer_8h.html @@ -0,0 +1,265 @@ + + + + + + + +SensESP: src/system/valueproducer.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          valueproducer.h File Reference
          +
          +
          +
          #include <ArduinoJson.h>
          +#include "observable.h"
          +#include "valueconsumer.h"
          +
          +Include dependency graph for valueproducer.h:
          +
          +
          + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  ValueProducer< T >
           
          + + + + + + + + + +

          +Typedefs

          typedef ValueProducer< float > NumericProducer
           
          typedef ValueProducer< int > IntegerProducer
           
          typedef ValueProducer< bool > BooleanProducer
           
          typedef ValueProducer< String > StringProducer
           
          +

          Typedef Documentation

          + +

          ◆ BooleanProducer

          + +
          +
          + + + + +
          typedef ValueProducer<bool> BooleanProducer
          +
          + +

          Definition at line 91 of file valueproducer.h.

          + +
          +
          + +

          ◆ IntegerProducer

          + +
          +
          + + + + +
          typedef ValueProducer<int> IntegerProducer
          +
          + +

          Definition at line 90 of file valueproducer.h.

          + +
          +
          + +

          ◆ NumericProducer

          + +
          +
          + + + + +
          typedef ValueProducer<float> NumericProducer
          +
          + +

          Definition at line 89 of file valueproducer.h.

          + +
          +
          + +

          ◆ StringProducer

          + +
          +
          + + + + +
          typedef ValueProducer<String> StringProducer
          +
          + +

          Definition at line 92 of file valueproducer.h.

          + +
          +
          +
          +
          + + + + diff --git a/docs/valueproducer_8h.js b/docs/generated/docs/valueproducer_8h.js similarity index 88% rename from docs/valueproducer_8h.js rename to docs/generated/docs/valueproducer_8h.js index 91c1be545..ac59c27b7 100644 --- a/docs/valueproducer_8h.js +++ b/docs/generated/docs/valueproducer_8h.js @@ -1,6 +1,5 @@ var valueproducer_8h = [ - [ "Transform", "class_transform.html", "class_transform" ], [ "ValueProducer", "class_value_producer.html", "class_value_producer" ], [ "BooleanProducer", "valueproducer_8h.html#a79edc4b65652f6948d690891bb6d7e0c", null ], [ "IntegerProducer", "valueproducer_8h.html#ab74ca4be7de22a21f73128ea38a4cbbb", null ], diff --git a/docs/generated/docs/valueproducer_8h__dep__incl.map b/docs/generated/docs/valueproducer_8h__dep__incl.map new file mode 100644 index 000000000..8ce9627b1 --- /dev/null +++ b/docs/generated/docs/valueproducer_8h__dep__incl.map @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/valueproducer_8h__dep__incl.md5 b/docs/generated/docs/valueproducer_8h__dep__incl.md5 new file mode 100644 index 000000000..8164baa16 --- /dev/null +++ b/docs/generated/docs/valueproducer_8h__dep__incl.md5 @@ -0,0 +1 @@ +513767ffc549ed132f6adb6bb3137424 \ No newline at end of file diff --git a/docs/generated/docs/valueproducer_8h__dep__incl.png b/docs/generated/docs/valueproducer_8h__dep__incl.png new file mode 100644 index 000000000..192d7e4f6 Binary files /dev/null and b/docs/generated/docs/valueproducer_8h__dep__incl.png differ diff --git a/docs/generated/docs/valueproducer_8h__incl.map b/docs/generated/docs/valueproducer_8h__incl.map new file mode 100644 index 000000000..f63274c4d --- /dev/null +++ b/docs/generated/docs/valueproducer_8h__incl.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/docs/generated/docs/valueproducer_8h__incl.md5 b/docs/generated/docs/valueproducer_8h__incl.md5 new file mode 100644 index 000000000..8aecbce93 --- /dev/null +++ b/docs/generated/docs/valueproducer_8h__incl.md5 @@ -0,0 +1 @@ +686bc1842b58305f95257fc476ace156 \ No newline at end of file diff --git a/docs/generated/docs/valueproducer_8h__incl.png b/docs/generated/docs/valueproducer_8h__incl.png new file mode 100644 index 000000000..61aeb7de8 Binary files /dev/null and b/docs/generated/docs/valueproducer_8h__incl.png differ diff --git a/docs/generated/docs/valueproducer_8h_source.html b/docs/generated/docs/valueproducer_8h_source.html new file mode 100644 index 000000000..d2691be67 --- /dev/null +++ b/docs/generated/docs/valueproducer_8h_source.html @@ -0,0 +1,180 @@ + + + + + + + +SensESP: src/system/valueproducer.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          valueproducer.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _value_producer_H_
          +
          2 #define _value_producer_H_
          +
          3 
          +
          4 #include <ArduinoJson.h>
          +
          5 
          +
          6 #include "observable.h"
          +
          7 #include "valueconsumer.h"
          +
          8 
          +
          9 // The Transform class is defined in transforms/transform.h
          +
          10 template <typename C, typename P>
          +
          11 class Transform;
          +
          12 
          +
          19 template <typename T>
          +
          20 class ValueProducer : virtual public Observable {
          +
          21  public:
          + +
          23 
          +
          27  virtual const T& get() { return output; }
          +
          28 
          +
          38  void connect_to(ValueConsumer<T>* consumer, uint8_t input_channel = 0) {
          +
          39  this->attach([this, consumer, input_channel]() {
          +
          40  consumer->set_input(this->get(), input_channel);
          +
          41  });
          +
          42  }
          +
          43 
          +
          44  // FIXME: Uncomment the following once the PIO Xtensa toolchain is updated
          +
          45  // [[deprecated("Use connect_to() instead.")]]
          +
          46  void connectTo(
          +
          47  ValueConsumer<T>* consumer, uint8_t input_channel = 0) {
          +
          48  debugW("Use connect_to() instead.");
          +
          49  connect_to(consumer, input_channel);
          +
          50  }
          +
          51 
          +
          63  template <typename T2>
          + +
          65  uint8_t input_channel = 0) {
          +
          66  this->attach([this, consumer_producer, input_channel]() {
          +
          67  consumer_producer->set_input(this->get(), input_channel);
          +
          68  });
          +
          69  return consumer_producer;
          +
          70  }
          +
          71 
          +
          72  template <typename T2>
          +
          73  // FIXME: Uncomment the following once the PIO Xtensa toolchain is updated
          +
          74  //[[deprecated("Use connect_to(...) instead.")]]
          + +
          76  Transform<T, T2>* consumer_producer, uint8_t input_channel = 0) {
          +
          77  debugW("Use connect_to(...) instead.");
          +
          78  return connect_to(consumer_producer, input_channel);
          +
          79  }
          +
          80 
          +
          81  protected:
          +
          86  T output;
          +
          87 };
          +
          88 
          + + + + +
          93 
          +
          94 #endif
          +
          +
          +
          ValueProducer< bool > BooleanProducer
          Definition: valueproducer.h:91
          + +
          void connect_to(ValueConsumer< T > *consumer, uint8_t input_channel=0)
          Definition: valueproducer.h:38
          +
          ValueProducer< String > StringProducer
          Definition: valueproducer.h:92
          + + + + +
          virtual void set_input(T new_value, uint8_t input_channel=0)
          Definition: valueconsumer.h:28
          + +
          Transform< T, T2 > * connectTo(Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)
          Definition: valueproducer.h:75
          +
          hostname attach([hostname, this]() { this->sk_delta->set_hostname(hostname->get());})
          +
          Transform< T, T2 > * connect_to(Transform< T, T2 > *consumer_producer, uint8_t input_channel=0)
          Definition: valueproducer.h:64
          +
          ValueProducer< int > IntegerProducer
          Definition: valueproducer.h:90
          +
          ValueProducer< float > NumericProducer
          Definition: valueproducer.h:89
          +
          void connectTo(ValueConsumer< T > *consumer, uint8_t input_channel=0)
          Definition: valueproducer.h:46
          + + +
          virtual const T & get()
          Definition: valueproducer.h:27
          + + + + diff --git a/docs/generated/docs/voltage__multiplier_8cpp.html b/docs/generated/docs/voltage__multiplier_8cpp.html new file mode 100644 index 000000000..7baa11820 --- /dev/null +++ b/docs/generated/docs/voltage__multiplier_8cpp.html @@ -0,0 +1,130 @@ + + + + + + + +SensESP: src/transforms/voltage_multiplier.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          voltage_multiplier.cpp File Reference
          +
          +
          +
          +Include dependency graph for voltage_multiplier.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/voltage__multiplier_8cpp__incl.map b/docs/generated/docs/voltage__multiplier_8cpp__incl.map new file mode 100644 index 000000000..94e66805b --- /dev/null +++ b/docs/generated/docs/voltage__multiplier_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/voltage__multiplier_8cpp__incl.md5 b/docs/generated/docs/voltage__multiplier_8cpp__incl.md5 new file mode 100644 index 000000000..5397e6ccc --- /dev/null +++ b/docs/generated/docs/voltage__multiplier_8cpp__incl.md5 @@ -0,0 +1 @@ +2dd926ca15be23c81a83dfb2c8094ec1 \ No newline at end of file diff --git a/docs/generated/docs/voltage__multiplier_8cpp__incl.png b/docs/generated/docs/voltage__multiplier_8cpp__incl.png new file mode 100644 index 000000000..39851a69d Binary files /dev/null and b/docs/generated/docs/voltage__multiplier_8cpp__incl.png differ diff --git a/docs/generated/docs/voltage__multiplier_8cpp_source.html b/docs/generated/docs/voltage__multiplier_8cpp_source.html new file mode 100644 index 000000000..c0daf8892 --- /dev/null +++ b/docs/generated/docs/voltage__multiplier_8cpp_source.html @@ -0,0 +1,145 @@ + + + + + + + +SensESP: src/transforms/voltage_multiplier.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          voltage_multiplier.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "voltage_multiplier.h"
          +
          2 
          +
          3 VoltageMultiplier::VoltageMultiplier(uint16_t R1, uint16_t R2,
          +
          4  String config_path)
          +
          5  : NumericTransform(config_path), R1{R1}, R2{R2} {}
          +
          6 
          +
          7 void VoltageMultiplier::set_input(float input, uint8_t inputChannel) {
          +
          8  // Ohms Law at work!
          +
          9  output = input * (((float)R1 + (float)R2) / (float)R2);
          +
          10  notify();
          +
          11 }
          +
          12 
          +
          13 void VoltageMultiplier::get_configuration(JsonObject& root) {
          +
          14  root["R1"] = R1;
          +
          15  root["R2"] = R2;
          +
          16  root["value"] = output;
          +
          17 };
          +
          18 
          +
          19 static const char SCHEMA[] PROGMEM = R"###({
          +
          20  "type": "object",
          +
          21  "properties": {
          +
          22  "R1": { "title": "R1", "type": "number", "description": "The measured value of resistor R1" },
          +
          23  "R2": { "title": "R2", "type": "number", "description": "The measured value of resistor R2" },
          +
          24  "value": { "title": "Last value", "type" : "number", "readOnly": true }
          +
          25  }
          +
          26  })###";
          +
          27 
          +
          28 String VoltageMultiplier::get_config_schema() { return FPSTR(SCHEMA); }
          +
          29 
          +
          30 bool VoltageMultiplier::set_configuration(const JsonObject& config) {
          +
          31  String expected[] = {"R1", "R2"};
          +
          32  for (auto str : expected) {
          +
          33  if (!config.containsKey(str)) {
          +
          34  return false;
          +
          35  }
          +
          36  }
          +
          37  R1 = config["R1"];
          +
          38  R2 = config["R2"];
          +
          39  return true;
          +
          40 }
          +
          +
          + + +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          +
          VoltageMultiplier(uint16_t R1, uint16_t R2, String config_path="")
          +
          virtual void set_input(float input, uint8_t inputChannel=0)
          + + + + diff --git a/docs/generated/docs/voltage__multiplier_8h.html b/docs/generated/docs/voltage__multiplier_8h.html new file mode 100644 index 000000000..a842a1a93 --- /dev/null +++ b/docs/generated/docs/voltage__multiplier_8h.html @@ -0,0 +1,146 @@ + + + + + + + +SensESP: src/transforms/voltage_multiplier.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          voltage_multiplier.h File Reference
          +
          +
          +
          +Include dependency graph for voltage_multiplier.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  VoltageMultiplier
           
          +
          +
          + + + + diff --git a/docs/generated/docs/voltage__multiplier_8h__dep__incl.map b/docs/generated/docs/voltage__multiplier_8h__dep__incl.map new file mode 100644 index 000000000..acde1c81e --- /dev/null +++ b/docs/generated/docs/voltage__multiplier_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/voltage__multiplier_8h__dep__incl.md5 b/docs/generated/docs/voltage__multiplier_8h__dep__incl.md5 new file mode 100644 index 000000000..f90aae9ae --- /dev/null +++ b/docs/generated/docs/voltage__multiplier_8h__dep__incl.md5 @@ -0,0 +1 @@ +c7ec51aac89db568973042efce37084c \ No newline at end of file diff --git a/docs/generated/docs/voltage__multiplier_8h__dep__incl.png b/docs/generated/docs/voltage__multiplier_8h__dep__incl.png new file mode 100644 index 000000000..52545e661 Binary files /dev/null and b/docs/generated/docs/voltage__multiplier_8h__dep__incl.png differ diff --git a/docs/generated/docs/voltage__multiplier_8h__incl.map b/docs/generated/docs/voltage__multiplier_8h__incl.map new file mode 100644 index 000000000..8c25af677 --- /dev/null +++ b/docs/generated/docs/voltage__multiplier_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/voltage__multiplier_8h__incl.md5 b/docs/generated/docs/voltage__multiplier_8h__incl.md5 new file mode 100644 index 000000000..95044dd47 --- /dev/null +++ b/docs/generated/docs/voltage__multiplier_8h__incl.md5 @@ -0,0 +1 @@ +cb50d149177ddd5366f06cb29d43a79b \ No newline at end of file diff --git a/docs/generated/docs/voltage__multiplier_8h__incl.png b/docs/generated/docs/voltage__multiplier_8h__incl.png new file mode 100644 index 000000000..88b10fcfb Binary files /dev/null and b/docs/generated/docs/voltage__multiplier_8h__incl.png differ diff --git a/docs/generated/docs/voltage__multiplier_8h_source.html b/docs/generated/docs/voltage__multiplier_8h_source.html new file mode 100644 index 000000000..1f3dbf4dd --- /dev/null +++ b/docs/generated/docs/voltage__multiplier_8h_source.html @@ -0,0 +1,125 @@ + + + + + + + +SensESP: src/transforms/voltage_multiplier.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          voltage_multiplier.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _voltage_multiplier_H
          +
          2 #define _voltage_multiplier_H
          +
          3 
          +
          4 #include "transforms/transform.h"
          +
          5 
          + +
          26  public:
          +
          27  VoltageMultiplier(uint16_t R1, uint16_t R2, String config_path = "");
          +
          28 
          +
          29  virtual void set_input(float input, uint8_t inputChannel = 0);
          +
          30 
          +
          31  private:
          +
          32  uint16_t R1;
          +
          33  uint16_t R2;
          +
          34  virtual void get_configuration(JsonObject& doc) override;
          +
          35  virtual bool set_configuration(const JsonObject& config) override;
          +
          36  virtual String get_config_schema() override;
          +
          37 };
          +
          38 
          +
          39 #endif
          +
          +
          + +
          VoltageMultiplier(uint16_t R1, uint16_t R2, String config_path="")
          + + +
          virtual void set_input(float input, uint8_t inputChannel=0)
          + + + + diff --git a/docs/generated/docs/voltagedivider_8cpp.html b/docs/generated/docs/voltagedivider_8cpp.html new file mode 100644 index 000000000..30c4a2e7d --- /dev/null +++ b/docs/generated/docs/voltagedivider_8cpp.html @@ -0,0 +1,130 @@ + + + + + + + +SensESP: src/transforms/voltagedivider.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          voltagedivider.cpp File Reference
          +
          +
          +
          #include "voltagedivider.h"
          +
          +Include dependency graph for voltagedivider.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          +
          +
          + + + + diff --git a/docs/generated/docs/voltagedivider_8cpp__incl.map b/docs/generated/docs/voltagedivider_8cpp__incl.map new file mode 100644 index 000000000..98895177f --- /dev/null +++ b/docs/generated/docs/voltagedivider_8cpp__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/voltagedivider_8cpp__incl.md5 b/docs/generated/docs/voltagedivider_8cpp__incl.md5 new file mode 100644 index 000000000..0756053b9 --- /dev/null +++ b/docs/generated/docs/voltagedivider_8cpp__incl.md5 @@ -0,0 +1 @@ +2180b4cd79d753fb6632a1eb59babc2e \ No newline at end of file diff --git a/docs/generated/docs/voltagedivider_8cpp__incl.png b/docs/generated/docs/voltagedivider_8cpp__incl.png new file mode 100644 index 000000000..4938fd300 Binary files /dev/null and b/docs/generated/docs/voltagedivider_8cpp__incl.png differ diff --git a/docs/generated/docs/voltagedivider_8cpp_source.html b/docs/generated/docs/voltagedivider_8cpp_source.html new file mode 100644 index 000000000..b0c096ec8 --- /dev/null +++ b/docs/generated/docs/voltagedivider_8cpp_source.html @@ -0,0 +1,202 @@ + + + + + + + +SensESP: src/transforms/voltagedivider.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          voltagedivider.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "voltagedivider.h"
          +
          2 
          +
          3 VoltageDividerR1::VoltageDividerR1(float R2, float Vin, String config_path)
          +
          4  : SymmetricTransform<float>(config_path), R2{R2}, Vin{Vin} {
          +
          5  load_configuration();
          +
          6 }
          +
          7 
          +
          8 void VoltageDividerR1::set_input(float Vout, uint8_t ignored) {
          +
          9  output = (Vin - Vout) * R2 / Vout;
          +
          10  notify();
          +
          11 }
          +
          12 
          +
          13 void VoltageDividerR1::get_configuration(JsonObject& root) {
          +
          14  root["Vin"] = Vin;
          +
          15  root["R2"] = R2;
          +
          16 }
          +
          17 
          +
          18 static const char SCHEMA_R1[] PROGMEM = R"({
          +
          19  "type": "object",
          +
          20  "properties": {
          +
          21  "Vin": { "title": "Voltage in", "type": "number" },
          +
          22  "R2": { "title": "Resistance (ohms) of R2", "type": "number" }
          +
          23  }
          +
          24  })";
          +
          25 
          +
          26 String VoltageDividerR1::get_config_schema() { return FPSTR(SCHEMA_R1); }
          +
          27 
          +
          28 bool VoltageDividerR1::set_configuration(const JsonObject& config) {
          +
          29  String expected[] = {"Vin", "R2"};
          +
          30  for (auto str : expected) {
          +
          31  if (!config.containsKey(str)) {
          +
          32  debugE(
          +
          33  "Cannot set VoltageDividerR1: configuration: missing json field %s\n",
          +
          34  str.c_str());
          +
          35  return false;
          +
          36  }
          +
          37  }
          +
          38 
          +
          39  Vin = config["Vin"];
          +
          40  R2 = config["R2"];
          +
          41 
          +
          42  return true;
          +
          43 }
          +
          44 
          +
          45 VoltageDividerR2::VoltageDividerR2(float R1, float Vin, String config_path)
          +
          46  : SymmetricTransform<float>(config_path), R1{R1}, Vin{Vin} {
          +
          47  load_configuration();
          +
          48 }
          +
          49 
          +
          50 void VoltageDividerR2::set_input(float Vout, uint8_t ignored) {
          +
          51  output = (Vout * R1) / (Vin - Vout);
          +
          52  notify();
          +
          53 }
          +
          54 
          +
          55 void VoltageDividerR2::get_configuration(JsonObject& root) {
          +
          56  root["Vin"] = Vin;
          +
          57  root["R1"] = R1;
          +
          58 }
          +
          59 
          +
          60 static const char SCHEMA_R2[] PROGMEM = R"({
          +
          61  "type": "object",
          +
          62  "properties": {
          +
          63  "Vin": { "title": "Voltage in", "type": "number" },
          +
          64  "R1": { "title": "Resistance (ohms) of R1", "type": "number" }
          +
          65  }
          +
          66  })";
          +
          67 
          +
          68 String VoltageDividerR2::get_config_schema() { return FPSTR(SCHEMA_R2); }
          +
          69 
          +
          70 bool VoltageDividerR2::set_configuration(const JsonObject& config) {
          +
          71  String expected[] = {"Vin", "R1"};
          +
          72  for (auto str : expected) {
          +
          73  if (!config.containsKey(str)) {
          +
          74  debugE(
          +
          75  "Cannot set VoltageDividerR2: configuration: missing json field %s\n",
          +
          76  str.c_str());
          +
          77  return false;
          +
          78  }
          +
          79  }
          +
          80 
          +
          81  Vin = config["Vin"];
          +
          82  R1 = config["R1"];
          +
          83 
          +
          84  return true;
          +
          85 }
          +
          +
          +
          virtual String get_config_schema() override
          + + + +
          virtual bool set_configuration(const JsonObject &config) override
          +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          + +
          virtual void set_input(float Vout, uint8_t ignored=0) override
          + +
          virtual void set_input(float Vout, uint8_t ignored=0) override
          +
          virtual void get_configuration(JsonObject &doc) override
          +
          VoltageDividerR1(float R2, float Vin=3.3, String config_path="")
          +
          VoltageDividerR2(float R1, float Vin=3.3, String config_path="")
          + +
          virtual String get_config_schema() override
          +
          virtual bool set_configuration(const JsonObject &config) override
          +
          virtual void get_configuration(JsonObject &doc) override
          + + + + diff --git a/docs/generated/docs/voltagedivider_8h.html b/docs/generated/docs/voltagedivider_8h.html new file mode 100644 index 000000000..819a81ceb --- /dev/null +++ b/docs/generated/docs/voltagedivider_8h.html @@ -0,0 +1,148 @@ + + + + + + + +SensESP: src/transforms/voltagedivider.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          voltagedivider.h File Reference
          +
          +
          +
          +Include dependency graph for voltagedivider.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + +
          +
          +

          Go to the source code of this file.

          + + + + + + +

          +Classes

          class  VoltageDividerR1
           
          class  VoltageDividerR2
           
          +
          +
          + + + + diff --git a/docs/generated/docs/voltagedivider_8h__dep__incl.map b/docs/generated/docs/voltagedivider_8h__dep__incl.map new file mode 100644 index 000000000..7e350c5f3 --- /dev/null +++ b/docs/generated/docs/voltagedivider_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/voltagedivider_8h__dep__incl.md5 b/docs/generated/docs/voltagedivider_8h__dep__incl.md5 new file mode 100644 index 000000000..57dab8a7d --- /dev/null +++ b/docs/generated/docs/voltagedivider_8h__dep__incl.md5 @@ -0,0 +1 @@ +fcaa90ccdcad86519a46d336f86d2bb9 \ No newline at end of file diff --git a/docs/generated/docs/voltagedivider_8h__dep__incl.png b/docs/generated/docs/voltagedivider_8h__dep__incl.png new file mode 100644 index 000000000..5e65107ca Binary files /dev/null and b/docs/generated/docs/voltagedivider_8h__dep__incl.png differ diff --git a/docs/generated/docs/voltagedivider_8h__incl.map b/docs/generated/docs/voltagedivider_8h__incl.map new file mode 100644 index 000000000..aa46fd4dc --- /dev/null +++ b/docs/generated/docs/voltagedivider_8h__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/voltagedivider_8h__incl.md5 b/docs/generated/docs/voltagedivider_8h__incl.md5 new file mode 100644 index 000000000..0a2d0bbe4 --- /dev/null +++ b/docs/generated/docs/voltagedivider_8h__incl.md5 @@ -0,0 +1 @@ +7dc6ee36e712523b25f2beb0a8ad6977 \ No newline at end of file diff --git a/docs/generated/docs/voltagedivider_8h__incl.png b/docs/generated/docs/voltagedivider_8h__incl.png new file mode 100644 index 000000000..d069f96a7 Binary files /dev/null and b/docs/generated/docs/voltagedivider_8h__incl.png differ diff --git a/docs/generated/docs/voltagedivider_8h_source.html b/docs/generated/docs/voltagedivider_8h_source.html new file mode 100644 index 000000000..cdc1e3d12 --- /dev/null +++ b/docs/generated/docs/voltagedivider_8h_source.html @@ -0,0 +1,156 @@ + + + + + + + +SensESP: src/transforms/voltagedivider.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          voltagedivider.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _voltage_divider_H
          +
          2 #define _voltage_divider_H
          +
          3 
          +
          4 #include "transforms/transform.h"
          +
          5 
          +
          19 class VoltageDividerR1 : public SymmetricTransform<float> {
          +
          20  public:
          +
          21  VoltageDividerR1(float R2, float Vin = 3.3, String config_path = "");
          +
          22 
          +
          23  virtual void set_input(float Vout, uint8_t ignored = 0) override;
          +
          24 
          +
          25  // For reading and writing the configuration of this transformation
          +
          26  virtual void get_configuration(JsonObject& doc) override;
          +
          27  virtual bool set_configuration(const JsonObject& config) override;
          +
          28  virtual String get_config_schema() override;
          +
          29 
          +
          30  protected:
          +
          31  float R2;
          +
          32  float Vin;
          +
          33 };
          +
          34 
          +
          45 class VoltageDividerR2 : public SymmetricTransform<float> {
          +
          46  public:
          +
          47  VoltageDividerR2(float R1, float Vin = 3.3, String config_path = "");
          +
          48 
          +
          49  virtual void set_input(float Vout, uint8_t ignored = 0) override;
          +
          50 
          +
          51  // For reading and writing the configuration of this transformation
          +
          52  virtual void get_configuration(JsonObject& doc) override;
          +
          53  virtual bool set_configuration(const JsonObject& config) override;
          +
          54  virtual String get_config_schema() override;
          +
          55 
          +
          56  protected:
          +
          57  float R1;
          +
          58  float Vin;
          +
          59 };
          +
          60 
          +
          61 #endif
          +
          +
          +
          virtual String get_config_schema() override
          + + + +
          virtual bool set_configuration(const JsonObject &config) override
          + +
          virtual void set_input(float Vout, uint8_t ignored=0) override
          + +
          virtual void set_input(float Vout, uint8_t ignored=0) override
          +
          virtual void get_configuration(JsonObject &doc) override
          +
          VoltageDividerR1(float R2, float Vin=3.3, String config_path="")
          +
          VoltageDividerR2(float R1, float Vin=3.3, String config_path="")
          + + + +
          virtual String get_config_schema() override
          +
          virtual bool set_configuration(const JsonObject &config) override
          +
          virtual void get_configuration(JsonObject &doc) override
          + + + + diff --git a/docs/generated/docs/wiring__helpers_8cpp.html b/docs/generated/docs/wiring__helpers_8cpp.html new file mode 100644 index 000000000..df428e102 --- /dev/null +++ b/docs/generated/docs/wiring__helpers_8cpp.html @@ -0,0 +1,370 @@ + + + + + + + +SensESP: src/wiring_helpers.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          wiring_helpers.cpp File Reference
          +
          +
          +
          +Include dependency graph for wiring_helpers.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + + + + + + + + + +

          +Functions

          void setup_analog_input (String sk_path, float k, float c, String config_path)
           
          void setup_fuel_flow_meter (int inflow_pin, int return_flow_pin)
           
          GPSInputsetup_gps (Stream *rx_stream)
           
          void setup_onewire_temperature (SensESPApp *seapp, DallasTemperatureSensors *dts, String sk_path, String config_path, String schema)
           
          void setup_rpm_meter (SensESPApp *seapp, int input_pin)
           
          +

          Function Documentation

          + +

          ◆ setup_analog_input()

          + +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          void setup_analog_input (String sk_path,
          float k,
          float c,
          String config_path 
          )
          +
          + +

          Definition at line 19 of file wiring_helpers.cpp.

          + +
          +
          + +

          ◆ setup_fuel_flow_meter()

          + +
          +
          + + + + + + + + + + + + + + + + + + +
          void setup_fuel_flow_meter (int inflow_pin,
          int return_flow_pin 
          )
          +
          + +

          Definition at line 25 of file wiring_helpers.cpp.

          + +
          +
          + +

          ◆ setup_gps()

          + +
          +
          + + + + + + + + +
          GPSInput* setup_gps (Stream * rx_stream)
          +
          + +

          Definition at line 80 of file wiring_helpers.cpp.

          +
          +Here is the call graph for this function:
          +
          +
          + + + + +
          + +
          +
          + +

          ◆ setup_onewire_temperature()

          + +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          void setup_onewire_temperature (SensESPAppseapp,
          DallasTemperatureSensorsdts,
          String sk_path,
          String config_path,
          String schema 
          )
          +
          + +

          Definition at line 119 of file wiring_helpers.cpp.

          + +
          +
          + +

          ◆ setup_rpm_meter()

          + +
          +
          + + + + + + + + + + + + + + + + + + +
          void setup_rpm_meter (SensESPAppseapp,
          int input_pin 
          )
          +
          + +

          Definition at line 127 of file wiring_helpers.cpp.

          + +
          +
          +
          +
          + + + + diff --git a/docs/wiring__helpers_8cpp.js b/docs/generated/docs/wiring__helpers_8cpp.js similarity index 100% rename from docs/wiring__helpers_8cpp.js rename to docs/generated/docs/wiring__helpers_8cpp.js diff --git a/docs/generated/docs/wiring__helpers_8cpp__incl.map b/docs/generated/docs/wiring__helpers_8cpp__incl.map new file mode 100644 index 000000000..d7571610f --- /dev/null +++ b/docs/generated/docs/wiring__helpers_8cpp__incl.map @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/wiring__helpers_8cpp__incl.md5 b/docs/generated/docs/wiring__helpers_8cpp__incl.md5 new file mode 100644 index 000000000..220cb24f7 --- /dev/null +++ b/docs/generated/docs/wiring__helpers_8cpp__incl.md5 @@ -0,0 +1 @@ +6ee2882b1976884d9cc82f3f22ea08f8 \ No newline at end of file diff --git a/docs/generated/docs/wiring__helpers_8cpp__incl.png b/docs/generated/docs/wiring__helpers_8cpp__incl.png new file mode 100644 index 000000000..782f5e666 Binary files /dev/null and b/docs/generated/docs/wiring__helpers_8cpp__incl.png differ diff --git a/docs/generated/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.map b/docs/generated/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.map new file mode 100644 index 000000000..95f36e9fd --- /dev/null +++ b/docs/generated/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.md5 b/docs/generated/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.md5 new file mode 100644 index 000000000..5aace5a2c --- /dev/null +++ b/docs/generated/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.md5 @@ -0,0 +1 @@ +7639b86dc0a2aabb7cde2d3558e8c457 \ No newline at end of file diff --git a/docs/generated/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.png b/docs/generated/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.png new file mode 100644 index 000000000..7d9bf96c6 Binary files /dev/null and b/docs/generated/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.png differ diff --git a/docs/generated/docs/wiring__helpers_8cpp_source.html b/docs/generated/docs/wiring__helpers_8cpp_source.html new file mode 100644 index 000000000..38e08e487 --- /dev/null +++ b/docs/generated/docs/wiring__helpers_8cpp_source.html @@ -0,0 +1,293 @@ + + + + + + + +SensESP: src/wiring_helpers.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          wiring_helpers.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "wiring_helpers.h"
          +
          2 
          +
          3 #include "sensesp_app.h"
          +
          4 #include "sensors/analog_input.h"
          + +
          6 #include "sensors/gps.h"
          + + +
          9 #include "signalk/signalk_time.h"
          + +
          11 #include "transforms/difference.h"
          +
          12 #include "transforms/frequency.h"
          +
          13 #include "transforms/integrator.h"
          +
          14 #include "transforms/linear.h"
          + +
          16 #include "transforms/transform.h"
          +
          17 
          +
          18 // Obsolete.
          +
          19 void setup_analog_input(String sk_path, float k, float c, String config_path) {
          +
          20  (new AnalogInput())
          +
          21  ->connect_to(new Linear(k, c, config_path + "/calibrate"))
          +
          22  ->connect_to(new SKOutputNumber(sk_path, config_path + "/sk"));
          +
          23 }
          +
          24 
          +
          25 void setup_fuel_flow_meter(int inflow_pin, int return_flow_pin) {
          +
          27  // connect a fuel flow meter with return line
          +
          28 
          +
          29  auto* dicIn = new DigitalInputCounter(inflow_pin, INPUT_PULLUP, CHANGE, 1000);
          +
          30  auto* dicOut =
          +
          31  new DigitalInputCounter(return_flow_pin, INPUT_PULLUP, CHANGE, 1000);
          +
          32 
          +
          33  Frequency* freqIn;
          +
          34  Frequency* freqOut;
          +
          35 
          +
          36  dicIn->connect_to(freqIn = new Frequency())
          +
          37  ->connect_to(new SKOutputNumber("fuelflow.inflow.frequency"));
          +
          38 
          +
          39  dicOut->connect_to(freqOut = new Frequency())
          +
          40  ->connect_to(new SKOutputNumber("fuelflow.outflow.frequency"));
          +
          41 
          +
          42  // Here, each pulse of a flow sensor represents 0.46ml of flow
          +
          43  // for both inflow and outflow
          +
          44  auto* diff =
          +
          45  new Difference(0.46 / 1e6, 0.46 / 1e6, "/fuelflow/fuel/rate/calibrate");
          +
          46 
          +
          47  diff->connectFrom(freqIn, freqOut)
          +
          48  ->connect_to(new SKOutputNumber("propulsion.main.fuel.rate",
          +
          49  "/fuelflow/fuel/rate/sk"))
          +
          50  ->connect_to(new MovingAverage(
          +
          51  10, 1.,
          +
          52  "/fuelflow/fuel/average/calibrate")) // this is the same as above,
          +
          53  // but averaged over 10 s
          +
          54  ->connect_to(new SKOutputNumber("propulsion.main.fuel.averageRate",
          +
          55  "/fuelflow/fuel/average/sk"));
          +
          56 
          +
          57  // Integrate the net flow over time. The output is dependent
          +
          58  // on the the input counter update rate!
          +
          59  diff->connect_to(new Integrator(1., 0.))
          +
          60  ->connect_to(new SKOutputNumber("propulsion.main.fuel.used",
          +
          61  "/fuelflow/fuel/used/sk"));
          +
          62 
          +
          63  // Integrate the total outflow over time. The output is dependent
          +
          64  // on the the input counter update rate!
          +
          65  freqIn
          +
          66  ->connect_to(
          +
          67  new Integrator(0.46 / 1e6, 0., "/fuelflow/fuel/in_used/calibrate"))
          +
          68  ->connect_to(new SKOutputNumber("propulsion.main.fuel.usedGross",
          +
          69  "/fuelflow/fuel/in_used/sk"));
          +
          70 
          +
          71  // Integrate the net fuel flow over time. The output is dependent
          +
          72  // on the the input counter update rate!
          +
          73  freqOut
          +
          74  ->connect_to(
          +
          75  new Integrator(0.46 / 1e6, 0., "/fuelflow/fuel/out_used/calibrate"))
          +
          76  ->connect_to(new SKOutputNumber("propulsion.main.fuel.usedReturn",
          +
          77  "/fuelflow/fuel/out_used/sk"));
          +
          78 }
          +
          79 
          +
          80 GPSInput* setup_gps(Stream* rx_stream) {
          +
          81  GPSInput* gps = new GPSInput(rx_stream);
          + +
          83  new SKOutputPosition("navigation.position", ""));
          + +
          85  new SKOutputString("navigation.methodQuality", ""));
          + +
          87  new SKOutputInt("navigation.satellites", ""));
          + +
          89  new SKOutputNumber("navigation.horizontalDilution", ""));
          + +
          91  new SKOutputNumber("navigation.geoidalSeparation", ""));
          + +
          93  new SKOutputNumber("navigation.differentialAge", ""));
          + +
          95  new SKOutputNumber("navigation.differentialReference", ""));
          + +
          97  new SKOutputTime("navigation.datetime", ""));
          + +
          99  new SKOutputNumber("navigation.speedOverGround", ""));
          + +
          101  new SKOutputNumber("navigation.courseOverGroundTrue", ""));
          + +
          103  new SKOutputNumber("navigation.magneticVariation", ""));
          + +
          105  new SKOutputNumber("navigation.rtkAge", ""));
          + +
          107  new SKOutputNumber("navigation.rtkRatio", ""));
          + +
          109  new SKOutputNumber("navigation.rtkBaselineLength", ""));
          + +
          111  .connect_to(new SKOutputNumber("navigation.rtkBaselineCourse"))
          +
          112  ->connect_to(new AngleCorrection(0, 0, "/sensors/heading/correction"))
          +
          113  ->connect_to(new SKOutputNumber("navigation.headingTrue", ""));
          +
          114 
          +
          115  return gps;
          +
          116 }
          +
          117 
          +
          118 // Obsolete
          + +
          120  String sk_path, String config_path,
          +
          121  String schema) {
          +
          122  (new OneWireTemperature(dts))
          +
          123  ->connect_to(new SKOutputNumber(sk_path, config_path));
          +
          124 }
          +
          125 
          +
          126 // Obsolete
          +
          127 void setup_rpm_meter(SensESPApp* seapp, int input_pin) {
          +
          129  // connect a RPM meter. A DigitalInputCounter counts pulses
          +
          130  // and reports the readings every read_delay ms
          +
          131  // (500 in the example). A Frequency
          +
          132  // transform takes a number of pulses and converts that into
          +
          133  // a frequency. The sample multiplier converts the 97 tooth
          +
          134  // tach output into Hz, SK native units.
          +
          135 
          +
          136  (new DigitalInputCounter(input_pin, INPUT_PULLUP, RISING, 500))
          +
          137  ->connect_to<float>(
          +
          138  new Frequency(1. / 97., "/sensors/engine_rpm/calibrate"))
          +
          139  ->connect_to(new SKOutputNumber("propulsion.main.revolutions",
          +
          140  "/sensors/engine_rpm/sk"));
          +
          141 }
          +
          +
          +
          SKOutput< Position > SKOutputPosition
          + +
          ObservableValue< float > horizontal_dilution
          Definition: nmea_parser.h:28
          + +
          ObservableValue< float > variation
          Definition: nmea_parser.h:35
          + +
          void setup_fuel_flow_meter(int inflow_pin, int return_flow_pin)
          +
          ObservableValue< float > baseline_course
          Definition: nmea_parser.h:41
          + +
          void setup_rpm_meter(SensESPApp *seapp, int input_pin)
          +
          NMEAData nmea_data
          Definition: gps.h:14
          + +
          ObservableValue< float > rtk_age
          Definition: nmea_parser.h:37
          +
          void connect_to(ValueConsumer< T > *consumer, uint8_t input_channel=0)
          Definition: valueproducer.h:38
          +
          ObservableValue< float > geoidal_separation
          Definition: nmea_parser.h:29
          +
          ObservableValue< float > speed
          Definition: nmea_parser.h:33
          + +
          ObservableValue< String > gnss_quality
          Definition: nmea_parser.h:26
          +
          ObservableValue< float > true_course
          Definition: nmea_parser.h:34
          + + +
          void setup_analog_input(String sk_path, float k, float c, String config_path)
          +
          SKOutput< float > SKOutputNumber
          +
          ObservableValue< time_t > datetime
          Definition: nmea_parser.h:32
          + +
          ObservableValue< float > rtk_ratio
          Definition: nmea_parser.h:38
          +
          Definition: gps.h:10
          +
          GPSInput * setup_gps(Stream *rx_stream)
          + + +
          Definition: linear.h:11
          +
          SKOutput< int > SKOutputInt
          + +
          SKOutput< String > SKOutputString
          + +
          ObservableValue< float > dgps_id
          Definition: nmea_parser.h:31
          + + +
          void setup_onewire_temperature(SensESPApp *seapp, DallasTemperatureSensors *dts, String sk_path, String config_path, String schema)
          +
          ObservableValue< Position > position
          Definition: nmea_parser.h:25
          + + + + + + + + + +
          ObservableValue< float > dgps_age
          Definition: nmea_parser.h:30
          +
          ObservableValue< float > baseline_length
          Definition: nmea_parser.h:40
          + +
          ObservableValue< int > num_satellites
          Definition: nmea_parser.h:27
          + + + + + diff --git a/docs/generated/docs/wiring__helpers_8h.html b/docs/generated/docs/wiring__helpers_8h.html new file mode 100644 index 000000000..d7bfb0b2a --- /dev/null +++ b/docs/generated/docs/wiring__helpers_8h.html @@ -0,0 +1,326 @@ + + + + + + + +SensESP: src/wiring_helpers.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          wiring_helpers.h File Reference
          +
          +
          +
          #include "sensesp_app.h"
          +#include "sensors/gps.h"
          +#include "sensors/onewire_temperature.h"
          +
          +Include dependency graph for wiring_helpers.h:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + +
          +
          +

          Go to the source code of this file.

          + + + + + + + + + + + + +

          +Functions

          void setup_analog_input (String sk_path, float k=1, float c=0, String config_path="")
           
          void setup_fuel_flow_meter (int inflow_pin, int return_flow_pin)
           
          GPSInputsetup_gps (Stream *rx_stream)
           
          void setup_onewire_temperature (DallasTemperatureSensors *dts, String sk_path, String config_path)
           
          void setup_rpm_meter (int input_pin)
           
          +

          Function Documentation

          + +

          ◆ setup_analog_input()

          + +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          void setup_analog_input (String sk_path,
          float k = 1,
          float c = 0,
          String config_path = "" 
          )
          +
          + +

          Definition at line 19 of file wiring_helpers.cpp.

          + +
          +
          + +

          ◆ setup_fuel_flow_meter()

          + +
          +
          + + + + + + + + + + + + + + + + + + +
          void setup_fuel_flow_meter (int inflow_pin,
          int return_flow_pin 
          )
          +
          + +

          Definition at line 25 of file wiring_helpers.cpp.

          + +
          +
          + +

          ◆ setup_gps()

          + +
          +
          + + + + + + + + +
          GPSInput* setup_gps (Stream * rx_stream)
          +
          + +

          Definition at line 80 of file wiring_helpers.cpp.

          +
          +Here is the call graph for this function:
          +
          +
          + + + + +
          + +
          +
          + +

          ◆ setup_onewire_temperature()

          + +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + +
          void setup_onewire_temperature (DallasTemperatureSensorsdts,
          String sk_path,
          String config_path 
          )
          +
          + +
          +
          + +

          ◆ setup_rpm_meter()

          + +
          +
          + + + + + + + + +
          void setup_rpm_meter (int input_pin)
          +
          + +
          +
          +
          +
          + + + + diff --git a/docs/wiring__helpers_8h.js b/docs/generated/docs/wiring__helpers_8h.js similarity index 100% rename from docs/wiring__helpers_8h.js rename to docs/generated/docs/wiring__helpers_8h.js diff --git a/docs/wiring__helpers_8h__dep__incl.map b/docs/generated/docs/wiring__helpers_8h__dep__incl.map similarity index 100% rename from docs/wiring__helpers_8h__dep__incl.map rename to docs/generated/docs/wiring__helpers_8h__dep__incl.map diff --git a/docs/generated/docs/wiring__helpers_8h__dep__incl.md5 b/docs/generated/docs/wiring__helpers_8h__dep__incl.md5 new file mode 100644 index 000000000..ea5d8f647 --- /dev/null +++ b/docs/generated/docs/wiring__helpers_8h__dep__incl.md5 @@ -0,0 +1 @@ +1f7241e7372b676482b095d28cbdf811 \ No newline at end of file diff --git a/docs/generated/docs/wiring__helpers_8h__dep__incl.png b/docs/generated/docs/wiring__helpers_8h__dep__incl.png new file mode 100644 index 000000000..3f727b7c7 Binary files /dev/null and b/docs/generated/docs/wiring__helpers_8h__dep__incl.png differ diff --git a/docs/generated/docs/wiring__helpers_8h__incl.map b/docs/generated/docs/wiring__helpers_8h__incl.map new file mode 100644 index 000000000..74f14cec8 --- /dev/null +++ b/docs/generated/docs/wiring__helpers_8h__incl.map @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/wiring__helpers_8h__incl.md5 b/docs/generated/docs/wiring__helpers_8h__incl.md5 new file mode 100644 index 000000000..341960630 --- /dev/null +++ b/docs/generated/docs/wiring__helpers_8h__incl.md5 @@ -0,0 +1 @@ +d8eb18a6ecb70b220183c9866c748e29 \ No newline at end of file diff --git a/docs/generated/docs/wiring__helpers_8h__incl.png b/docs/generated/docs/wiring__helpers_8h__incl.png new file mode 100644 index 000000000..73aece1b5 Binary files /dev/null and b/docs/generated/docs/wiring__helpers_8h__incl.png differ diff --git a/docs/generated/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.map b/docs/generated/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.map new file mode 100644 index 000000000..95f36e9fd --- /dev/null +++ b/docs/generated/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/generated/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.md5 b/docs/generated/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.md5 new file mode 100644 index 000000000..5aace5a2c --- /dev/null +++ b/docs/generated/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.md5 @@ -0,0 +1 @@ +7639b86dc0a2aabb7cde2d3558e8c457 \ No newline at end of file diff --git a/docs/generated/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.png b/docs/generated/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.png new file mode 100644 index 000000000..7d9bf96c6 Binary files /dev/null and b/docs/generated/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.png differ diff --git a/docs/generated/docs/wiring__helpers_8h_source.html b/docs/generated/docs/wiring__helpers_8h_source.html new file mode 100644 index 000000000..32701bb67 --- /dev/null +++ b/docs/generated/docs/wiring__helpers_8h_source.html @@ -0,0 +1,133 @@ + + + + + + + +SensESP: src/wiring_helpers.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          wiring_helpers.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _wiring_helpers_H_
          +
          2 #define _wiring_helpers_H_
          +
          3 
          +
          4 #include "sensesp_app.h"
          +
          5 #include "sensors/gps.h"
          + +
          7 
          +
          8 // Obsolete
          +
          9 void setup_analog_input(String sk_path, float k = 1, float c = 0,
          +
          10  String config_path = "");
          +
          11 
          +
          12 void setup_fuel_flow_meter(int inflow_pin, int return_flow_pin);
          +
          13 
          +
          14 GPSInput* setup_gps(Stream* rx_stream);
          +
          15 
          +
          16 // Obsolete
          + +
          18  String config_path);
          +
          19 
          +
          20 // Obsolete
          +
          21 void setup_rpm_meter(int input_pin);
          +
          22 
          +
          23 #endif
          +
          +
          +
          void setup_rpm_meter(int input_pin)
          + +
          void setup_onewire_temperature(DallasTemperatureSensors *dts, String sk_path, String config_path)
          + +
          Definition: gps.h:10
          +
          void setup_analog_input(String sk_path, float k=1, float c=0, String config_path="")
          + +
          void setup_fuel_flow_meter(int inflow_pin, int return_flow_pin)
          +
          GPSInput * setup_gps(Stream *rx_stream)
          + + + + + diff --git a/docs/generated/docs/ws__client_8cpp.html b/docs/generated/docs/ws__client_8cpp.html new file mode 100644 index 000000000..56cd6ba3b --- /dev/null +++ b/docs/generated/docs/ws__client_8cpp.html @@ -0,0 +1,232 @@ + + + + + + + +SensESP: src/net/ws_client.cpp File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          ws_client.cpp File Reference
          +
          +
          +
          #include "ws_client.h"
          +#include <ArduinoJson.h>
          +#include "Arduino.h"
          +#include <ESPTrueRandom.h>
          +#include <WiFiClient.h>
          +#include "sensesp_app.h"
          +#include "signalk/signalk_listener.h"
          +
          +Include dependency graph for ws_client.cpp:
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Functions

          void webSocketClientEvent (WStype_t type, uint8_t *payload, size_t length)
           
          + + + +

          +Variables

          WSClientws_client
           
          +

          Function Documentation

          + +

          ◆ webSocketClientEvent()

          + +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + +
          void webSocketClientEvent (WStype_t type,
          uint8_t * payload,
          size_t length 
          )
          +
          + +

          Definition at line 22 of file ws_client.cpp.

          +
          +Here is the call graph for this function:
          +
          +
          + + + + + + + + + + +
          + +
          +
          +

          Variable Documentation

          + +

          ◆ ws_client

          + +
          +
          + + + + +
          WSClient* ws_client
          +
          + +

          Definition at line 20 of file ws_client.cpp.

          + +
          +
          +
          +
          + + + + diff --git a/docs/ws__client_8cpp.js b/docs/generated/docs/ws__client_8cpp.js similarity index 100% rename from docs/ws__client_8cpp.js rename to docs/generated/docs/ws__client_8cpp.js diff --git a/docs/generated/docs/ws__client_8cpp__incl.map b/docs/generated/docs/ws__client_8cpp__incl.map new file mode 100644 index 000000000..d1a9d3af2 --- /dev/null +++ b/docs/generated/docs/ws__client_8cpp__incl.map @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/ws__client_8cpp__incl.md5 b/docs/generated/docs/ws__client_8cpp__incl.md5 new file mode 100644 index 000000000..80249ba99 --- /dev/null +++ b/docs/generated/docs/ws__client_8cpp__incl.md5 @@ -0,0 +1 @@ +af21623d2e80e2daad34293080e1b77c \ No newline at end of file diff --git a/docs/generated/docs/ws__client_8cpp__incl.png b/docs/generated/docs/ws__client_8cpp__incl.png new file mode 100644 index 000000000..33d9d859f Binary files /dev/null and b/docs/generated/docs/ws__client_8cpp__incl.png differ diff --git a/docs/generated/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.map b/docs/generated/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.map new file mode 100644 index 000000000..1c7110e29 --- /dev/null +++ b/docs/generated/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/docs/generated/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.md5 b/docs/generated/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.md5 new file mode 100644 index 000000000..b95b11665 --- /dev/null +++ b/docs/generated/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.md5 @@ -0,0 +1 @@ +96fa0e197c8c5f352b674ab3decccef7 \ No newline at end of file diff --git a/docs/generated/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.png b/docs/generated/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.png new file mode 100644 index 000000000..d3321abbc Binary files /dev/null and b/docs/generated/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.png differ diff --git a/docs/generated/docs/ws__client_8cpp_source.html b/docs/generated/docs/ws__client_8cpp_source.html new file mode 100644 index 000000000..54970d5a5 --- /dev/null +++ b/docs/generated/docs/ws__client_8cpp_source.html @@ -0,0 +1,640 @@ + + + + + + + +SensESP: src/net/ws_client.cpp Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          ws_client.cpp
          +
          +
          +Go to the documentation of this file.
          1 #include "ws_client.h"
          +
          2 
          +
          3 #include <ArduinoJson.h>
          +
          4 
          +
          5 #include "Arduino.h"
          +
          6 #ifdef ESP8266
          +
          7 #include <ESP8266HTTPClient.h>
          +
          8 #include <ESP8266mDNS.h> // Include the mDNS library
          +
          9 #elif defined(ESP32)
          +
          10 #include <ESPmDNS.h>
          +
          11 #include <HTTPClient.h>
          +
          12 #endif
          +
          13 
          +
          14 #include <ESPTrueRandom.h>
          +
          15 #include <WiFiClient.h>
          +
          16 
          +
          17 #include "sensesp_app.h"
          + +
          19 
          + +
          21 
          +
          22 void webSocketClientEvent(WStype_t type, uint8_t* payload, size_t length) {
          +
          23  switch (type) {
          +
          24  case WStype_DISCONNECTED:
          + +
          26  break;
          +
          27  case WStype_ERROR:
          + +
          29  break;
          +
          30  case WStype_CONNECTED:
          +
          31  ws_client->on_connected(payload);
          +
          32  break;
          +
          33  case WStype_TEXT:
          +
          34  ws_client->on_receive_delta(payload);
          +
          35  break;
          +
          36  default:
          +
          37  // Do nothing for other types
          +
          38  break;
          +
          39  }
          +
          40 }
          +
          41 
          +
          42 WSClient::WSClient(String config_path, SKDelta* sk_delta, String server_address,
          +
          43  uint16_t server_port, std::function<void(bool)> connected_cb,
          +
          44  void_cb_func delta_cb)
          + +
          46  this->sk_delta = sk_delta;
          +
          47 
          +
          48  preset_server_address = server_address;
          +
          49  preset_server_port = server_port;
          +
          50  this->server_address = server_address;
          +
          51  this->server_port = server_port;
          +
          52 
          +
          53  this->connected_cb = connected_cb;
          +
          54  this->delta_cb = delta_cb;
          +
          55  // set the singleton object pointer
          +
          56  ws_client = this;
          +
          57 
          +
          58  load_configuration();
          +
          59 }
          +
          60 
          + +
          62  app.onDelay(0, [this]() { this->connect(); });
          +
          63  app.onRepeat(20, [this]() { this->loop(); });
          +
          64  app.onRepeat(100, [this]() { this->send_delta(); });
          +
          65  app.onRepeat(10000, [this]() { this->connect_loop(); });
          +
          66 }
          +
          67 
          +
          68 void WSClient::connect_loop() {
          +
          69  if (this->connection_state == disconnected) {
          +
          70  this->connect();
          +
          71  }
          +
          72 }
          +
          73 
          + +
          75  if (this->connection_state == connecting && server_detected) {
          +
          76  // Going from connecting directly to disconnect when we
          +
          77  // know we have found and talked to the server usually means
          +
          78  // the authentication token is bad.
          +
          79  debugW("Bad access token detected. Setting token to null.");
          +
          80  auth_token = NULL_AUTH_TOKEN;
          + +
          82  }
          +
          83  this->connection_state = disconnected;
          +
          84  server_detected = false;
          +
          85  this->connected_cb(false);
          +
          86 }
          +
          87 
          + +
          89  this->connection_state = disconnected;
          +
          90  debugW("Websocket client error.");
          +
          91  this->connected_cb(false);
          +
          92 }
          +
          93 
          +
          94 void WSClient::on_connected(uint8_t* payload) {
          +
          95  this->connection_state = connected;
          +
          96  debugI("Websocket client connected to URL: %s\n", payload);
          +
          97  this->connected_cb(true);
          +
          98  debugI("Subscribing to Signal K listeners...");
          +
          99  this->subscribe_listeners();
          +
          100 }
          +
          101 
          +
          102 void WSClient::subscribe_listeners() {
          +
          103  const std::vector<SKListener*>& listeners = SKListener::get_listeners();
          +
          104 
          +
          105  if (listeners.size() > 0) {
          +
          106  DynamicJsonDocument jsonDoc(1024);
          +
          107  JsonObject subscription = jsonDoc.as<JsonObject>();
          +
          108  subscription["context"] = "vessels.self";
          +
          109  JsonArray subscribe = subscription.createNestedArray("subscribe");
          +
          110 
          +
          111  for (size_t i = 0; i < listeners.size(); i++) {
          +
          112  auto* listener = listeners.at(i);
          +
          113  String sk_path = listener->get_sk_path();
          +
          114  int listen_delay = listener->get_listen_delay();
          +
          115 
          +
          116  JsonObject subscribePath = subscribe.createNestedObject();
          +
          117 
          +
          118  subscribePath["path"] = sk_path;
          +
          119  subscribePath["period"] = listen_delay;
          +
          120  debugI("Adding %s subscription with listen_delay %d\n", sk_path.c_str(),
          +
          121  listen_delay);
          +
          122  }
          +
          123 
          +
          124  String messageJson;
          +
          125 
          +
          126  serializeJson(subscription, messageJson);
          +
          127  debugI("Subscription JSON message:\n %s", messageJson.c_str());
          +
          128  this->client.sendTXT(messageJson);
          +
          129  }
          +
          130 }
          +
          131 
          +
          132 void WSClient::on_receive_delta(uint8_t* payload) {
          +
          133 #ifdef SIGNALK_PRINT_RCV_DELTA
          +
          134  debugD("Websocket payload received: %s", (char*)payload);
          +
          135 #endif
          +
          136 
          +
          137  DynamicJsonDocument message(1024);
          +
          138  // JsonObject message = jsonDoc.as<JsonObject>();
          +
          139  auto error = deserializeJson(message, payload);
          +
          140 
          +
          141  if (!error) {
          +
          142  JsonArray updates = message["updates"];
          +
          143 
          +
          144  for (size_t i = 0; i < updates.size(); i++) {
          +
          145  JsonObject update = updates[i];
          +
          146 
          +
          147  JsonArray values = update["values"];
          +
          148 
          +
          149  for (size_t vi = 0; vi < values.size(); vi++) {
          +
          150  JsonObject value = values[vi];
          +
          151 
          +
          152  const char* path = value["path"];
          +
          153  // debugD("Got update of value %s\n", path);
          +
          154 
          +
          155  const std::vector<SKListener*>& listeners = SKListener::get_listeners();
          +
          156 
          +
          157  for (size_t i = 0; i < listeners.size(); i++) {
          +
          158  SKListener* listener = listeners[i];
          +
          159  if (listener->get_sk_path().equals(path)) {
          +
          160  listener->parse_value(value);
          +
          161  }
          +
          162  }
          +
          163  }
          +
          164  }
          +
          165  } else {
          +
          166  debugE("deserializeJson error: %s", error.c_str());
          +
          167  }
          +
          168 }
          +
          169 
          +
          170 bool WSClient::get_mdns_service(String& server_address, uint16_t& server_port) {
          +
          171  // get IP address using an mDNS query
          +
          172  int n = MDNS.queryService("signalk-ws", "tcp");
          +
          173  if (n == 0) {
          +
          174  // no service found
          +
          175  return false;
          +
          176  } else {
          +
          177  server_address = MDNS.IP(0).toString();
          +
          178  server_port = MDNS.port(0);
          +
          179  debugI("Found server %s (port %d)", server_address.c_str(), server_port);
          +
          180  return true;
          +
          181  }
          +
          182 }
          +
          183 
          + +
          185  if (connection_state != disconnected) {
          +
          186  return;
          +
          187  }
          +
          188  debugD("Initiating connection");
          +
          189 
          +
          190  connection_state = authorizing;
          +
          191 
          +
          192  String server_address = this->server_address;
          +
          193  uint16_t server_port = this->server_port;
          +
          194 
          +
          195  if (this->server_address.isEmpty()) {
          +
          196  if (!get_mdns_service(server_address, server_port)) {
          +
          197  debugE("No Signal K server found in network when using mDNS service!");
          +
          198  } else {
          +
          199  debugI("Signal K server has been found at address %s:%d by mDNS.",
          +
          200  server_address.c_str(), server_port);
          +
          201  }
          +
          202  }
          +
          203 
          +
          204  if (!server_address.isEmpty() && server_port > 0) {
          +
          205  debugD("Websocket is connecting to Signal K server on address %s:%d",
          +
          206  server_address.c_str(), server_port);
          +
          207  } else {
          +
          208  // host and port not defined - wait for mDNS
          +
          209  connection_state = disconnected;
          +
          210  return;
          +
          211  }
          +
          212 
          +
          213  if (this->polling_href != "") {
          +
          214  // existing pending request
          +
          215  this->poll_access_request(server_address, server_port, this->polling_href);
          +
          216  return;
          +
          217  }
          +
          218 
          +
          219  if (this->auth_token == NULL_AUTH_TOKEN) {
          +
          220  // initiate HTTP authentication
          +
          221  debugD("No prior authorization token present.");
          +
          222  this->send_access_request(server_address, server_port);
          +
          223  return;
          +
          224  }
          +
          225  this->test_token(server_address, server_port);
          +
          226 }
          +
          227 
          +
          228 void WSClient::test_token(const String server_address,
          +
          229  const uint16_t server_port) {
          +
          230  // FIXME: implement async HTTP client!
          +
          231  HTTPClient http;
          +
          232 
          +
          233  String url = String("http://") + server_address + ":" + server_port +
          +
          234  "/signalk/v1/api/";
          +
          235  debugD("Testing token with url %s", url.c_str());
          +
          236  http.begin(wifi_client, url);
          +
          237  String full_token = String("JWT ") + auth_token;
          +
          238  http.addHeader("Authorization", full_token.c_str());
          +
          239  int httpCode = http.GET();
          +
          240  if (httpCode > 0) {
          +
          241  String payload = http.getString();
          +
          242  http.end();
          +
          243  debugD("Testing resulted in http status %d", httpCode);
          +
          244  if (payload.length() > 0) {
          +
          245  debugD("Returned payload (length %d) is: ", payload.length());
          +
          246  debugD("%s", payload.c_str());
          +
          247  debugD("End of payload output");
          +
          248  } else {
          +
          249  debugD("Returned payload is empty");
          +
          250  }
          +
          251  if (httpCode == 200) {
          +
          252  // our token is valid, go ahead and connect
          +
          253  debugD("Attempting to connect to Signal K Websocket...");
          +
          254  server_detected = true;
          +
          255  this->connect_ws(server_address, server_port);
          +
          256  } else if (httpCode == 401) {
          +
          257  this->client_id = "";
          +
          258  this->send_access_request(server_address, server_port);
          +
          259  } else {
          +
          260  connection_state = disconnected;
          +
          261  }
          +
          262  } else {
          +
          263  debugE("GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
          +
          264  connection_state = disconnected;
          +
          265  }
          +
          266 }
          +
          267 
          +
          268 void WSClient::send_access_request(const String server_address,
          +
          269  const uint16_t server_port) {
          +
          270  debugD("Preparing a new access request");
          +
          271  if (client_id == "") {
          +
          272  // generate a client ID
          +
          273  byte uuidNumber[16];
          +
          274  ESPTrueRandom.uuid(uuidNumber);
          +
          275  client_id = ESPTrueRandom.uuidToString(uuidNumber);
          + +
          277  }
          +
          278 
          +
          279  // create a new access request
          +
          280  DynamicJsonDocument doc(1024);
          +
          281  doc["clientId"] = client_id;
          +
          282  doc["description"] = String("SensESP device: ") + sensesp_app->get_hostname();
          +
          283  String json_req = "";
          +
          284  serializeJson(doc, json_req);
          +
          285 
          +
          286  HTTPClient http;
          +
          287 
          +
          288  String url = String("http://") + server_address + ":" + server_port +
          +
          289  "/signalk/v1/access/requests";
          +
          290  http.begin(wifi_client, url);
          +
          291  http.addHeader("Content-Type", "application/json");
          +
          292  int httpCode = http.POST(json_req);
          +
          293  String payload = http.getString();
          +
          294  http.end();
          +
          295 
          +
          296  // if we get a response we can't handle, try to reconnect later
          +
          297  if (httpCode != 202) {
          +
          298  debugW("Can't handle response %d to access request.", httpCode);
          +
          299  debugD("%s", payload.c_str());
          +
          300  connection_state = disconnected;
          +
          301  client_id = "";
          +
          302  return;
          +
          303  }
          +
          304 
          +
          305  // http status code 202
          +
          306 
          +
          307  deserializeJson(doc, payload.c_str());
          +
          308  String state = doc["state"];
          +
          309 
          +
          310  if (state != "PENDING") {
          +
          311  debugW("Got unknown state: %s", state.c_str());
          +
          312  connection_state = disconnected;
          +
          313  client_id = "";
          +
          314  return;
          +
          315  }
          +
          316 
          +
          317  String href = doc["href"];
          +
          318  polling_href = href;
          + +
          320 
          +
          321  debugD("Polling %s in 5 seconds", polling_href.c_str());
          +
          322  app.onDelay(5000, [this, server_address, server_port, href]() {
          +
          323  this->poll_access_request(server_address, server_port, this->polling_href);
          +
          324  });
          +
          325 }
          +
          326 
          +
          327 void WSClient::poll_access_request(const String server_address,
          +
          328  const uint16_t server_port,
          +
          329  const String href) {
          +
          330  debugD("Polling SK Server for authentication token");
          +
          331 
          +
          332  HTTPClient http;
          +
          333 
          +
          334  String url = String("http://") + server_address + ":" + server_port + href;
          +
          335  http.begin(wifi_client, url);
          +
          336  int httpCode = http.GET();
          +
          337  if (httpCode == 200 or httpCode == 202) {
          +
          338  String payload = http.getString();
          +
          339  http.end();
          +
          340  DynamicJsonDocument doc(1024);
          +
          341  auto error = deserializeJson(doc, payload.c_str());
          +
          342  if (error) {
          +
          343  debugW("WARNING: Could not deserialize http payload.");
          +
          344  debugW("DeserializationError: %s", error.c_str());
          +
          345  return; // TODO: return at this point, or keep going?
          +
          346  }
          +
          347  String state = doc["state"];
          +
          348  debugD("%s", state.c_str());
          +
          349  if (state == "PENDING") {
          +
          350  app.onDelay(5000, [this, server_address, server_port, href]() {
          +
          351  this->poll_access_request(server_address, server_port, href);
          +
          352  });
          +
          353  return;
          +
          354  } else if (state == "COMPLETED") {
          +
          355  JsonObject access_req = doc["accessRequest"];
          +
          356  String permission =
          +
          357  access_req["permission"]; // TODO: like this in ArdJson 6? String
          +
          358  // permission =
          +
          359  // resp["accessRequest"]["permission"];
          +
          360  polling_href = "";
          + +
          362 
          +
          363  if (permission == "DENIED") {
          +
          364  debugW("Permission denied");
          +
          365  connection_state = disconnected;
          +
          366  return;
          +
          367  } else if (permission == "APPROVED") {
          +
          368  debugI("Permission granted");
          +
          369  String token = access_req["token"];
          +
          370  auth_token = token;
          + +
          372  app.onDelay(0, [this, server_address, server_port]() {
          +
          373  this->connect_ws(server_address, server_port);
          +
          374  });
          +
          375  return;
          +
          376  }
          +
          377  }
          +
          378  } else {
          +
          379  http.end();
          +
          380  if (httpCode == 500) {
          +
          381  // this is probably the server barfing due to
          +
          382  // us polling a non-existing request. Just
          +
          383  // delete the polling href.
          +
          384  debugD("Got 500, probably a non-existing request.");
          +
          385  polling_href = "";
          + +
          387  connection_state = disconnected;
          +
          388  return;
          +
          389  }
          +
          390  // any other HTTP status code
          +
          391  debugW("Can't handle response %d to pending access request.\n", httpCode);
          +
          392  connection_state = disconnected;
          +
          393  return;
          +
          394  }
          +
          395 }
          +
          396 
          +
          397 void WSClient::connect_ws(const String host, const uint16_t port) {
          +
          398  String path = "/signalk/v1/stream?subscribe=none";
          +
          399  this->connection_state = connecting;
          +
          400  this->client.begin(host, port, path);
          +
          401  this->client.onEvent(webSocketClientEvent);
          +
          402  String full_token = String("JWT ") + auth_token;
          +
          403  this->client.setAuthorization(full_token.c_str());
          +
          404 }
          +
          405 
          + +
          407  if (this->connection_state == connecting ||
          +
          408  this->connection_state == connected) {
          +
          409  this->client.loop();
          +
          410  }
          +
          411 }
          +
          412 
          +
          413 bool WSClient::is_connected() { return connection_state == connected; }
          +
          414 
          + +
          416  if (connection_state == connected) {
          +
          417  this->client.disconnect();
          +
          418  connection_state = disconnected;
          +
          419  }
          +
          420 }
          +
          421 
          + +
          423  String output;
          +
          424  if (connection_state == connected) {
          +
          425  if (sk_delta->data_available()) {
          +
          426  sk_delta->get_delta(output);
          +
          427  this->client.sendTXT(output);
          +
          428  this->delta_cb();
          +
          429  }
          +
          430  }
          +
          431 }
          +
          432 
          +
          433 void WSClient::get_configuration(JsonObject& root) {
          +
          434  root["sk_address"] = this->server_address;
          +
          435  root["sk_port"] = this->server_port;
          +
          436 
          +
          437  root["token"] = this->auth_token;
          +
          438  root["client_id"] = this->client_id;
          +
          439  root["polling_href"] = this->polling_href;
          +
          440 }
          +
          441 
          +
          442 static const char SCHEMA[] PROGMEM = R"~({
          +
          443  "type": "object",
          +
          444  "properties": {
          +
          445  "sk_address": { "title": "Signal K server address", "type": "string" },
          +
          446  "sk_port": { "title": "Signal K server port", "type": "integer" },
          +
          447  "client_id": { "title": "Client ID (readonly)", "type": "string", "readOnly": true },
          +
          448  "token": { "title": "Server authorization token (readonly)", "type": "string", "readOnly": true },
          +
          449  "polling_href": { "title": "Server authorization polling href (readonly)", "type": "string", "readOnly": true }
          +
          450  }
          +
          451  })~";
          +
          452 
          +
          453 // TODO: FIXME: Don't Repeat Yourself
          +
          454 static const char SCHEMA_READONLY[] PROGMEM = R"~(
          +
          455  {
          +
          456  "type": "object",
          +
          457  "properties": {
          +
          458  "sk_address": { "title": "Signal K server address (readonly)", "type": "string", "readOnly": true },
          +
          459  "sk_port": { "title": "Signal K server port (readonly)", "type": "integer", "readOnly": true },
          +
          460  "client_id": { "title": "Client ID (readonly)", "type": "string", "readOnly": true },
          +
          461  "token": { "title": "Server authorization token (readonly)", "type": "string", "readOnly": true },
          +
          462  "polling_href": { "title": "Server authorization polling href (readonly)", "type": "string", "readOnly": true }
          +
          463  }
          +
          464  }
          +
          465  )~";
          +
          466 
          + +
          468  if (!preset_server_address.isEmpty()) {
          +
          469  return FPSTR(SCHEMA);
          +
          470  } else {
          +
          471  return FPSTR(SCHEMA_READONLY);
          +
          472  }
          +
          473 }
          +
          474 
          +
          475 bool WSClient::set_configuration(const JsonObject& config) {
          +
          476  String expected[] = {"sk_address", "sk_port", "token", "client_id"};
          +
          477  for (auto str : expected) {
          +
          478  if (!config.containsKey(str)) {
          +
          479  debugI(
          +
          480  "Websocket configuration update rejected. Missing following "
          +
          481  "parameter: %s",
          +
          482  str.c_str());
          +
          483  return false;
          +
          484  }
          +
          485  }
          +
          486 
          +
          487  if (!preset_server_address.isEmpty()) {
          +
          488  debugI(
          +
          489  "Saved Signal K server configuration ignored due to hardcoded values.");
          +
          490  } else {
          +
          491  this->server_address = config["sk_address"].as<String>();
          +
          492  this->server_port = config["sk_port"].as<int>();
          +
          493  }
          +
          494 
          +
          495  // FIXME: setting the token should not be allowed via the REST API.
          +
          496  this->auth_token = config["token"].as<String>();
          +
          497  this->client_id = config["client_id"].as<String>();
          +
          498  this->polling_href = config["polling_href"].as<String>();
          +
          499 
          +
          500  return true;
          +
          501 }
          +
          +
          +
          void on_disconnected()
          Definition: ws_client.cpp:74
          +
          static const std::vector< SKListener * > & get_listeners()
          +
          void connect()
          Definition: ws_client.cpp:184
          +
          void enable()
          Definition: ws_client.cpp:61
          +
          virtual void get_configuration(JsonObject &doc) override final
          Definition: ws_client.cpp:433
          +
          void restart()
          Definition: ws_client.cpp:415
          +
          virtual bool set_configuration(const JsonObject &config) override final
          Definition: ws_client.cpp:475
          +
          const char PAGE_index[] PROGMEM
          Definition: index.h:2
          + +
          sk_delta
          Definition: sensesp_app.cpp:63
          +
          String & get_sk_path()
          +
          virtual void save_configuration()
          +
          void on_connected(uint8_t *payload)
          Definition: ws_client.cpp:94
          +
          void loop()
          Definition: ws_client.cpp:406
          +
          void webSocketClientEvent(WStype_t type, uint8_t *payload, size_t length)
          Definition: ws_client.cpp:22
          +
          void on_receive_delta(uint8_t *payload)
          Definition: ws_client.cpp:132
          + +
          SensESPApp * sensesp_app
          +
          std::function< void()> void_cb_func
          Definition: sensesp.h:7
          +
          @ connecting
          Definition: ws_client.h:14
          +
          @ disconnected
          Definition: ws_client.h:14
          +
          @ connected
          Definition: ws_client.h:14
          +
          const String config_path
          Definition: configurable.h:31
          +
          void send_delta()
          Definition: ws_client.cpp:422
          +
          WSClient(String config_path, SKDelta *sk_delta, String server_address, uint16_t server_port, std::function< void(bool)> connected_cb, void_cb_func delta_cb)
          Definition: ws_client.cpp:42
          +
          virtual void parse_value(JsonObject &json)
          + + + +
          @ error
          Definition: nmea_parser.cpp:21
          +
          void on_error()
          Definition: ws_client.cpp:88
          +
          virtual String get_config_schema() override
          Definition: ws_client.cpp:467
          +
          WSClient * ws_client
          Definition: ws_client.cpp:20
          +
          ReactESP app
          +
          @ authorizing
          Definition: ws_client.h:14
          + + +
          bool is_connected()
          Definition: ws_client.cpp:413
          +
          String get_hostname()
          + + + + diff --git a/docs/generated/docs/ws__client_8h.html b/docs/generated/docs/ws__client_8h.html new file mode 100644 index 000000000..2732113a4 --- /dev/null +++ b/docs/generated/docs/ws__client_8h.html @@ -0,0 +1,188 @@ + + + + + + + +SensESP: src/net/ws_client.h File Reference + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          + +
          +
          ws_client.h File Reference
          +
          +
          +
          #include <WebSocketsClient.h>
          +#include <functional>
          +#include <set>
          +#include "sensesp.h"
          +#include "signalk/signalk_delta.h"
          +#include "system/configurable.h"
          +
          +Include dependency graph for ws_client.h:
          +
          +
          + + + + + + + + + + + + + + + +
          +
          +This graph shows which files directly or indirectly include this file:
          +
          +
          + + + + + + + + + + + + + + +
          +
          +

          Go to the source code of this file.

          + + + + +

          +Classes

          class  WSClient
           
          + + + +

          +Enumerations

          enum  ConnectionState { disconnected, +authorizing, +connecting, +connected + }
           
          +

          Enumeration Type Documentation

          + +

          ◆ ConnectionState

          + +
          +
          + + + + +
          enum ConnectionState
          +
          + + + + + +
          Enumerator
          disconnected 
          authorizing 
          connecting 
          connected 
          + +

          Definition at line 14 of file ws_client.h.

          + +
          +
          +
          +
          + + + + diff --git a/docs/ws__client_8h.js b/docs/generated/docs/ws__client_8h.js similarity index 81% rename from docs/ws__client_8h.js rename to docs/generated/docs/ws__client_8h.js index 3d6529cf2..59ba524b0 100644 --- a/docs/ws__client_8h.js +++ b/docs/generated/docs/ws__client_8h.js @@ -3,6 +3,7 @@ var ws__client_8h = [ "WSClient", "class_w_s_client.html", "class_w_s_client" ], [ "ConnectionState", "ws__client_8h.html#acdd867d72142510ce53521a63a062f9b", [ [ "disconnected", "ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba519f950c18a0ec32082cf9984cd2b225", null ], + [ "authorizing", "ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba1f27ab35c30a3960dc1b8f11202c743d", null ], [ "connecting", "ws__client_8h.html#acdd867d72142510ce53521a63a062f9bab4dbdd36e3f602f54d0024fd818e12d6", null ], [ "connected", "ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba8ba3de7243211c98f5ec24395c73d65b", null ] ] ] diff --git a/docs/generated/docs/ws__client_8h__dep__incl.map b/docs/generated/docs/ws__client_8h__dep__incl.map new file mode 100644 index 000000000..2474ad57a --- /dev/null +++ b/docs/generated/docs/ws__client_8h__dep__incl.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/docs/generated/docs/ws__client_8h__dep__incl.md5 b/docs/generated/docs/ws__client_8h__dep__incl.md5 new file mode 100644 index 000000000..7737f8760 --- /dev/null +++ b/docs/generated/docs/ws__client_8h__dep__incl.md5 @@ -0,0 +1 @@ +cd7585ee1a8b7472753a7474dd13a835 \ No newline at end of file diff --git a/docs/generated/docs/ws__client_8h__dep__incl.png b/docs/generated/docs/ws__client_8h__dep__incl.png new file mode 100644 index 000000000..e6379d5e8 Binary files /dev/null and b/docs/generated/docs/ws__client_8h__dep__incl.png differ diff --git a/docs/generated/docs/ws__client_8h__incl.map b/docs/generated/docs/ws__client_8h__incl.map new file mode 100644 index 000000000..81111542c --- /dev/null +++ b/docs/generated/docs/ws__client_8h__incl.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/ws__client_8h__incl.md5 b/docs/generated/docs/ws__client_8h__incl.md5 new file mode 100644 index 000000000..2da444523 --- /dev/null +++ b/docs/generated/docs/ws__client_8h__incl.md5 @@ -0,0 +1 @@ +f715f2cd6fb26a7d09bc7466750e9be9 \ No newline at end of file diff --git a/docs/generated/docs/ws__client_8h__incl.png b/docs/generated/docs/ws__client_8h__incl.png new file mode 100644 index 000000000..ea2a7383e Binary files /dev/null and b/docs/generated/docs/ws__client_8h__incl.png differ diff --git a/docs/generated/docs/ws__client_8h_source.html b/docs/generated/docs/ws__client_8h_source.html new file mode 100644 index 000000000..a87c41e64 --- /dev/null +++ b/docs/generated/docs/ws__client_8h_source.html @@ -0,0 +1,196 @@ + + + + + + + +SensESP: src/net/ws_client.h Source File + + + + + + + + + + + + + +
          +
          + + + + + + +
          +
          SensESP +  0.4.3 +
          +
          Universal Signal K sensor framework for ESP8266 and ESP32
          +
          +
          + + + + + + + +
          +
          + +
          +
          +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          +
          ws_client.h
          +
          +
          +Go to the documentation of this file.
          1 #ifndef _ws_client_H_
          +
          2 #define _ws_client_H_
          +
          3 #include <WebSocketsClient.h>
          +
          4 
          +
          5 #include <functional>
          +
          6 #include <set>
          +
          7 
          +
          8 #include "sensesp.h"
          + +
          10 #include "system/configurable.h"
          +
          11 
          +
          12 static const char* NULL_AUTH_TOKEN = "";
          +
          13 
          + +
          15 
          +
          16 class WSClient : public Configurable {
          +
          17  public:
          +
          18  WSClient(String config_path, SKDelta* sk_delta, String server_address,
          +
          19  uint16_t server_port, std::function<void(bool)> connected_cb,
          +
          20  void_cb_func delta_cb);
          +
          21  void enable();
          +
          22  void on_disconnected();
          +
          23  void on_error();
          +
          24  void on_connected(uint8_t* payload);
          +
          25  void on_receive_delta(uint8_t* payload);
          +
          26  void connect();
          +
          27  void loop();
          +
          28  bool is_connected();
          +
          29  void restart();
          +
          30  void send_delta();
          +
          31 
          +
          32  const String get_server_address() { return server_address; }
          +
          33  const uint16_t get_server_port() { return server_port; }
          +
          34 
          +
          35  virtual void get_configuration(JsonObject& doc) override final;
          +
          36  virtual bool set_configuration(const JsonObject& config) override final;
          +
          37  virtual String get_config_schema() override;
          +
          38 
          +
          39  private:
          +
          40  String server_address = "";
          +
          41  uint16_t server_port = 80;
          +
          42  String preset_server_address = "";
          +
          43  uint16_t preset_server_port = 0;
          +
          44  String client_id = "";
          +
          45  String polling_href = "";
          +
          46  String auth_token = NULL_AUTH_TOKEN;
          +
          47  bool server_detected = false;
          +
          48 
          +
          49  // FIXME: replace with a single connection_state enum
          +
          50  ConnectionState connection_state = disconnected;
          +
          51  WiFiClient wifi_client;
          +
          52  WebSocketsClient client;
          + +
          54  void connect_loop();
          +
          55  void test_token(const String host, const uint16_t port);
          +
          56  void send_access_request(const String host, const uint16_t port);
          +
          57  void poll_access_request(const String host, const uint16_t port,
          +
          58  const String href);
          +
          59  void connect_ws(const String host, const uint16_t port);
          +
          60  void subscribe_listeners();
          +
          61  std::function<void(bool)> connected_cb;
          +
          62  void_cb_func delta_cb;
          +
          63  bool get_mdns_service(String& server_address, uint16_t& server_port);
          +
          64 };
          +
          65 
          +
          66 #endif
          +
          +
          +
          void on_disconnected()
          Definition: ws_client.cpp:74
          +
          void connect()
          Definition: ws_client.cpp:184
          +
          void enable()
          Definition: ws_client.cpp:61
          +
          virtual void get_configuration(JsonObject &doc) override final
          Definition: ws_client.cpp:433
          +
          ConnectionState
          Definition: ws_client.h:14
          +
          void restart()
          Definition: ws_client.cpp:415
          +
          virtual bool set_configuration(const JsonObject &config) override final
          Definition: ws_client.cpp:475
          +
          const String get_server_address()
          Definition: ws_client.h:32
          + +
          const uint16_t get_server_port()
          Definition: ws_client.h:33
          +
          sk_delta
          Definition: sensesp_app.cpp:63
          +
          void on_connected(uint8_t *payload)
          Definition: ws_client.cpp:94
          +
          void loop()
          Definition: ws_client.cpp:406
          +
          void on_receive_delta(uint8_t *payload)
          Definition: ws_client.cpp:132
          +
          std::function< void()> void_cb_func
          Definition: sensesp.h:7
          +
          @ connecting
          Definition: ws_client.h:14
          + +
          @ disconnected
          Definition: ws_client.h:14
          +
          @ connected
          Definition: ws_client.h:14
          +
          const String config_path
          Definition: configurable.h:31
          +
          void send_delta()
          Definition: ws_client.cpp:422
          +
          WSClient(String config_path, SKDelta *sk_delta, String server_address, uint16_t server_port, std::function< void(bool)> connected_cb, void_cb_func delta_cb)
          Definition: ws_client.cpp:42
          + + + +
          void on_error()
          Definition: ws_client.cpp:88
          +
          virtual String get_config_schema() override
          Definition: ws_client.cpp:467
          +
          @ authorizing
          Definition: ws_client.h:14
          + +
          bool is_connected()
          Definition: ws_client.cpp:413
          + + + + diff --git a/docs/globals.html b/docs/globals.html deleted file mode 100644 index f3e08cb00..000000000 --- a/docs/globals.html +++ /dev/null @@ -1,423 +0,0 @@ - - - - - - - -SensESP: File Members - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          Here is a list of all file members with links to the files they belong to:
          - -

          - a -

          - - -

          - b -

          - - -

          - c -

          - - -

          - d -

          - - -

          - e -

          - - -

          - g -

          - - -

          - h -

          - - -

          - i -

          - - -

          - l -

          - - -

          - m -

          - - -

          - n -

          - - -

          - o -

          - - -

          - p -

          - - -

          - r -

          - - -

          - s -

          - - -

          - u -

          - - -

          - v -

          - - -

          - w -

          -
          -
          - - - - diff --git a/docs/globals_eval.html b/docs/globals_eval.html deleted file mode 100644 index d7c4bb3e9..000000000 --- a/docs/globals_eval.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - -SensESP: File Members - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          - - - - diff --git a/docs/globals_type.html b/docs/globals_type.html deleted file mode 100644 index bd7e4b358..000000000 --- a/docs/globals_type.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - -SensESP: File Members - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          - - - - diff --git a/docs/globals_vars.html b/docs/globals_vars.html deleted file mode 100644 index f5aa98e98..000000000 --- a/docs/globals_vars.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - -SensESP: File Members - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          - - - - diff --git a/docs/gps_8cpp.html b/docs/gps_8cpp.html deleted file mode 100644 index 7f63d3687..000000000 --- a/docs/gps_8cpp.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -SensESP: src/sensors/gps.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          gps.cpp File Reference
          -
          -
          -
          #include "gps.h"
          -#include <math.h>
          -#include "sensesp.h"
          -
          -Include dependency graph for gps.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          -
          -
          - - - - diff --git a/docs/gps_8cpp__incl.map b/docs/gps_8cpp__incl.map deleted file mode 100644 index f88c0262d..000000000 --- a/docs/gps_8cpp__incl.map +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/gps_8cpp__incl.md5 b/docs/gps_8cpp__incl.md5 deleted file mode 100644 index 47806278e..000000000 --- a/docs/gps_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -961bc332ed624d6fb4e1237b2ac323b3 \ No newline at end of file diff --git a/docs/gps_8cpp__incl.png b/docs/gps_8cpp__incl.png deleted file mode 100644 index 6abe31472..000000000 Binary files a/docs/gps_8cpp__incl.png and /dev/null differ diff --git a/docs/gps_8cpp_source.html b/docs/gps_8cpp_source.html deleted file mode 100644 index e3d345d45..000000000 --- a/docs/gps_8cpp_source.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -SensESP: src/sensors/gps.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          gps.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "gps.h"
          2 
          3 #include <math.h>
          4 
          5 #include "sensesp.h"
          6 
          7 GPSInput::GPSInput(Stream* rx_stream, String config_path)
          8  : Sensor(config_path) {
          9 
          10  className = "GPSInput";
          11  this->rx_stream = rx_stream;
          12 
          19 
          21 }
          22 
          24  // enable reading the serial port
          25  app.onAvailable(*rx_stream, [this](){
          26  while (this->rx_stream->available()) {
          27  nmea_parser.handle(this->rx_stream->read());
          28  }
          29  });
          30 
          31  //#ifndef DEBUG_DISABLED
          32  //app.onRepeat(1000, [this](){
          33  // debugD("GPS characters processed: %d", gps.charsProcessed());
          34  // debugD("Sentences with fix: %d", gps.sentencesWithFix());
          35  // debugD("Passed checksum: %d", gps.passedChecksum());
          36  // debugD("Failed checksum: %d", gps.failedChecksum());
          37  //});
          38  //#endif
          39 }
          40 
          virtual void enable() override final
          Definition: gps.cpp:23
          -
          Definition: sensor.h:15
          - - - -
          virtual void load_configuration()
          - - - -
          void add_sentence_parser(SentenceParser *parser)
          -
          GPSInput(Stream *rx_stream, String config_path="")
          Definition: gps.cpp:7
          -
          NMEAData nmea_data
          Definition: gps.h:14
          - -
          void handle(char c)
          -
          const char * className
          Definition: enable.h:55
          - -
          ReactESP app
          -
          -
          - - - - diff --git a/docs/gps_8h.html b/docs/gps_8h.html deleted file mode 100644 index 35769bf8d..000000000 --- a/docs/gps_8h.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - -SensESP: src/sensors/gps.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          gps.h File Reference
          -
          -
          -
          #include "sensor.h"
          -#include "system/nmea_parser.h"
          -
          -Include dependency graph for gps.h:
          -
          -
          - - - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  GPSInput
           
          -
          -
          - - - - diff --git a/docs/gps_8h.js b/docs/gps_8h.js deleted file mode 100644 index ac28836aa..000000000 --- a/docs/gps_8h.js +++ /dev/null @@ -1,5 +0,0 @@ -var gps_8h = -[ - [ "GPSInput", "class_g_p_s_input.html", "class_g_p_s_input" ], - [ "GPS_SERIAL_BITRATE", "gps_8h.html#ac650038f97fda9a0aaf3a30b3a0860bd", null ] -]; \ No newline at end of file diff --git a/docs/gps_8h__dep__incl.md5 b/docs/gps_8h__dep__incl.md5 deleted file mode 100644 index cd5df4ce3..000000000 --- a/docs/gps_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -799cd34b5f4dc9204637da55308dbc8d \ No newline at end of file diff --git a/docs/gps_8h__dep__incl.png b/docs/gps_8h__dep__incl.png deleted file mode 100644 index abe4ad457..000000000 Binary files a/docs/gps_8h__dep__incl.png and /dev/null differ diff --git a/docs/gps_8h__incl.map b/docs/gps_8h__incl.map deleted file mode 100644 index 6b0300b6d..000000000 --- a/docs/gps_8h__incl.map +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/docs/gps_8h__incl.md5 b/docs/gps_8h__incl.md5 deleted file mode 100644 index d81a169b3..000000000 --- a/docs/gps_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -61af1aeb07c982edf610b007604f7669 \ No newline at end of file diff --git a/docs/gps_8h__incl.png b/docs/gps_8h__incl.png deleted file mode 100644 index d20f42e70..000000000 Binary files a/docs/gps_8h__incl.png and /dev/null differ diff --git a/docs/gps_8h_source.html b/docs/gps_8h_source.html deleted file mode 100644 index 6328a8ccf..000000000 --- a/docs/gps_8h_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SensESP: src/sensors/gps.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          gps.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _gps_H_
          2 #define _gps_H_
          3 
          4 #include "sensor.h"
          5 #include "system/nmea_parser.h"
          6 
          7 // Support for a GPS module communicating with NMEA-0183
          8 // messages over a serial interface
          9 
          10 class GPSInput : public Sensor {
          11  public:
          12  GPSInput(Stream* rx_stream, String config_path="");
          13  virtual void enable() override final;
          15  private:
          16  Stream* rx_stream;
          17  NMEAParser nmea_parser;
          18 };
          19 
          20 // must parse the following sentences:
          21 // - GPGGA - Global Positioning System Fix Data
          22 // - GPGLL - Latitude/Longitude
          23 // - GPRMC - The Recommended Minimum
          24 // - GPVTG - Course Over Ground and Ground Speed
          25 // - GPGSA - GNSS DOP and Active Satellites
          26 // - GLGSA - GNSS DOP and Active Satellites
          27 // - GPGSV - GNSS Satellites in View
          28 // - GLGSV - GNSS Satellites in View
          29 // - PSTI,030 - Recommended Minimum 3D GNSS Data
          30 // - PSTI,032 - RTK Baseline Data
          31 
          32 #endif
          virtual void enable() override final
          Definition: gps.cpp:23
          -
          Definition: sensor.h:15
          - - - - -
          GPSInput(Stream *rx_stream, String config_path="")
          Definition: gps.cpp:7
          -
          NMEAData nmea_data
          Definition: gps.h:14
          -
          const String config_path
          Definition: configurable.h:29
          -
          Definition: gps.h:10
          -
          -
          - - - - diff --git a/docs/graph_legend.html b/docs/graph_legend.html deleted file mode 100644 index fa1ed9aca..000000000 --- a/docs/graph_legend.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - -SensESP: Graph Legend - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          Graph Legend
          -
          -
          -

          This page explains how to interpret the graphs that are generated by doxygen.

          -

          Consider the following example:

          /*! Invisible class because of truncation */
          class Invisible { };
          /*! Truncated class, inheritance relation is hidden */
          class Truncated : public Invisible { };
          /* Class not documented with doxygen comments */
          class Undocumented { };
          /*! Class that is inherited using public inheritance */
          class PublicBase : public Truncated { };
          /*! A template class */
          template<class T> class Templ { };
          /*! Class that is inherited using protected inheritance */
          class ProtectedBase { };
          /*! Class that is inherited using private inheritance */
          class PrivateBase { };
          /*! Class that is used by the Inherited class */
          class Used { };
          /*! Super class that inherits a number of other classes */
          class Inherited : public PublicBase,
          protected ProtectedBase,
          private PrivateBase,
          public Undocumented,
          public Templ<int>
          {
          private:
          Used *m_usedClass;
          };

          This will result in the following graph:

          -
          -

          The boxes in the above graph have the following meaning:

          -
            -
          • -A filled gray box represents the struct or class for which the graph is generated.
          • -
          • -A box with a black border denotes a documented struct or class.
          • -
          • -A box with a gray border denotes an undocumented struct or class.
          • -
          • -A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
          • -
          -

          The arrows have the following meaning:

          -
            -
          • -A dark blue arrow is used to visualize a public inheritance relation between two classes.
          • -
          • -A dark green arrow is used for protected inheritance.
          • -
          • -A dark red arrow is used for private inheritance.
          • -
          • -A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
          • -
          • -A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
          • -
          -
          -
          - - - - diff --git a/docs/graph_legend.md5 b/docs/graph_legend.md5 deleted file mode 100644 index 3b4f8ab28..000000000 --- a/docs/graph_legend.md5 +++ /dev/null @@ -1 +0,0 @@ -2779a1676ca72f29ac6dddfb5b5a4bb2 \ No newline at end of file diff --git a/docs/graph_legend.png b/docs/graph_legend.png deleted file mode 100644 index 881e40f9c..000000000 Binary files a/docs/graph_legend.png and /dev/null differ diff --git a/docs/hierarchy.html b/docs/hierarchy.html deleted file mode 100644 index aa8bd019f..000000000 --- a/docs/hierarchy.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - -SensESP: Class Hierarchy - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          Class Hierarchy
          -
          -
          -
          -

          Go to the graphical class hierarchy

          -This inheritance list is sorted roughly, but not completely, alphabetically:
          -
          [detail level 123456]
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
           CConfigurable
           CNetworking
           CSensor
           CDallasTemperatureSensors
           CDigitalInput
           CDigitalInputCounter
           CDigitalInputValue
           CFreeMem
           CGPSInput
           CIntegerSensor
           CNumericSensor
           CAnalogInput
           COneWireTemperature
           CSystemHz
           CUptime
           CStringSensor
           CIPAddrDev
           CTransformBase
           CTransform< C, P >
           CTransform< float, float >
           CSymmetricTransform< float >
           CTransform< int, float >
           CFrequency
           CTransform< T, T >
           CSymmetricTransform< T >
           CTransform< time_t, String >
           CTimeString
           CWSClient
           CEnable
           CSensor
           CTransformBase
           CENUVector
           CHTTPServer
           CLedBlinker
           CNMEAData
           CNMEAParser
           CObservable
           CSensor
           CSKEmitter
           CSKOutput< T >
           CSKOutputTime
           CValueProducer< T >
           CDigitalInputValue
           CObservableValue< T >
           CTransform< T, T >
           CValueProducer< ENUVector >
           CObservableValue< ENUVector >
           CValueProducer< float >
           CNumericSensor
           CObservableValue< float >
           CTransform< float, float >
           CTransform< int, float >
           CValueProducer< int >
           CDigitalInputCounter
           CIntegerSensor
           CObservableValue< int >
           CValueProducer< P >
           CTransform< C, P >
           CValueProducer< Position >
           CObservableValue< Position >
           CValueProducer< String >
           CObservableValue< String >
           CStringSensor
           CTransform< time_t, String >
           CValueProducer< time_t >
           CObservableValue< time_t >
           CValueProducer< uint32_t >
           CFreeMem
           CPosition
           CCurveInterpolator::Sample
           CSensESPApp
           CSentenceParser
           CGPGGASentenceParser
           CGPGLLSentenceParser
           CGPRMCSentenceParser
           CPSTI030SentenceParser
           CPSTI032SentenceParser
           CPSTISentenceParser
           CSKDelta
           CValueConsumer< T >
           CTransform< T, T >
           CValueConsumer< C >
           CTransform< C, P >
           CValueConsumer< float >
           CTransform< float, float >
           CValueConsumer< int >
           CTransform< int, float >
           CValueConsumer< time_t >
           CTransform< time_t, String >
          -
          -
          -
          - - - - diff --git a/docs/hierarchy.js b/docs/hierarchy.js deleted file mode 100644 index 58d2732a2..000000000 --- a/docs/hierarchy.js +++ /dev/null @@ -1,137 +0,0 @@ -var hierarchy = -[ - [ "Configurable", "class_configurable.html", [ - [ "Networking", "class_networking.html", null ], - [ "Sensor", "class_sensor.html", [ - [ "DallasTemperatureSensors", "class_dallas_temperature_sensors.html", null ], - [ "DigitalInput", "class_digital_input.html", [ - [ "DigitalInputCounter", "class_digital_input_counter.html", null ], - [ "DigitalInputValue", "class_digital_input_value.html", null ] - ] ], - [ "FreeMem", "class_free_mem.html", null ], - [ "GPSInput", "class_g_p_s_input.html", null ], - [ "IntegerSensor", "class_integer_sensor.html", null ], - [ "NumericSensor", "class_numeric_sensor.html", [ - [ "AnalogInput", "class_analog_input.html", null ], - [ "OneWireTemperature", "class_one_wire_temperature.html", null ], - [ "SystemHz", "class_system_hz.html", null ], - [ "Uptime", "class_uptime.html", null ] - ] ], - [ "StringSensor", "class_string_sensor.html", [ - [ "IPAddrDev", "class_i_p_addr_dev.html", null ] - ] ] - ] ], - [ "TransformBase", "class_transform_base.html", [ - [ "Transform< C, P >", "class_transform.html", null ], - [ "Transform< float, float >", "class_transform.html", [ - [ "SymmetricTransform< float >", "class_symmetric_transform.html", [ - [ "AngleCorrection", "class_angle_correction.html", null ], - [ "ChangeFilter", "class_change_filter.html", null ], - [ "CurveInterpolator", "class_curve_interpolator.html", null ], - [ "Difference", "class_difference.html", null ], - [ "Integrator", "class_integrator.html", null ], - [ "Linear", "class_linear.html", [ - [ "AnalogVoltage", "class_analog_voltage.html", null ] - ] ], - [ "Median", "class_median.html", null ], - [ "MovingAverage", "class_moving_average.html", null ], - [ "VoltageDividerR2", "class_voltage_divider_r2.html", null ] - ] ] - ] ], - [ "Transform< int, float >", "class_transform.html", [ - [ "Frequency", "class_frequency.html", null ] - ] ], - [ "Transform< T, T >", "class_transform.html", [ - [ "SymmetricTransform< T >", "class_symmetric_transform.html", [ - [ "Debounce", "class_debounce.html", null ], - [ "SKOutput< T >", "class_s_k_output.html", null ] - ] ] - ] ], - [ "Transform< time_t, String >", "class_transform.html", [ - [ "TimeString", "class_time_string.html", [ - [ "SKOutputTime", "class_s_k_output_time.html", null ] - ] ] - ] ] - ] ], - [ "WSClient", "class_w_s_client.html", null ] - ] ], - [ "Enable", "class_enable.html", [ - [ "Sensor", "class_sensor.html", null ], - [ "TransformBase", "class_transform_base.html", null ] - ] ], - [ "ENUVector", "struct_e_n_u_vector.html", null ], - [ "HTTPServer", "class_h_t_t_p_server.html", null ], - [ "LedBlinker", "class_led_blinker.html", null ], - [ "NMEAData", "struct_n_m_e_a_data.html", null ], - [ "NMEAParser", "class_n_m_e_a_parser.html", null ], - [ "Observable", "class_observable.html", [ - [ "Sensor", "class_sensor.html", null ], - [ "SKEmitter", "class_s_k_emitter.html", [ - [ "SKOutput< T >", "class_s_k_output.html", null ], - [ "SKOutputTime", "class_s_k_output_time.html", null ] - ] ], - [ "ValueProducer< T >", "class_value_producer.html", [ - [ "DigitalInputValue", "class_digital_input_value.html", null ], - [ "ObservableValue< T >", "class_observable_value.html", null ], - [ "Transform< T, T >", "class_transform.html", null ] - ] ], - [ "ValueProducer< ENUVector >", "class_value_producer.html", [ - [ "ObservableValue< ENUVector >", "class_observable_value.html", null ] - ] ], - [ "ValueProducer< float >", "class_value_producer.html", [ - [ "NumericSensor", "class_numeric_sensor.html", null ], - [ "ObservableValue< float >", "class_observable_value.html", null ], - [ "Transform< float, float >", "class_transform.html", null ], - [ "Transform< int, float >", "class_transform.html", null ] - ] ], - [ "ValueProducer< int >", "class_value_producer.html", [ - [ "DigitalInputCounter", "class_digital_input_counter.html", null ], - [ "IntegerSensor", "class_integer_sensor.html", null ], - [ "ObservableValue< int >", "class_observable_value.html", null ] - ] ], - [ "ValueProducer< P >", "class_value_producer.html", [ - [ "Transform< C, P >", "class_transform.html", null ] - ] ], - [ "ValueProducer< Position >", "class_value_producer.html", [ - [ "ObservableValue< Position >", "class_observable_value.html", null ] - ] ], - [ "ValueProducer< String >", "class_value_producer.html", [ - [ "ObservableValue< String >", "class_observable_value.html", null ], - [ "StringSensor", "class_string_sensor.html", null ], - [ "Transform< time_t, String >", "class_transform.html", null ] - ] ], - [ "ValueProducer< time_t >", "class_value_producer.html", [ - [ "ObservableValue< time_t >", "class_observable_value.html", null ] - ] ], - [ "ValueProducer< uint32_t >", "class_value_producer.html", [ - [ "FreeMem", "class_free_mem.html", null ] - ] ] - ] ], - [ "Position", "struct_position.html", null ], - [ "CurveInterpolator::Sample", "class_curve_interpolator_1_1_sample.html", null ], - [ "SensESPApp", "class_sens_e_s_p_app.html", null ], - [ "SentenceParser", "class_sentence_parser.html", [ - [ "GPGGASentenceParser", "class_g_p_g_g_a_sentence_parser.html", null ], - [ "GPGLLSentenceParser", "class_g_p_g_l_l_sentence_parser.html", null ], - [ "GPRMCSentenceParser", "class_g_p_r_m_c_sentence_parser.html", null ], - [ "PSTI030SentenceParser", "class_p_s_t_i030_sentence_parser.html", null ], - [ "PSTI032SentenceParser", "class_p_s_t_i032_sentence_parser.html", null ], - [ "PSTISentenceParser", "class_p_s_t_i_sentence_parser.html", null ] - ] ], - [ "SKDelta", "class_s_k_delta.html", null ], - [ "ValueConsumer< T >", "class_value_consumer.html", [ - [ "Transform< T, T >", "class_transform.html", null ] - ] ], - [ "ValueConsumer< C >", "class_value_consumer.html", [ - [ "Transform< C, P >", "class_transform.html", null ] - ] ], - [ "ValueConsumer< float >", "class_value_consumer.html", [ - [ "Transform< float, float >", "class_transform.html", null ] - ] ], - [ "ValueConsumer< int >", "class_value_consumer.html", [ - [ "Transform< int, float >", "class_transform.html", null ] - ] ], - [ "ValueConsumer< time_t >", "class_value_consumer.html", [ - [ "Transform< time_t, String >", "class_transform.html", null ] - ] ] -]; \ No newline at end of file diff --git a/docs/http_8cpp.html b/docs/http_8cpp.html deleted file mode 100644 index bb519cff0..000000000 --- a/docs/http_8cpp.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - -SensESP: src/net/http.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          http.cpp File Reference
          -
          -
          -
          #include "http.h"
          -#include <functional>
          -#include <FS.h>
          -#include "Arduino.h"
          -#include "AsyncJson.h"
          -#include "ArduinoJson.h"
          -#include <ESPAsyncWebServer.h>
          -#include "sensesp_app.h"
          -#include "system/configurable.h"
          -#include "web/index.h"
          -#include "web/setup.h"
          -#include "web/js_jsoneditor.h"
          -
          -Include dependency graph for http.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          -
          -
          - - - - diff --git a/docs/http_8cpp__incl.map b/docs/http_8cpp__incl.map deleted file mode 100644 index 674469471..000000000 --- a/docs/http_8cpp__incl.map +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/http_8cpp__incl.md5 b/docs/http_8cpp__incl.md5 deleted file mode 100644 index de9dee271..000000000 --- a/docs/http_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -8d7b20b189ce3bdcfe9e40b00d7a58e3 \ No newline at end of file diff --git a/docs/http_8cpp__incl.png b/docs/http_8cpp__incl.png deleted file mode 100644 index 82ddf0273..000000000 Binary files a/docs/http_8cpp__incl.png and /dev/null differ diff --git a/docs/http_8cpp_source.html b/docs/http_8cpp_source.html deleted file mode 100644 index ebe280541..000000000 --- a/docs/http_8cpp_source.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - -SensESP: src/net/http.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          http.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "http.h"
          2 
          3 #include <functional>
          4 
          5 #include <FS.h>
          6 #ifdef ESP32
          7 #include "SPIFFS.h"
          8 #endif
          9 
          10 #include "Arduino.h"
          11 #include "AsyncJson.h"
          12 #include "ArduinoJson.h"
          13 #include <ESPAsyncWebServer.h>
          14 
          15 #include "sensesp_app.h"
          16 #include "system/configurable.h"
          17 
          18 // Include the web UI stored in PROGMEM space
          19 #include "web/index.h"
          20 #include "web/setup.h"
          21 #include "web/js_jsoneditor.h"
          22 #include "web/js_sensesp.h"
          23 
          24 // HTTP port for the configuration interface
          25 #ifndef HTTP_SERVER_PORT
          26 #define HTTP_SERVER_PORT 80
          27 #endif
          28 
          29 HTTPServer::HTTPServer(std::function<void()> reset_device) {
          30  this->reset_device = reset_device;
          31  server = new AsyncWebServer(HTTP_SERVER_PORT);
          32  using std::placeholders::_1;
          33 
          34  server->onNotFound(std::bind(&HTTPServer::handle_not_found, this, _1));
          35 
          36  // Handle setting configuration values of a Configurable via a Json PUT to /config
          37  AsyncCallbackJsonWebHandler* config_put_handler
          38  = new AsyncCallbackJsonWebHandler(
          39  "/config",
          40  [](AsyncWebServerRequest *request, JsonVariant &json) {
          41  // omit the "/config" part of the url
          42  String url_tail = request->url().substring(7);
          43 
          44  if (url_tail=="") {
          45  request->send(405, "text/plain",
          46  F("PUT to /config not allowed.\n"));
          47  return;
          48  }
          49 
          50  std::map<String, Configurable*>::iterator it
          51  = configurables.find(url_tail);
          52  if (it==configurables.end()) {
          53  request->send(404, "text/plain",
          54  F("Configuration key not found.\n"));
          55  return;
          56  }
          57  Configurable* confable = it->second;
          58 
          59  JsonObject& body = json.as<JsonObject>();
          60  if (body.success()) {
          61  if (!confable->set_configuration(body)) {
          62  request->send(400, "text/plain",
          63  F("Unable to extract keys from JSON.\n"));
          64  return;
          65  }
          66  confable->save_configuration();
          67  request->send(200, "text/plain", F("Configuration successful.\n"));
          68  return;
          69  } else {
          70  request->send(400, "text/plain", F("Unable to parse JSON body.\n"));
          71  return;
          72  }
          73  });
          74  config_put_handler->setMethod(HTTP_PUT);
          75  server->addHandler(config_put_handler);
          76 
          77 
          78  // Handle requests to retrieve the current Json configuration of a Configurable
          79  // via HTTP GET on /config
          80  server->on("/config", HTTP_GET, [this] (AsyncWebServerRequest *request) {
          81  // omit the "/config" part of the url
          82  String url_tail = request->url().substring(7);
          83 
          84  if (url_tail=="" || url_tail=="/") {
          85  this->handle_config_list(request);
          86  return;
          87  }
          88 
          89  std::map<String, Configurable*>::iterator it
          90  = configurables.find(url_tail);
          91  if (it==configurables.end()) {
          92  request->send(404, "text/plain",
          93  F("Configuration key not found.\n"));
          94  return;
          95  }
          96  Configurable* confable = it->second;
          97 
          98  AsyncResponseStream *response = request->beginResponseStream("application/json");
          99  DynamicJsonBuffer json_buffer;
          100  JsonObject& root = json_buffer.createObject();
          101  root["config"] = confable->get_configuration(json_buffer);
          102  root["schema"] = RawJson(confable->get_config_schema());
          103  root.printTo(*response);
          104  request->send(response);
          105  });
          106 
          107 
          108  server->on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
          109  debugD("Serving index.html");
          110  request->send_P(200, "text/html", PAGE_index);
          111  });
          112 
          113  server->on("/setup", HTTP_GET, [](AsyncWebServerRequest *request) {
          114  debugD("Serving setup.html");
          115  request->send_P(200, "text/html", PAGE_setup);
          116  });
          117 
          118  server->on("/js/jsoneditor.min.js", HTTP_GET, [](AsyncWebServerRequest *request) {
          119  debugD("Serving jsoneditor.min.js");
          120  request->send_P(200, "text/javascript", PAGE_js_jsoneditor);
          121  });
          122 
          123 
          124  server->on("/js/sensesp.js", HTTP_GET, [](AsyncWebServerRequest *request) {
          125  debugD("Serving sensesp.js");
          126  request->send_P(200, "text/javascript", PAGE_js_sensesp);
          127  });
          128 
          129 
          130  server->on("/device/reset", HTTP_GET,
          131  std::bind(&HTTPServer::handle_device_reset, this, _1));
          132  server->on("/device/restart", HTTP_GET,
          133  std::bind(&HTTPServer::handle_device_restart, this, _1));
          134  server->on("/info", HTTP_GET,
          135  std::bind(&HTTPServer::handle_info, this, _1));
          136 }
          137 
          138 
          139 void HTTPServer::handle_not_found(AsyncWebServerRequest* request) {
          140  debugD("NOT_FOUND: ");
          141  if(request->method() == HTTP_GET) {
          142  debugD("GET");
          143  }
          144  else if(request->method() == HTTP_POST) {
          145  debugD("POST");
          146  }
          147  else if(request->method() == HTTP_DELETE) {
          148  debugD("DELETE");
          149  }
          150  else if(request->method() == HTTP_PUT) {
          151  debugD("PUT");
          152  }
          153  else if(request->method() == HTTP_PATCH) {
          154  debugD("PATCH");
          155  }
          156  else if(request->method() == HTTP_HEAD) {
          157  debugD("HEAD");
          158  }
          159  else if(request->method() == HTTP_OPTIONS) {
          160  debugD("OPTIONS");
          161  }
          162  else {
          163  debugD("UNKNOWN");
          164  }
          165  debugD(" http://%s%s\n", request->host().c_str(), request->url().c_str());
          166 
          167  if(request->contentLength()){
          168  debugD("_CONTENT_TYPE: %s\n", request->contentType().c_str());
          169  debugD("_CONTENT_LENGTH: %u\n", request->contentLength());
          170  }
          171 
          172  int headers = request->headers();
          173  int i;
          174  for(i=0;i<headers;i++){
          175  AsyncWebHeader* h = request->getHeader(i);
          176  debugD("_HEADER[%s]: %s\n", h->name().c_str(), h->value().c_str());
          177  }
          178 
          179  int params = request->params();
          180  for(i=0;i<params;i++){
          181  AsyncWebParameter* p = request->getParam(i);
          182  if(p->isFile()){
          183  debugD("_FILE[%s]: %s, size: %u\n", p->name().c_str(), p->value().c_str(), p->size());
          184  } else if(p->isPost()){
          185  debugD("_POST[%s]: %s\n", p->name().c_str(), p->value().c_str());
          186  } else {
          187  debugD("_GET[%s]: %s\n", p->name().c_str(), p->value().c_str());
          188  }
          189  }
          190 
          191  request->send(404);
          192 }
          193 
          194 void HTTPServer::handle_config_list(AsyncWebServerRequest* request) {
          195  AsyncResponseStream *response = request->beginResponseStream("application/json");
          196  DynamicJsonBuffer json_buffer;
          197  JsonObject& root = json_buffer.createObject();
          198  JsonArray& arr = root.createNestedArray("keys");
          199  for (auto it = configurables.begin(); it!=configurables.end(); ++it) {
          200  arr.add(it->first);
          201  }
          202  root.printTo(*response);
          203  request->send(response);
          204 }
          205 
          206 void HTTPServer::handle_config(AsyncWebServerRequest* request) {
          207  debugD("%s", request->url().c_str());
          208  request->send(200, "text/plain", "/config");
          209 }
          210 
          211 void HTTPServer::handle_device_reset(AsyncWebServerRequest* request) {
          212  request->send(200, "text/plain",
          213  "OK, resetting the device settings back to factory defaults.\n");
          214  app.onDelay(500, [this](){ this->reset_device(); });
          215 }
          216 
          217 void HTTPServer::handle_device_restart(AsyncWebServerRequest* request) {
          218  request->send(200, "text/plain", "OK, restarting\n");
          219  app.onDelay(50, [](){ ESP.restart(); });
          220 }
          221 
          222 
          223 void HTTPServer::handle_info(AsyncWebServerRequest* request) {
          224  request->send(200, "text/plain", "/info");
          225 }
          226 
          virtual bool set_configuration(const JsonObject &config)
          - -
          virtual JsonObject & get_configuration(JsonBuffer &buf)
          -
          void handle_not_found(AsyncWebServerRequest *request)
          Definition: http.cpp:139
          -
          void handle_device_reset(AsyncWebServerRequest *request)
          Definition: http.cpp:211
          - -
          virtual void save_configuration()
          -
          std::map< String, Configurable * > configurables
          - -
          virtual String get_config_schema()
          -
          void handle_info(AsyncWebServerRequest *request)
          Definition: http.cpp:223
          - -
          HTTPServer(std::function< void()> reset_device)
          Definition: http.cpp:29
          - -
          void handle_device_restart(AsyncWebServerRequest *request)
          Definition: http.cpp:217
          - - - -
          void handle_config(AsyncWebServerRequest *request)
          Definition: http.cpp:206
          -
          ReactESP app
          -
          -
          - - - - diff --git a/docs/http_8h.html b/docs/http_8h.html deleted file mode 100644 index 97bca1578..000000000 --- a/docs/http_8h.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - -SensESP: src/net/http.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          http.h File Reference
          -
          -
          -
          #include <functional>
          -#include <ESPAsyncWebServer.h>
          -
          -Include dependency graph for http.h:
          -
          -
          - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  HTTPServer
           
          -
          -
          - - - - diff --git a/docs/http_8h__dep__incl.map b/docs/http_8h__dep__incl.map deleted file mode 100644 index 1498d16c7..000000000 --- a/docs/http_8h__dep__incl.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/http_8h__dep__incl.md5 b/docs/http_8h__dep__incl.md5 deleted file mode 100644 index c10f0c0c4..000000000 --- a/docs/http_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -648afa60440eb397dd9a71f4351c68c0 \ No newline at end of file diff --git a/docs/http_8h__dep__incl.png b/docs/http_8h__dep__incl.png deleted file mode 100644 index c1b6671fd..000000000 Binary files a/docs/http_8h__dep__incl.png and /dev/null differ diff --git a/docs/http_8h__incl.map b/docs/http_8h__incl.map deleted file mode 100644 index 720e8aba8..000000000 --- a/docs/http_8h__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/http_8h__incl.md5 b/docs/http_8h__incl.md5 deleted file mode 100644 index b72aa59f5..000000000 --- a/docs/http_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -fcdd6f9bcc3bea9527e49e522051138d \ No newline at end of file diff --git a/docs/http_8h__incl.png b/docs/http_8h__incl.png deleted file mode 100644 index 64be3075c..000000000 Binary files a/docs/http_8h__incl.png and /dev/null differ diff --git a/docs/http_8h_source.html b/docs/http_8h_source.html deleted file mode 100644 index 9eeeabc44..000000000 --- a/docs/http_8h_source.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -SensESP: src/net/http.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          http.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _http_H_
          2 #define _http_H_
          3 
          4 #include <functional>
          5 
          6 #include <ESPAsyncWebServer.h>
          7 
          8 class HTTPServer {
          9  public:
          10  HTTPServer(std::function<void()> reset_device);
          11  ~HTTPServer() { delete server; }
          12  void enable() { server->begin(); }
          13  void handle_not_found(AsyncWebServerRequest* request);
          14  void handle_config(AsyncWebServerRequest* request);
          15  void handle_device_reset(AsyncWebServerRequest* request);
          16  void handle_device_restart(AsyncWebServerRequest* request);
          17  void handle_info(AsyncWebServerRequest* request);
          18  private:
          19  AsyncWebServer* server;
          20  std::function<void()> reset_device;
          21  void handle_config_list(AsyncWebServerRequest* request);
          22 };
          23 
          24 
          25 #endif
          ~HTTPServer()
          Definition: http.h:11
          -
          void handle_not_found(AsyncWebServerRequest *request)
          Definition: http.cpp:139
          -
          void handle_device_reset(AsyncWebServerRequest *request)
          Definition: http.cpp:211
          -
          void handle_info(AsyncWebServerRequest *request)
          Definition: http.cpp:223
          -
          void enable()
          Definition: http.h:12
          -
          HTTPServer(std::function< void()> reset_device)
          Definition: http.cpp:29
          -
          void handle_device_restart(AsyncWebServerRequest *request)
          Definition: http.cpp:217
          -
          Definition: http.h:8
          -
          void handle_config(AsyncWebServerRequest *request)
          Definition: http.cpp:206
          -
          -
          - - - - diff --git a/docs/index_8h.html b/docs/index_8h.html deleted file mode 100644 index 545941d50..000000000 --- a/docs/index_8h.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - -SensESP: src/net/web/index.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          index.h File Reference
          -
          -
          -
          #include <pgmspace.h>
          -
          -Include dependency graph for index.h:
          -
          -
          - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Variables

          const char PAGE_index [] PROGMEM
           
          -

          Variable Documentation

          - -

          ◆ PROGMEM

          - -
          -
          - - - - -
          const char PAGE_index [] PROGMEM
          -
          -Initial value:
          = R"=====(
          <html>
          <head>
          <title>SensESP Device</title>
          </head>
          <body>
          <h1>SensESP Device</h1>
          Your options:
          <ul>
          <li><a href="/info">Device information</a></li>
          <li><a href="/setup">Configure device</a></li>
          <li><a href="/device/restart" onclick="return confirm('Restart the device?')">Restart device</a></li>
          <li><a href="/device/reset" onclick="return confirm('Are you sure you want to reset device to factory settings?')">Reset device</a></li>
          </ul>
          </body>
          </html>
          )====="
          -

          Definition at line 2 of file index.h.

          - -
          -
          -
          -
          - - - - diff --git a/docs/index_8h__dep__incl.md5 b/docs/index_8h__dep__incl.md5 deleted file mode 100644 index 75c9bec86..000000000 --- a/docs/index_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -015ce5344f8a209c82f50d3f163b1bb4 \ No newline at end of file diff --git a/docs/index_8h__dep__incl.png b/docs/index_8h__dep__incl.png deleted file mode 100644 index 9c3df278a..000000000 Binary files a/docs/index_8h__dep__incl.png and /dev/null differ diff --git a/docs/index_8h__incl.md5 b/docs/index_8h__incl.md5 deleted file mode 100644 index 489b33636..000000000 --- a/docs/index_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -cc540b36870c4089186889ce2a68a79f \ No newline at end of file diff --git a/docs/index_8h__incl.png b/docs/index_8h__incl.png deleted file mode 100644 index 36004d9e2..000000000 Binary files a/docs/index_8h__incl.png and /dev/null differ diff --git a/docs/index_8h_source.html b/docs/index_8h_source.html deleted file mode 100644 index 53bedd347..000000000 --- a/docs/index_8h_source.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - -SensESP: src/net/web/index.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          index.h
          -
          -
          -Go to the documentation of this file.
          1 #include <pgmspace.h>
          2 const char PAGE_index[] PROGMEM = R"=====(
          3 <html>
          4 <head>
          5 <title>SensESP Device</title>
          6 </head>
          7 <body>
          8 <h1>SensESP Device</h1>
          9 Your options:
          10 <ul>
          11 <li><a href="/info">Device information</a></li>
          12 <li><a href="/setup">Configure device</a></li>
          13 <li><a href="/device/restart" onclick="return confirm('Restart the device?')">Restart device</a></li>
          14 <li><a href="/device/reset" onclick="return confirm('Are you sure you want to reset device to factory settings?')">Reset device</a></li>
          15 </ul>
          16 </body>
          17 </html>
          18 
          19 )=====";
          const char PAGE_index [] PROGMEM
          Definition: index.h:2
          -
          -
          - - - - diff --git a/docs/inherit_graph_0.png b/docs/inherit_graph_0.png deleted file mode 100644 index 1bbd66937..000000000 Binary files a/docs/inherit_graph_0.png and /dev/null differ diff --git a/docs/inherit_graph_1.png b/docs/inherit_graph_1.png deleted file mode 100644 index 308e6e84d..000000000 Binary files a/docs/inherit_graph_1.png and /dev/null differ diff --git a/docs/inherit_graph_10.map b/docs/inherit_graph_10.map deleted file mode 100644 index 3a1b73385..000000000 --- a/docs/inherit_graph_10.map +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/inherit_graph_10.md5 b/docs/inherit_graph_10.md5 deleted file mode 100644 index 468503d0f..000000000 --- a/docs/inherit_graph_10.md5 +++ /dev/null @@ -1 +0,0 @@ -6a21714d0b612afba1092e7c55fa9038 \ No newline at end of file diff --git a/docs/inherit_graph_10.png b/docs/inherit_graph_10.png deleted file mode 100644 index 7d102ff18..000000000 Binary files a/docs/inherit_graph_10.png and /dev/null differ diff --git a/docs/inherit_graph_2.png b/docs/inherit_graph_2.png deleted file mode 100644 index 5c8c79b04..000000000 Binary files a/docs/inherit_graph_2.png and /dev/null differ diff --git a/docs/inherit_graph_3.png b/docs/inherit_graph_3.png deleted file mode 100644 index f38e74aa8..000000000 Binary files a/docs/inherit_graph_3.png and /dev/null differ diff --git a/docs/inherit_graph_4.png b/docs/inherit_graph_4.png deleted file mode 100644 index eaf83517a..000000000 Binary files a/docs/inherit_graph_4.png and /dev/null differ diff --git a/docs/inherit_graph_5.png b/docs/inherit_graph_5.png deleted file mode 100644 index 2256fab8b..000000000 Binary files a/docs/inherit_graph_5.png and /dev/null differ diff --git a/docs/inherit_graph_6.png b/docs/inherit_graph_6.png deleted file mode 100644 index e7f2f9f5c..000000000 Binary files a/docs/inherit_graph_6.png and /dev/null differ diff --git a/docs/inherit_graph_7.png b/docs/inherit_graph_7.png deleted file mode 100644 index 2fdad3cb8..000000000 Binary files a/docs/inherit_graph_7.png and /dev/null differ diff --git a/docs/inherit_graph_8.png b/docs/inherit_graph_8.png deleted file mode 100644 index 751915945..000000000 Binary files a/docs/inherit_graph_8.png and /dev/null differ diff --git a/docs/inherit_graph_9.png b/docs/inherit_graph_9.png deleted file mode 100644 index 27b1fbfc0..000000000 Binary files a/docs/inherit_graph_9.png and /dev/null differ diff --git a/docs/inherits.html b/docs/inherits.html deleted file mode 100644 index d50e44d3d..000000000 --- a/docs/inherits.html +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - -SensESP: Class Hierarchy - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          Class Hierarchy
          -
          -
          - - - - - - - - - - - - -
          - - - -
          - - - -
          - - - -
          - - - -
          - - - -
          - - - -
          - - - -
          - - - -
          - - - - - - - - - -
          - - - -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -
          - - - - diff --git a/docs/integrator_8cpp.html b/docs/integrator_8cpp.html deleted file mode 100644 index 3fd5ec2d8..000000000 --- a/docs/integrator_8cpp.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - -SensESP: src/transforms/integrator.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          integrator.cpp File Reference
          -
          -
          -
          #include "integrator.h"
          -#include "sensesp_app.h"
          -
          -Include dependency graph for integrator.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          -
          -
          - - - - diff --git a/docs/integrator_8cpp__incl.map b/docs/integrator_8cpp__incl.map deleted file mode 100644 index 3bacf20dd..000000000 --- a/docs/integrator_8cpp__incl.map +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/integrator_8cpp__incl.md5 b/docs/integrator_8cpp__incl.md5 deleted file mode 100644 index 50a1ab58b..000000000 --- a/docs/integrator_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -c7b56c646800a256ff6ef24495653b4d \ No newline at end of file diff --git a/docs/integrator_8cpp__incl.png b/docs/integrator_8cpp__incl.png deleted file mode 100644 index b245182f8..000000000 Binary files a/docs/integrator_8cpp__incl.png and /dev/null differ diff --git a/docs/integrator_8cpp_source.html b/docs/integrator_8cpp_source.html deleted file mode 100644 index 13cd18c80..000000000 --- a/docs/integrator_8cpp_source.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -SensESP: src/transforms/integrator.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          integrator.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "integrator.h"
          2 
          3 #include "sensesp_app.h"
          4 
          5 // Integrator
          6 
          7 Integrator::Integrator(float k, float value, String config_path) :
          8  NumericTransform(config_path),
          9  k{ k } {
          10  className = "Integrator";
          11  output = value;
          12  load_configuration();
          13 }
          14 
          15 
          17  // save the integrator value every 10 s
          18  // NOTE: Disabled for now because interrupts start throwing
          19  // exceptions.
          20  //app.onRepeat(10000, [this](){ this->save_configuration(); });
          21 }
          22 
          23 void Integrator::set_input(float input, uint8_t inputChannel) {
          24  output += input;
          25  notify();
          26 }
          27 
          28 
          29 JsonObject& Integrator::get_configuration(JsonBuffer& buf) {
          30  JsonObject& root = buf.createObject();
          31  root["k"] = k;
          32  root["value"] = output;
          33  return root;
          34 }
          35 
          36 static const char SCHEMA[] PROGMEM = R"({
          37  "type": "object",
          38  "properties": {
          39  "k": { "title": "Multiplier", "type": "number" },
          40  "value": { "title": "Current value", "type" : "number", "readOnly": false }
          41  }
          42  })";
          43 
          45  return FPSTR(SCHEMA);
          46 }
          47 
          48 bool Integrator::set_configuration(const JsonObject& config) {
          49  String expected[] = {"k" };
          50  for (auto str : expected) {
          51  if (!config.containsKey(str)) {
          52  return false;
          53  }
          54  }
          55  k = config["k"];
          56  output = config["value"];
          57  return true;
          58 }
          virtual JsonObject & get_configuration(JsonBuffer &buf) override final
          Definition: integrator.cpp:29
          -
          void notify()
          Definition: observable.cpp:3
          -
          virtual void set_input(float input, uint8_t inputChannel=0) override final
          Definition: integrator.cpp:23
          -
          virtual bool set_configuration(const JsonObject &config) override final
          Definition: integrator.cpp:48
          -
          virtual void enable() override final
          Definition: integrator.cpp:16
          - - -
          virtual String get_config_schema() override
          Definition: integrator.cpp:44
          - - -
          Integrator(float k=1, float value=0, String config_path="")
          Definition: integrator.cpp:7
          -
          const char PAGE_index [] PROGMEM
          Definition: index.h:2
          -
          -
          - - - - diff --git a/docs/integrator_8h.html b/docs/integrator_8h.html deleted file mode 100644 index 697b13b2f..000000000 --- a/docs/integrator_8h.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - -SensESP: src/transforms/integrator.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          integrator.h File Reference
          -
          -
          -
          #include "transform.h"
          -
          -Include dependency graph for integrator.h:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  Integrator
           
          -
          -
          - - - - diff --git a/docs/integrator_8h__dep__incl.md5 b/docs/integrator_8h__dep__incl.md5 deleted file mode 100644 index 27e27a224..000000000 --- a/docs/integrator_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -bd9f78b21bfd1f3f3516f0098a5c922e \ No newline at end of file diff --git a/docs/integrator_8h__dep__incl.png b/docs/integrator_8h__dep__incl.png deleted file mode 100644 index a5aef7f4a..000000000 Binary files a/docs/integrator_8h__dep__incl.png and /dev/null differ diff --git a/docs/integrator_8h__incl.map b/docs/integrator_8h__incl.map deleted file mode 100644 index 69cd28272..000000000 --- a/docs/integrator_8h__incl.map +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/integrator_8h__incl.md5 b/docs/integrator_8h__incl.md5 deleted file mode 100644 index 340352227..000000000 --- a/docs/integrator_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -3360b43e6174edce9f32784b742f3521 \ No newline at end of file diff --git a/docs/integrator_8h__incl.png b/docs/integrator_8h__incl.png deleted file mode 100644 index 2ee82e127..000000000 Binary files a/docs/integrator_8h__incl.png and /dev/null differ diff --git a/docs/integrator_8h_source.html b/docs/integrator_8h_source.html deleted file mode 100644 index d7ee5a4aa..000000000 --- a/docs/integrator_8h_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SensESP: src/transforms/integrator.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          integrator.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _integrator_H_
          2 #define _integrator_H_
          3 
          4 #include "transform.h"
          5 
          6 // y = k * sum(x_t)
          7 class Integrator : public NumericTransform {
          8  public:
          9  Integrator(float k=1, float value=0, String config_path="");
          10  virtual void enable() override final;
          11  virtual void set_input(float input, uint8_t inputChannel = 0) override final;
          12  virtual JsonObject& get_configuration(JsonBuffer& buf) override final;
          13  virtual bool set_configuration(const JsonObject& config) override final;
          14  virtual String get_config_schema() override;
          15 
          16  private:
          17  float k;
          18 };
          19 
          20 #endif
          virtual JsonObject & get_configuration(JsonBuffer &buf) override final
          Definition: integrator.cpp:29
          -
          virtual void set_input(float input, uint8_t inputChannel=0) override final
          Definition: integrator.cpp:23
          -
          virtual bool set_configuration(const JsonObject &config) override final
          Definition: integrator.cpp:48
          -
          virtual void enable() override final
          Definition: integrator.cpp:16
          - - - -
          const String config_path
          Definition: configurable.h:29
          -
          virtual String get_config_schema() override
          Definition: integrator.cpp:44
          -
          Integrator(float k=1, float value=0, String config_path="")
          Definition: integrator.cpp:7
          -
          -
          - - - - diff --git a/docs/jquery.js b/docs/jquery.js deleted file mode 100644 index 1ee895ca3..000000000 --- a/docs/jquery.js +++ /dev/null @@ -1,87 +0,0 @@ -/*! - * jQuery JavaScript Library v1.7.2 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Wed Mar 21 12:46:34 2012 -0700 - */ -(function(bd,L){var av=bd.document,bu=bd.navigator,bm=bd.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bd.jQuery,bH=bd.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bd.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bd.attachEvent("onload",bF.ready);var b0=false;try{b0=bd.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0!=null&&b0==b0.window},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bd.JSON&&bd.JSON.parse){return bd.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){if(typeof b2!=="string"||!b2){return null}var b0,b1;try{if(bd.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bd.execScript||function(b1){bd["eval"].call(bd,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aK.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aK.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
          a";bH=bv.getElementsByTagName("*");bE=bv.getElementsByTagName("a")[0];if(!bH||!bH.length||!bE){return{}}bF=av.createElement("select");bx=bF.appendChild(av.createElement("option"));bD=bv.getElementsByTagName("input")[0];bI={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bE.getAttribute("style")),hrefNormalized:(bE.getAttribute("href")==="/a"),opacity:/^0.55/.test(bE.style.opacity),cssFloat:!!bE.style.cssFloat,checkOn:(bD.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true,pixelMargin:true};b.boxModel=bI.boxModel=(av.compatMode==="CSS1Compat");bD.checked=true;bI.noCloneChecked=bD.cloneNode(true).checked;bF.disabled=true;bI.optDisabled=!bx.disabled;try{delete bv.test}catch(bB){bI.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bI.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bD=av.createElement("input");bD.value="t";bD.setAttribute("type","radio");bI.radioValue=bD.value==="t";bD.setAttribute("checked","checked");bD.setAttribute("name","t");bv.appendChild(bD);bC=av.createDocumentFragment();bC.appendChild(bv.lastChild);bI.checkClone=bC.cloneNode(true).cloneNode(true).lastChild.checked;bI.appendChecked=bD.checked;bC.removeChild(bD);bC.appendChild(bv);if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bA="on"+by;bw=(bA in bv);if(!bw){bv.setAttribute(bA,"return;");bw=(typeof bv[bA]==="function")}bI[by+"Bubbles"]=bw}}bC.removeChild(bv);bC=bF=bx=bv=bD=null;b(function(){var bM,bV,bW,bU,bO,bP,bR,bL,bK,bQ,bN,e,bT,bS=av.getElementsByTagName("body")[0];if(!bS){return}bL=1;bT="padding:0;margin:0;border:";bN="position:absolute;top:0;left:0;width:1px;height:1px;";e=bT+"0;visibility:hidden;";bK="style='"+bN+bT+"5px solid #000;";bQ="
          ";bM=av.createElement("div");bM.style.cssText=e+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bS.insertBefore(bM,bS.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
          t
          ";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bI.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);if(bd.getComputedStyle){bv.innerHTML="";bR=av.createElement("div");bR.style.width="0";bR.style.marginRight="0";bv.style.width="2px";bv.appendChild(bR);bI.reliableMarginRight=(parseInt((bd.getComputedStyle(bR,null)||{marginRight:0}).marginRight,10)||0)===0}if(typeof bv.style.zoom!=="undefined"){bv.innerHTML="";bv.style.width=bv.style.padding="1px";bv.style.border=0;bv.style.overflow="hidden";bv.style.display="inline";bv.style.zoom=1;bI.inlineBlockNeedsLayout=(bv.offsetWidth===3);bv.style.display="block";bv.style.overflow="visible";bv.innerHTML="
          ";bI.shrinkWrapBlocks=(bv.offsetWidth!==3)}bv.style.cssText=bN+e;bv.innerHTML=bQ;bV=bv.firstChild;bW=bV.firstChild;bO=bV.nextSibling.firstChild.firstChild;bP={doesNotAddBorder:(bW.offsetTop!==5),doesAddBorderForTableAndCells:(bO.offsetTop===5)};bW.style.position="fixed";bW.style.top="20px";bP.fixedPosition=(bW.offsetTop===20||bW.offsetTop===15);bW.style.position=bW.style.top="";bV.style.overflow="hidden";bV.style.position="relative";bP.subtractsBorderForOverflowNotVisible=(bW.offsetTop===-5);bP.doesNotIncludeMarginInBodyOffset=(bS.offsetTop!==bL);if(bd.getComputedStyle){bv.style.marginTop="1%";bI.pixelMargin=(bd.getComputedStyle(bv,null)||{marginTop:0}).marginTop!=="1%"}if(typeof bM.style.zoom!=="undefined"){bM.style.zoom=1}bS.removeChild(bM);bR=bv=bM=null;b.extend(bI,bP)});return bI})();var aT=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA1,null,false)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a6(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?+by:aT.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bj(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bj(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bj(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){var bw=2;if(typeof e!=="string"){bv=e;e="fx";bw--}if(arguments.length1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,b.prop,e,bv,arguments.length>1)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(ag);for(bw=0,bv=this.length;bw-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.type]||b.valHooks[bw.nodeName.toLowerCase()];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aV,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aZ:bf)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(by,bA){var bz,bB,bw,e,bv,bx=0;if(bA&&by.nodeType===1){bB=bA.toLowerCase().split(ag);e=bB.length;for(;bx=0)}}})});var be=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/(?:^|\s)hover(\.\S+)?\b/,aP=/^key/,bg=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler;by=bv.selector}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bd,bI])}}for(bC=0;bCbC){bv.push({elem:this,matches:bD.slice(bC)})}for(bJ=0;bJ0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aP.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bg.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); -/*! - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}bE.match.globalPOS=bD;var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

          ";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
          ";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(B(bx[0])||B(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function B(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||bb.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aH(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aS.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aS="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ah=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,v=/]","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bn=/\/(java|ecma)script/i,aO=/^\s*",""],legend:[1,"
          ","
          "],thead:[1,"","
          "],tr:[2,"","
          "],td:[3,"","
          "],col:[2,"","
          "],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
          ","
          "]}b.fn.extend({text:function(e){return b.access(this,function(bv){return bv===L?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(bv))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(e){return b.access(this,function(by){var bx=this[0]||{},bw=0,bv=this.length;if(by===L){return bx.nodeType===1?bx.innerHTML.replace(ah,""):null}if(typeof by==="string"&&!ae.test(by)&&(b.support.leadingWhitespace||!ar.test(by))&&!ax[(d.exec(by)||["",""])[1].toLowerCase()]){by=by.replace(R,"<$1>");try{for(;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bh(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function D(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function am(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||b.isXMLDoc(by)||!ai.test("<"+by.nodeName+">")?by.cloneNode(true):am(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){aj(by,bz);e=bh(by);bv=bh(bz);for(bx=0;e[bx];++bx){if(bv[bx]){aj(e[bx],bv[bx])}}}if(bA){s(by,bz);if(bw){e=bh(by);bv=bh(bz);for(bx=0;e[bx];++bx){s(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bI,bw,bv,bx){var bA,bH,bD,bJ=[];bw=bw||av;if(typeof bw.createElement==="undefined"){bw=bw.ownerDocument||bw[0]&&bw[0].ownerDocument||av}for(var bE=0,bG;(bG=bI[bE])!=null;bE++){if(typeof bG==="number"){bG+=""}if(!bG){continue}if(typeof bG==="string"){if(!W.test(bG)){bG=bw.createTextNode(bG)}else{bG=bG.replace(R,"<$1>");var bN=(d.exec(bG)||["",""])[1].toLowerCase(),bz=ax[bN]||ax._default,bK=bz[0],bB=bw.createElement("div"),bL=ac.childNodes,bM;if(bw===av){ac.appendChild(bB)}else{a(bw).appendChild(bB)}bB.innerHTML=bz[1]+bG+bz[2];while(bK--){bB=bB.lastChild}if(!b.support.tbody){var by=v.test(bG),e=bN==="table"&&!by?bB.firstChild&&bB.firstChild.childNodes:bz[1]===""&&!by?bB.childNodes:[];for(bD=e.length-1;bD>=0;--bD){if(b.nodeName(e[bD],"tbody")&&!e[bD].childNodes.length){e[bD].parentNode.removeChild(e[bD])}}}if(!b.support.leadingWhitespace&&ar.test(bG)){bB.insertBefore(bw.createTextNode(ar.exec(bG)[0]),bB.firstChild)}bG=bB.childNodes;if(bB){bB.parentNode.removeChild(bB);if(bL.length>0){bM=bL[bL.length-1];if(bM&&bM.parentNode){bM.parentNode.removeChild(bM)}}}}}var bF;if(!b.support.appendChecked){if(bG[0]&&typeof(bF=bG.length)==="number"){for(bD=0;bD1)};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(by,bx,bz){var e={},bw,bv;for(bv in bx){e[bv]=by.style[bv];by.style[bv]=bx[bv]}bw=bz.call(by);for(bv in bx){by.style[bv]=e[bv]}return bw}});b.curCSS=b.css;if(av.defaultView&&av.defaultView.getComputedStyle){aJ=function(bA,bw){var bv,bz,e,by,bx=bA.style;bw=bw.replace(y,"-$1").toLowerCase();if((bz=bA.ownerDocument.defaultView)&&(e=bz.getComputedStyle(bA,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(bA.ownerDocument.documentElement,bA)){bv=b.style(bA,bw)}}if(!b.support.pixelMargin&&e&&aE.test(bw)&&a1.test(bv)){by=bx.width;bx.width=bv;bv=e.width;bx.width=by}return bv}}if(av.documentElement.currentStyle){aY=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv==null&&bx&&(by=bx[bw])){bv=by}if(a1.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":bv;bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aJ||aY;function af(by,bw,bv){var bz=bw==="width"?by.offsetWidth:by.offsetHeight,bx=bw==="width"?1:0,e=4;if(bz>0){if(bv!=="border"){for(;bx=1&&b.trim(bw.replace(al,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=al.test(bw)?bw.replace(al,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bv,e){return b.swap(bv,{display:"inline-block"},function(){if(e){return Z(bv,"margin-right")}else{return bv.style.marginRight}})}}}});if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}b.each({margin:"",padding:"",border:"Width"},function(e,bv){b.cssHooks[e+bv]={expand:function(by){var bx,bz=typeof by==="string"?by.split(" "):[by],bw={};for(bx=0;bx<4;bx++){bw[e+G[bx]+bv]=bz[bx]||bz[bx-2]||bz[0]}return bw}}});var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,a0=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aN=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aR=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a7=/)<[^<]*)*<\/script>/gi,p=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,z=b.fn.load,aa={},q={},aF,r,aW=["*/"]+["*"];try{aF=bm.href}catch(aw){aF=av.createElement("a");aF.href="";aF=aF.href}r=K.exec(aF.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
          ").append(bD.replace(a7,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||p.test(this.nodeName)||a0.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){an(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}an(bv,e);return bv},ajaxSettings:{url:aF,isLocal:aN.test(r[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bd.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(q),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bk(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=F(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,r[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=r[1]||bI[2]!=r[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(r[3]||(r[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aX(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aR.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aW+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aX(q,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){u(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function u(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{u(bw+"["+(typeof bz==="object"?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&b.type(by)==="object"){for(var e in by){u(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bk(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function F(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!ba){ba=av.createElement("iframe");ba.frameBorder=ba.width=ba.height=0}e.appendChild(ba);if(!m||!ba.createElement){m=(ba.contentWindow||ba.contentDocument).document;m.write((b.support.boxModel?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(ba)}Q[bx]=bw}return Q[bx]}var a8,V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){a8=function(by,bH,bw,bB){try{bB=by.getBoundingClientRect()}catch(bF){}if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aL(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{a8=function(bz,bE,bx){var bC,bw=bz.offsetParent,bv=bz,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.fn.offset=function(e){if(arguments.length){return e===L?this:this.each(function(bx){b.offset.setOffset(this,e,bx)})}var bv=this[0],bw=bv&&bv.ownerDocument;if(!bw){return null}if(bv===bw.body){return b.offset.bodyOffset(bv)}return a8(bv,bw,bw.documentElement)};b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(bw,bv){var e=/Y/.test(bv);b.fn[bw]=function(bx){return b.access(this,function(by,bB,bA){var bz=aL(by);if(bA===L){return bz?(bv in bz)?bz[bv]:b.support.boxModel&&bz.document.documentElement[bB]||bz.document.body[bB]:by[bB]}if(bz){bz.scrollTo(!e?bA:b(bz).scrollLeft(),e?bA:b(bz).scrollTop())}else{by[bB]=bA}},bw,bx,arguments.length,null)}});function aL(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each({Height:"height",Width:"width"},function(bw,bx){var bv="client"+bw,e="scroll"+bw,by="offset"+bw;b.fn["inner"+bw]=function(){var bz=this[0];return bz?bz.style?parseFloat(b.css(bz,bx,"padding")):this[bx]():null};b.fn["outer"+bw]=function(bA){var bz=this[0];return bz?bz.style?parseFloat(b.css(bz,bx,bA?"margin":"border")):this[bx]():null};b.fn[bx]=function(bz){return b.access(this,function(bC,bB,bD){var bF,bE,bG,bA;if(b.isWindow(bC)){bF=bC.document;bE=bF.documentElement[bv];return b.support.boxModel&&bE||bF.body&&bF.body[bv]||bE}if(bC.nodeType===9){bF=bC.documentElement;if(bF[bv]>=bF[e]){return bF[bv]}return Math.max(bC.body[e],bF[e],bC.body[by],bF[by])}if(bD===L){bG=b.css(bC,bB);bA=parseFloat(bG);return b.isNumeric(bA)?bA:bG}b(bC).css(bB,bD)},bx,bz,arguments.length,null)}});bd.jQuery=bd.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! - * jQuery UI 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! - * jQuery UI Widget 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Widget - */ -(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! - * jQuery UI Mouse 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Mouse - * - * Depends: - * jquery.ui.widget.js - */ -(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
          ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
          ');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! - * jQuery hashchange event - v1.3 - 7/21/2010 - * http://benalman.com/projects/jquery-hashchange-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ -(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' - - -
          - -
          -
          js_jsoneditor.h File Reference
          -
          -
          -
          #include <pgmspace.h>
          -
          -Include dependency graph for js_jsoneditor.h:
          -
          -
          - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - -
          -
          -

          Go to the source code of this file.

          -
          - - - -

          -Variables

          const char PAGE_js_jsoneditor [] PROGMEM
           
          -

          Variable Documentation

          - -

          ◆ PROGMEM

          - -
          -
          - - - - -
          const char PAGE_js_jsoneditor [] PROGMEM
          -
          -Initial value:
          = R"=====(
          !function(a,b){"use strict";var c=b(a);"object"==typeof module&&null!=module&&module.exports?module.exports=c:"function"==typeof define&&define.amd?define(function(){return c}):a.JSONEditor=c}("undefined"!=typeof window?window:this,function(a,b){var c;!function(){var a=!1,b=/xyz/.test(function(){window.postMessage("xyz")})?/\b_super\b/:/.*/;return c=function(){},c.extend=function d(c){function e(){!a&&this.init&&this.init.apply(this,arguments)}var f=this.prototype;a=!0;var g=new this;a=!1;for(var h in c)g[h]="function"==typeof c[h]&&"function"==typeof f[h]&&b.test(c[h])?function(a,b){return function(){var c=this._super;this._super=f[a];var d=b.apply(this,arguments);return this._super=c,d}}(h,c[h]):c[h];return e.prototype=g,e.prototype.constructor=e,e.extend=d,e},c}(),function(){function a(a,c){c=c||{bubbles:!1,cancelable:!1,detail:b};var d=document.createEvent("CustomEvent");return d.initCustomEvent(a,c.bubbles,c.cancelable,c.detail),d}a.prototype=window.Event.prototype,window.CustomEvent=a}(),function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!window.requestAnimationFrame;++c)window.requestAnimationFrame=window[b[c]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[b[c]+"CancelAnimationFrame"]||window[b[c]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(b,c){var d=(new Date).getTime(),e=Math.max(0,16-(d-a)),f=window.setTimeout(function(){b(d+e)},e);return a=d+e,f}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(a){clearTimeout(a)})}(),function(){Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)})}();var d=function(a){return!("object"!=typeof a||a.nodeType||null!==a&&a===a.window)&&!(a.constructor&&!Object.prototype.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))},e=function(a){var b,c,f;for(c=1;c<arguments.length;c++){b=arguments[c];for(f in b)b.hasOwnProperty(f)&&(b[f]&&d(b[f])?(a.hasOwnProperty(f)||(a[f]={}),e(a[f],b[f])):a[f]=b[f])}return a},f=function(a,b){if(a&&"object"==typeof a){var c;if(Array.isArray(a)||"number"==typeof a.length&&a.length>0&&a.length-1 in a){for(c=0;c<a.length;c++)if(b(c,a[c])===!1)return}else if(Object.keys){var d=Object.keys(a);for(c=0;c<d.length;c++)if(b(d[c],a[d[c]])===!1)return}else for(c in a)if(a.hasOwnProperty(c)&&b(c,a[c])===!1)return}},g=function(a,b){var c=document.createEvent("HTMLEvents");c.initEvent(b,!0,!0),a.dispatchEvent(c)},h=function(a,b){if(!(a instanceof Element))throw new Error("element should be an instance of Element");b=e({},h.defaults.options,b||{}),this.element=a,this.options=b,this.init()};h.prototype={constructor:h,init:function(){var a=this;this.ready=!1,this.copyClipboard=null,this.refs_with_info={},this.refs_prefix="#/counter/",this.refs_counter=1;var b=h.defaults.themes[this.options.theme||h.defaults.theme];if(!b)throw"Unknown theme "+(this.options.theme||h.defaults.theme);this.schema=this.options.schema,this.theme=new b,this.template=this.options.template,this.refs=this.options.refs||{},this.uuid=0,this.__data={};var c=h.defaults.iconlibs[this.options.iconlib||h.defaults.iconlib];c&&(this.iconlib=new c),this.root_container=this.theme.getContainer(),this.element.appendChild(this.root_container),this.translate=this.options.translate||h.defaults.translate;var d=document.location.toString(),e=this._getFileBase();this._loadExternalRefs(this.schema,function(){a._getDefinitions(a.schema,d+"#/definitions/");var b={};a.options.custom_validators&&(b.custom_validators=a.options.custom_validators),a.validator=new h.Validator(a,null,b);var c=a.expandRefs(a.schema),e=a.getEditorClass(c);a.root=a.createEditor(e,{jsoneditor:a,schema:c,required:!0,container:a.root_container}),a.root.preBuild(),a.root.build(),a.root.postBuild(),a.options.hasOwnProperty("startval")&&a.root.setValue(a.options.startval),a.validation_results=a.validator.validate(a.root.getValue()),a.root.showValidationErrors(a.validation_results),a.ready=!0,window.requestAnimationFrame(function(){a.ready&&(a.validation_results=a.validator.validate(a.root.getValue()),a.root.showValidationErrors(a.validation_results),a.trigger("ready"),a.trigger("change"))})},d,e)},getValue:function(){if(!this.ready)throw"JSON Editor not ready yet. Listen for 'ready' event before getting the value";return this.root.getValue()},setValue:function(a){if(!this.ready)throw"JSON Editor not ready yet. Listen for 'ready' event before setting the value";return this.root.setValue(a),this},validate:function(a){if(!this.ready)throw"JSON Editor not ready yet. Listen for 'ready' event before validating";return 1===arguments.length?this.validator.validate(a):this.validation_results},destroy:function(){this.destroyed||this.ready&&(this.schema=null,this.options=null,this.root.destroy(),this.root=null,this.root_container=null,this.validator=null,this.validation_results=null,this.theme=null,this.iconlib=null,this.template=null,this.__data=null,this.ready=!1,this.element.innerHTML="",this.destroyed=!0)},on:function(a,b){return this.callbacks=this.callbacks||{},this.callbacks[a]=this.callbacks[a]||[],this.callbacks[a].push(b),this},off:function(a,b){if(a&&b){this.callbacks=this.callbacks||{},this.callbacks[a]=this.callbacks[a]||[];for(var c=[],d=0;d<this.callbacks[a].length;d++)this.callbacks[a][d]!==b&&c.push(this.callbacks[a][d]);this.callbacks[a]=c}else a?(this.callbacks=this.callbacks||{},this.callbacks[a]=[]):this.callbacks={};return this},trigger:function(a){if(this.callbacks&&this.callbacks[a]&&this.callbacks[a].length)for(var b=0;b<this.callbacks[a].length;b++)this.callbacks[a][b].apply(this,[]);return this},setOption:function(a,b){if("show_errors"!==a)throw"Option "+a+" must be set during instantiation and cannot be changed later";return this.options.show_errors=b,this.onChange(),this},getEditorClass:function(a){var b;if(a=this.expandSchema(a),f(h.defaults.resolvers,function(c,d){var e=d(a);if(e&&h.defaults.editors[e])return b=e,!1}),!b)throw"Unknown editor for schema "+JSON.stringify(a);if(!h.defaults.editors[b])throw"Unknown editor "+b;return h.defaults.editors[b]},createEditor:function(a,b){return b=e({},a.options||{},b),new a(b)},onChange:function(){if(this.ready&&!this.firing_change){this.firing_change=!0;var a=this;return window.requestAnimationFrame(function(){a.firing_change=!1,a.ready&&(a.validation_results=a.validator.validate(a.root.getValue()),"never"!==a.options.show_errors?a.root.showValidationErrors(a.validation_results):a.root.showValidationErrors([]),a.trigger("change"))}),this}},compileTemplate:function(a,b){b=b||h.defaults.template;var c;if("string"==typeof b){if(!h.defaults.templates[b])throw"Unknown template engine "+b;if(c=h.defaults.templates[b](),!c)throw"Template engine "+b+" missing required library."}else c=b;if(!c)throw"No template engine set";if(!c.compile)throw"Invalid template engine set";return c.compile(a)},_data:function(a,b,c){if(3!==arguments.length)return a.hasAttribute("data-jsoneditor-"+b)?this.__data[a.getAttribute("data-jsoneditor-"+b)]:null;var d;a.hasAttribute("data-jsoneditor-"+b)?d=a.getAttribute("data-jsoneditor-"+b):(d=this.uuid++,a.setAttribute("data-jsoneditor-"+b,d)),this.__data[d]=c},registerEditor:function(a){return this.editors=this.editors||{},this.editors[a.path]=a,this},unregisterEditor:function(a){return this.editors=this.editors||{},this.editors[a.path]=null,this},getEditor:function(a){if(this.editors)return this.editors[a]},watch:function(a,b){return this.watchlist=this.watchlist||{},this.watchlist[a]=this.watchlist[a]||[],this.watchlist[a].push(b),this},unwatch:function(a,b){if(!this.watchlist||!this.watchlist[a])return this;if(!b)return this.watchlist[a]=null,this;for(var c=[],d=0;d<this.watchlist[a].length;d++)this.watchlist[a][d]!==b&&c.push(this.watchlist[a][d]);return this.watchlist[a]=c.length?c:null,this},notifyWatchers:function(a){if(!this.watchlist||!this.watchlist[a])return this;for(var b=0;b<this.watchlist[a].length;b++)this.watchlist[a][b]()},isEnabled:function(){return!this.root||this.root.isEnabled()},enable:function(){this.root.enable()},disable:function(){this.root.disable()},_getDefinitions:function(a,b){if(a.definitions)for(var c in a.definitions)a.definitions.hasOwnProperty(c)&&(this.refs[b+c]=a.definitions[c],a.definitions[c].definitions&&this._getDefinitions(a.definitions[c],b+c+"/definitions/"))},_getExternalRefs:function(a,b){var c={},d=function(a){for(var b in a)a.hasOwnProperty(b)&&(c[b]=!0)};if(a.$ref&&"object"!=typeof a.$ref){var e=this.refs_prefix+this.refs_counter++;"#"===a.$ref.substr(0,1)||this.refs[a.$ref]||(c[a.$ref]=!0),this.refs_with_info[e]={fetchUrl:b,$ref:a.$ref},a.$ref=e}for(var f in a)if(a.hasOwnProperty(f)&&a[f]&&"object"==typeof a[f])if(Array.isArray(a[f]))for(var g=0;g<a[f].length;g++)a[f][g]&&"object"==typeof a[f][g]&&d(this._getExternalRefs(a[f][g],b));else d(this._getExternalRefs(a[f],b));return c},_getFileBase:function(){var a=this.options.ajaxBase;return"undefined"==typeof a&&(a=this._getFileBaseFromFileLocation(document.location.toString())),a},_getFileBaseFromFileLocation:function(a){var b=a.split("/");return b.pop(),b.join("/")+"/"},_loadExternalRefs:function(a,b,c,d){var e=this,g=this._getExternalRefs(a,c),h=0,i=0,j=!1;f(g,function(a){if(!e.refs[a]){if(!e.options.ajax)throw"Must set ajax option to true to load external ref "+a;e.refs[a]="loading",i++;var c=a;d!=a.substr(0,d.length)&&"http"!=a.substr(0,4)&&"/"!=a.substr(0,1)&&(c=d+a);var f=new XMLHttpRequest;f.overrideMimeType("application/json"),f.open("GET",c,!0),e.options.ajaxCredentials&&(f.withCredentials=e.options.ajaxCredentials),f.onreadystatechange=function(){if(4==f.readyState){if(200!==f.status)throw window.console.log(f),"Failed to fetch ref via ajax- "+a;var d;try{d=JSON.parse(f.responseText)}catch(g){throw window.console.log(g),"Failed to parse external ref "+c}if("boolean"!=typeof d&&"object"!=typeof d||null===d||Array.isArray(d))throw"External ref does not contain a valid schema - "+c;e.refs[a]=d;var k=e._getFileBaseFromFileLocation(c);e._getDefinitions(d,c+"#/definitions/"),e._loadExternalRefs(d,function(){h++,h>=i&&!j&&(j=!0,b())},c,k)}},f.send()}}),i||b()},expandRefs:function(a){for(a=e({},a);a.$ref;){var b=this.refs_with_info[a.$ref];delete a.$ref;var c="";b.$ref.startsWith("#")&&(c=b.fetchUrl);var d=c+b.$ref;this.refs[d]||(d=c+decodeURIComponent(b.$ref)),a=this.extendSchemas(a,e({},this.refs[d]))}return a},expandSchema:function(a,b){var c,d=this,g=e({},a);if("object"==typeof a.type&&(Array.isArray(a.type)?f(a.type,function(b,c){"object"==typeof c&&(a.type[b]=d.expandSchema(c))}):a.type=d.expandSchema(a.type)),"object"==typeof a.disallow&&(Array.isArray(a.disallow)?f(a.disallow,function(b,c){"object"==typeof c&&(a.disallow[b]=d.expandSchema(c))}):a.disallow=d.expandSchema(a.disallow)),a.anyOf&&f(a.anyOf,function(b,c){a.anyOf[b]=d.expandSchema(c)}),a.dependencies&&f(a.dependencies,function(b,c){"object"!=typeof c||Array.isArray(c)||(a.dependencies[b]=d.expandSchema(c))}),a.not&&(a.not=this.expandSchema(a.not)),a.allOf){for(c=0;c<a.allOf.length;c++)g=this.extendSchemas(g,this.expandSchema(a.allOf[c]));delete g.allOf}if(a["extends"]){if(Array.isArray(a["extends"]))for(c=0;c<a["extends"].length;c++)g=this.extendSchemas(g,this.expandSchema(a["extends"][c]));else g=this.extendSchemas(g,this.expandSchema(a["extends"]));delete g["extends"]}if(a.oneOf){var h=e({},g);for(delete h.oneOf,c=0;c<a.oneOf.length;c++)g.oneOf[c]=this.extendSchemas(this.expandSchema(a.oneOf[c]),h)}return this.expandRefs(g)},extendSchemas:function(a,b){a=e({},a),b=e({},b);var c=this,d={};return f(a,function(a,e){"undefined"!=typeof b[a]?"required"!==a&&"defaultProperties"!==a||"object"!=typeof e||!Array.isArray(e)?"type"!==a||"string"!=typeof e&&!Array.isArray(e)?"object"==typeof e&&Array.isArray(e)?d[a]=e.filter(function(c){return b[a].indexOf(c)!==-1}):"object"==typeof e&&null!==e?d[a]=c.extendSchemas(e,b[a]):d[a]=e:("string"==typeof e&&(e=[e]),"string"==typeof b.type&&(b.type=[b.type]),b.type&&b.type.length?d.type=e.filter(function(a){return b.type.indexOf(a)!==-1}):d.type=e,1===d.type.length&&"string"==typeof d.type[0]?d.type=d.type[0]:0===d.type.length&&delete d.type):d[a]=e.concat(b[a]).reduce(function(a,b){return a.indexOf(b)<0&&a.push(b),a},[]):d[a]=e}),f(b,function(b,c){"undefined"==typeof a[b]&&(d[b]=c)}),d},setCopyClipboardContents:function(a){this.copyClipboard=a},getCopyClipboardContents:function(){return this.copyClipboard}},h.defaults={themes:{},templates:{},iconlibs:{},editors:{},languages:{},resolvers:[],custom_validators:[]},h.Validator=c.extend({init:function(a,b,c){this.jsoneditor=a,this.schema=b||this.jsoneditor.schema,this.options=c||{},this.translate=this.jsoneditor.translate||h.defaults.translate},validate:function(a){return this._validateSchema(this.schema,a)},_validateSchema:function(a,c,d){var g,i,j,k=this,l=[],m=JSON.stringify(c);if(d=d||"root",a=e({},this.jsoneditor.expandRefs(a)),"undefined"==typeof c)return("undefined"!=typeof a.required&&a.required===!0||"undefined"==typeof a.required&&this.jsoneditor.options.required_by_default===!0)&&l.push({path:d,property:"required",message:this.translate("error_notset")}),l;if(a["enum"]){for(g=!1,i=0;i<a["enum"].length;i++)m===JSON.stringify(a["enum"][i])&&(g=!0);g||l.push({path:d,property:"enum",message:this.translate("error_enum")})}if(a["extends"])for(i=0;i<a["extends"].length;i++)l=l.concat(this._validateSchema(a["extends"][i],c,d));if(a.allOf)for(i=0;i<a.allOf.length;i++)l=l.concat(this._validateSchema(a.allOf[i],c,d));if(a.anyOf){for(g=!1,i=0;i<a.anyOf.length;i++)if(!this._validateSchema(a.anyOf[i],c,d).length){g=!0;break}g||l.push({path:d,property:"anyOf",message:this.translate("error_anyOf")})}if(a.oneOf){g=0;var n=[];for(i=0;i<a.oneOf.length;i++){var o=this._validateSchema(a.oneOf[i],c,d);for(o.length||g++,j=0;j<o.length;j++)o[j].path=d+".oneOf["+i+"]"+o[j].path.substr(d.length);n=n.concat(o)}1!==g&&(l.push({path:d,property:"oneOf",message:this.translate("error_oneOf",[g])}),l=l.concat(n))}if(a.not&&(this._validateSchema(a.not,c,d).length||l.push({path:d,property:"not",message:this.translate("error_not")})),a.type)if(Array.isArray(a.type)){for(g=!1,i=0;i<a.type.length;i++)if(this._checkType(a.type[i],c)){g=!0;break}g||l.push({path:d,property:"type",message:this.translate("error_type_union")})}else["date","time","datetime-local"].indexOf(a.format)!=-1&&"integer"==a.type?this._checkType("string",""+c)||l.push({path:d,property:"type",message:this.translate("error_type",[a.format])}):this._checkType(a.type,c)||l.push({path:d,property:"type",message:this.translate("error_type",[a.type])});if(a.disallow)if(Array.isArray(a.disallow)){for(g=!0,i=0;i<a.disallow.length;i++)if(this._checkType(a.disallow[i],c)){g=!1;break}g||l.push({path:d,property:"disallow",message:this.translate("error_disallow_union")})}else this._checkType(a.disallow,c)&&l.push({path:d,property:"disallow",message:this.translate("error_disallow",[a.disallow])});if("number"==typeof c){if(a.multipleOf||a.divisibleBy){var p=a.multipleOf||a.divisibleBy;g=c/p===Math.floor(c/p),window.math?g=window.math.mod(window.math.bignumber(c),window.math.bignumber(p)).equals(0):window.Decimal&&(g=new window.Decimal(c).mod(new window.Decimal(p)).equals(0)),g||l.push({path:d,property:a.multipleOf?"multipleOf":"divisibleBy",message:this.translate("error_multipleOf",[p])})}a.hasOwnProperty("maximum")&&(g=a.exclusiveMaximum?c<a.maximum:c<=a.maximum,window.math?g=window.math[a.exclusiveMaximum?"smaller":"smallerEq"](window.math.bignumber(c),window.math.bignumber(a.maximum)):window.Decimal&&(g=new window.Decimal(c)[a.exclusiveMaximum?"lt":"lte"](new window.Decimal(a.maximum))),g||l.push({path:d,property:"maximum",message:this.translate(a.exclusiveMaximum?"error_maximum_excl":"error_maximum_incl",[a.maximum])})),a.hasOwnProperty("minimum")&&(g=a.exclusiveMinimum?c>a.minimum:c>=a.minimum,window.math?g=window.math[a.exclusiveMinimum?"larger":"largerEq"](window.math.bignumber(c),window.math.bignumber(a.minimum)):window.Decimal&&(g=new window.Decimal(c)[a.exclusiveMinimum?"gt":"gte"](new window.Decimal(a.minimum))),g||l.push({path:d,property:"minimum",message:this.translate(a.exclusiveMinimum?"error_minimum_excl":"error_minimum_incl",[a.minimum])}))}else if("string"==typeof c)a.maxLength&&(c+"").length>a.maxLength&&l.push({path:d,property:"maxLength",message:this.translate("error_maxLength",[a.maxLength])}),a.minLength&&(c+"").length<a.minLength&&l.push({path:d,property:"minLength",message:this.translate(1===a.minLength?"error_notempty":"error_minLength",[a.minLength])}),a.pattern&&(new RegExp(a.pattern).test(c)||l.push({path:d,property:"pattern",message:this.translate("error_pattern",[a.pattern])}));else if("object"==typeof c&&null!==c&&Array.isArray(c)){if(a.items)if(Array.isArray(a.items))for(i=0;i<c.length;i++)if(a.items[i])l=l.concat(this._validateSchema(a.items[i],c[i],d+"."+i));else{if(a.additionalItems===!0)break;if(!a.additionalItems){if(a.additionalItems===!1){l.push({path:d,property:"additionalItems",message:this.translate("error_additionalItems")});break}break}l=l.concat(this._validateSchema(a.additionalItems,c[i],d+"."+i))}else for(i=0;i<c.length;i++)l=l.concat(this._validateSchema(a.items,c[i],d+"."+i));if(a.maxItems&&c.length>a.maxItems&&l.push({path:d,property:"maxItems",message:this.translate("error_maxItems",[a.maxItems])}),a.minItems&&c.length<a.minItems&&l.push({path:d,property:"minItems",message:this.translate("error_minItems",[a.minItems])}),a.uniqueItems){var q={};for(i=0;i<c.length;i++){if(g=JSON.stringify(c[i]),q[g]){l.push({path:d,property:"uniqueItems",message:this.translate("error_uniqueItems")});break}q[g]=!0}}}else if("object"==typeof c&&null!==c){if(a.maxProperties){g=0;for(i in c)c.hasOwnProperty(i)&&g++;g>a.maxProperties&&l.push({path:d,property:"maxProperties",message:this.translate("error_maxProperties",[a.maxProperties])})}if(a.minProperties){g=0;for(i in c)c.hasOwnProperty(i)&&g++;g<a.minProperties&&l.push({path:d,property:"minProperties",message:this.translate("error_minProperties",[a.minProperties])})}if("undefined"!=typeof a.required&&Array.isArray(a.required))for(i=0;i<a.required.length;i++)"undefined"==typeof c[a.required[i]]&&l.push({path:d,property:"required",message:this.translate("error_required",[a.required[i]])});var r={};for(i in a.properties)a.properties.hasOwnProperty(i)&&(r[i]=!0,l=l.concat(this._validateSchema(a.properties[i],c[i],d+"."+i)));if(a.patternProperties)for(i in a.patternProperties)if(a.patternProperties.hasOwnProperty(i)){var s=new RegExp(i);for(j in c)c.hasOwnProperty(j)&&s.test(j)&&(r[j]=!0,l=l.concat(this._validateSchema(a.patternProperties[i],c[j],d+"."+j)))}if("undefined"!=typeof a.additionalProperties||!this.jsoneditor.options.no_additional_properties||a.oneOf||a.anyOf||(a.additionalProperties=!1),"undefined"!=typeof a.additionalProperties)for(i in c)if(c.hasOwnProperty(i)&&!r[i]){if(!a.additionalProperties){l.push({path:d,property:"additionalProperties",message:this.translate("error_additional_properties",[i])});break}if(a.additionalProperties===!0)break;l=l.concat(this._validateSchema(a.additionalProperties,c[i],d+"."+i))}if(a.dependencies)for(i in a.dependencies)if(a.dependencies.hasOwnProperty(i)&&"undefined"!=typeof c[i])if(Array.isArray(a.dependencies[i]))for(j=0;j<a.dependencies[i].length;j++)"undefined"==typeof c[a.dependencies[i][j]]&&l.push({path:d,property:"dependencies",message:this.translate("error_dependency",[a.dependencies[i][j]])});else l=l.concat(this._validateSchema(a.dependencies[i],c,d))}if(["date","time","datetime-local"].indexOf(a.format)!=-1){var t={date:/^(\d{4}\D\d{2}\D\d{2})?$/,time:/^(\d{2}:\d{2}(?::\d{2})?)?$/,"datetime-local":/^(\d{4}\D\d{2}\D\d{2} \d{2}:\d{2}(?::\d{2})?)?$/},u={date:'"YYYY-MM-DD"',time:'"HH:MM"',"datetime-local":'"YYYY-MM-DD HH:MM"'},v=this.jsoneditor.getEditor(d),w=v.flatpickr?v.flatpickr.config.dateFormat:u[v.format];if("integer"==a.type)1*c<1?l.push({path:d,property:"format",message:this.translate("error_invalid_epoch")}):c!=Math.abs(parseInt(c))&&l.push({path:d,property:"format",message:this.translate("error_"+v.format.replace(/-/g,"_"),[w])});else if(v.flatpickr){if(""!==c){var x;if("single"!=v.flatpickr.config.mode){var y="range"==v.flatpickr.config.mode?v.flatpickr.l10n.rangeSeparator:", ",z=v.flatpickr.selectedDates.map(function(a){return v.flatpickr.formatDate(a,v.flatpickr.config.dateFormat)});x=z.join(y)}try{if(x){if(x!=c)throw v.flatpickr.config.mode+" mismatch"}else if(v.flatpickr.formatDate(v.flatpickr.parseDate(c,v.flatpickr.config.dateFormat),v.flatpickr.config.dateFormat)!=c)throw"mismatch"}catch(A){var B=v.flatpickr.config.errorDateFormat!==b?v.flatpickr.config.errorDateFormat:v.flatpickr.config.dateFormat;l.push({path:d,property:"format",message:this.translate("error_"+v.format.replace(/-/g,"_"),[B])})}}}else t[v.format].test(c)||l.push({path:d,property:"format",message:this.translate("error_"+v.format.replace(/-/g,"_"),[u[v.format]])})}return f(h.defaults.custom_validators,function(b,e){l=l.concat(e.call(k,a,c,d))}),this.options.custom_validators&&f(this.options.custom_validators,function(b,e){l=l.concat(e.call(k,a,c,d))}),l},_checkType:function(a,b){return"string"==typeof a?"string"===a?"string"==typeof b:"number"===a?"number"==typeof b:"integer"===a?"number"==typeof b&&b===Math.floor(b):"boolean"===a?"boolean"==typeof b:"array"===a?Array.isArray(b):"object"===a?null!==b&&!Array.isArray(b)&&"object"==typeof b:"null"!==a||null===b:!this._validateSchema(a,b).length}}),h.AbstractEditor=c.extend({onChildEditorChange:function(a){this.onChange(!0)},notify:function(){this.path&&this.jsoneditor.notifyWatchers(this.path)},change:function(){this.parent?this.parent.onChildEditorChange(this):this.jsoneditor&&this.jsoneditor.onChange()},onChange:function(a){this.notify(),this.watch_listener&&this.watch_listener(),a&&this.change()},register:function(){this.jsoneditor.registerEditor(this),this.onChange()},unregister:function(){this.jsoneditor&&this.jsoneditor.unregisterEditor(this)},getNumColumns:function(){return 12},init:function(a){this.jsoneditor=a.jsoneditor,this.theme=this.jsoneditor.theme,this.template_engine=this.jsoneditor.template,this.iconlib=this.jsoneditor.iconlib,this.translate=this.jsoneditor.translate||h.defaults.translate,this.original_schema=a.schema,this.schema=this.jsoneditor.expandSchema(this.original_schema),this.options=e({},this.options||{},this.schema.options||{},a.schema.options||{},a),a.path||this.schema.id||(this.schema.id="root"),this.path=a.path||"root",this.formname=a.formname||this.path.replace(/\.([^.]+)/g,"[$1]"),this.jsoneditor.options.form_name_root&&(this.formname=this.formname.replace(/^root\[/,this.jsoneditor.options.form_name_root+"[")),this.key=this.path.split(".").pop(),this.parent=a.parent,this.link_watchers=[],a.container&&this.setContainer(a.container),this.registerDependencies()},registerDependencies:function(){this.dependenciesFulfilled=!0;var a=this.options.dependencies;if(a){var b=this;Object.keys(a).forEach(function(c){var d=b.path.split(".");d[d.length-1]=c,d=d.join(".");var e=a[c];b.jsoneditor.watch(d,function(){b.checkDependency(d,e)})})}},checkDependency:function(a,c){var d=this.control||this.container;if(this.path!==a&&d){var e=this,f=this.jsoneditor.getEditor(a),g=f?f.getValue():b,h=this.dependenciesFulfilled;this.dependenciesFulfilled=!1,f&&f.dependenciesFulfilled?Array.isArray(c)?c.some(function(a){if(g===a)return e.dependenciesFulfilled=!0,!0}):"object"==typeof c?"object"!=typeof g?this.dependenciesFulfilled=c===g:Object.keys(c).some(function(a){return!!c.hasOwnProperty(a)&&(g.hasOwnProperty(a)&&c[a]===g[a]?void(e.dependenciesFulfilled=!0):(e.dependenciesFulfilled=!1,!0))}):"string"==typeof c||"number"==typeof c?this.dependenciesFulfilled=g===c:"boolean"==typeof c&&(c?this.dependenciesFulfilled=g&&g.length>0:this.dependenciesFulfilled=!g||0===g.length):this.dependenciesFulfilled=!1,this.dependenciesFulfilled!==h&&this.notify(),this.dependenciesFulfilled?d.style.display="block":d.style.display="none"}},setContainer:function(a){this.container=a,this.schema.id&&this.container.setAttribute("data-schemaid",this.schema.id),this.schema.type&&"string"==typeof this.schema.type&&this.container.setAttribute("data-schematype",this.schema.type),this.container.setAttribute("data-schemapath",this.path)},preBuild:function(){},build:function(){},postBuild:function(){this.setupWatchListeners(),this.addLinks(),this.setValue(this.getDefault(),!0),this.updateHeaderText(),this.register(),this.onWatchedFieldChange()},setupWatchListeners:function(){var a=this;if(this.watched={},this.schema.vars&&(this.schema.watch=this.schema.vars),this.watched_values={},this.watch_listener=function(){a.refreshWatchedFieldValues()&&a.onWatchedFieldChange()},this.schema.hasOwnProperty("watch")){var b,c,d,e,f;for(var g in this.schema.watch)if(this.schema.watch.hasOwnProperty(g)){if(b=this.schema.watch[g],Array.isArray(b)){if(b.length<2)continue;c=[b[0]].concat(b[1].split("."))}else c=b.split("."),a.theme.closest(a.container,'[data-schemaid="'+c[0]+'"]')||c.unshift("#");if(d=c.shift(),"#"===d&&(d=a.jsoneditor.schema.id||"root"),e=a.theme.closest(a.container,'[data-schemaid="'+d+'"]'),!e)throw"Could not find ancestor node with id "+d;f=e.getAttribute("data-schemapath")+"."+c.join("."),a.jsoneditor.watch(f,a.watch_listener),a.watched[g]=f}}this.schema.headerTemplate&&(this.header_template=this.jsoneditor.compileTemplate(this.schema.headerTemplate,this.template_engine))},addLinks:function(){if(!this.no_link_holder&&(this.link_holder=this.theme.getLinksHolder(),this.container.appendChild(this.link_holder),this.schema.links))for(var a=0;a<this.schema.links.length;a++)this.addLink(this.getLink(this.schema.links[a]))},onMove:function(){},getButton:function(a,b,c){var d="json-editor-btn-"+b;b=this.iconlib?this.iconlib.getIcon(b):null,!b&&c&&(a=c,c=null);var e=this.theme.getButton(a,b,c);return e.classList.add(d),e},setButtonText:function(a,b,c,d){return c=this.iconlib?this.iconlib.getIcon(c):null,!c&&d&&(b=d,d=null),this.theme.setButtonText(a,b,c,d)},addLink:function(a){this.link_holder&&this.link_holder.appendChild(a)},getLink:function(a){var b,c,d=a.mediaType||"application/javascript",e=d.split("/")[0],f=this.jsoneditor.compileTemplate(a.href,this.template_engine),g=this.jsoneditor.compileTemplate(a.rel?a.rel:a.href,this.template_engine),h=null;if(a.download&&(h=a.download),h&&h!==!0&&(h=this.jsoneditor.compileTemplate(h,this.template_engine)),"image"===e){b=this.theme.getBlockLinkHolder(),c=document.createElement("a"),c.setAttribute("target","_blank");var i=document.createElement("img");this.theme.createImageLink(b,c,i),this.link_watchers.push(function(a){var b=f(a),d=g(a);c.setAttribute("href",b),c.setAttribute("title",d||b),i.setAttribute("src",b)})}else if(["audio","video"].indexOf(e)>=0){b=this.theme.getBlockLinkHolder(),c=this.theme.getBlockLink(),c.setAttribute("target","_blank");var j=document.createElement(e);j.setAttribute("controls","controls"),this.theme.createMediaLink(b,c,j),this.link_watchers.push(function(a){var b=f(a),d=g(a);c.setAttribute("href",b),c.textContent=d||b,j.setAttribute("src",b)})}else c=b=this.theme.getBlockLink(),b.setAttribute("target","_blank"),b.textContent=a.rel,this.link_watchers.push(function(a){var c=f(a),d=g(a);b.setAttribute("href",c),b.textContent=d||c});return h&&c&&(h===!0?c.setAttribute("download",""):this.link_watchers.push(function(a){c.setAttribute("download",h(a))})),a["class"]&&c.classList.add(a["class"]),b},refreshWatchedFieldValues:function(){if(this.watched_values){var a={},b=!1,c=this;if(this.watched){var d,e;for(var f in this.watched)this.watched.hasOwnProperty(f)&&(e=c.jsoneditor.getEditor(this.watched[f]),d=e?e.getValue():null,c.watched_values[f]!==d&&(b=!0),a[f]=d)}return a.self=this.getValue(),this.watched_values.self!==a.self&&(b=!0),this.watched_values=a,b}},getWatchedFieldValues:function(){return this.watched_values},updateHeaderText:function(){if(this.header)if(this.header.children.length){for(var a=0;a<this.header.childNodes.length;a++)if(3===this.header.childNodes[a].nodeType){this.header.childNodes[a].nodeValue=this.getHeaderText();break}}else this.header.textContent=this.getHeaderText()},getHeaderText:function(a){return this.header_text?this.header_text:a?this.schema.title:this.getTitle()},onWatchedFieldChange:function(){var a;if(this.header_template){a=e(this.getWatchedFieldValues(),{key:this.key,i:this.key,i0:1*this.key,i1:1*this.key+1,title:this.getTitle()});var b=this.header_template(a);b!==this.header_text&&(this.header_text=b,this.updateHeaderText(),this.notify())}if(this.link_watchers.length){a=this.getWatchedFieldValues();for(var c=0;c<this.link_watchers.length;c++)this.link_watchers[c](a)}},setValue:function(a){this.value=a},getValue:function(){return this.dependenciesFulfilled?this.value:b},refreshValue:function(){},getChildEditors:function(){return!1},destroy:function(){var a=this;this.unregister(this),f(this.watched,function(b,c){a.jsoneditor.unwatch(c,a.watch_listener)}),this.watched=null,this.watched_values=null,this.watch_listener=null,this.header_text=null,this.header_template=null,this.value=null,this.container&&this.container.parentNode&&this.container.parentNode.removeChild(this.container),this.container=null,this.jsoneditor=null,this.schema=null,this.path=null,this.key=null,this.parent=null},getDefault:function(){if("undefined"!=typeof this.schema["default"])return this.schema["default"];if("undefined"!=typeof this.schema["enum"])return this.schema["enum"][0];var a=this.schema.type||this.schema.oneOf;if(a&&Array.isArray(a)&&(a=a[0]),a&&"object"==typeof a&&(a=a.type),a&&Array.isArray(a)&&(a=a[0]),"string"==typeof a){if("number"===a)return 0;if("boolean"===a)return!1;if("integer"===a)return 0;if("string"===a)return"";if("object"===a)return{};if("array"===a)return[]}return null},getTitle:function(){return this.schema.title||this.key},enable:function(){this.disabled=!1},disable:function(){this.disabled=!0},isEnabled:function(){return!this.disabled},isRequired:function(){return"boolean"==typeof this.schema.required?this.schema.required:this.parent&&this.parent.schema&&Array.isArray(this.parent.schema.required)?this.parent.schema.required.indexOf(this.key)>-1:!!this.jsoneditor.options.required_by_default},getDisplayText:function(a){var b=[],c={};f(a,function(a,b){b.title&&(c[b.title]=c[b.title]||0,c[b.title]++),b.description&&(c[b.description]=c[b.description]||0,c[b.description]++),b.format&&(c[b.format]=c[b.format]||0,c[b.format]++),b.type&&(c[b.type]=c[b.type]||0,c[b.type]++)}),f(a,function(a,d){var e;e="string"==typeof d?d:d.title&&c[d.title]<=1?d.title:d.format&&c[d.format]<=1?d.format:d.type&&c[d.type]<=1?d.type:d.description&&c[d.description]<=1?d.descripton:d.title?d.title:d.format?d.format:d.type?d.type:d.description?d.description:JSON.stringify(d).length<500?JSON.stringify(d):"type",b.push(e)});var d={};return f(b,function(a,e){d[e]=d[e]||0,d[e]++,c[e]>1&&(b[a]=e+" "+d[e])}),b},getValidId:function(a){return a=a===b?"":a.toString(),a.replace(/\s+/g,"-")},setInputAttributes:function(a){if(this.schema.options&&this.schema.options.inputAttributes){var b=this.schema.options.inputAttributes,c=["name","type"].concat(a);for(var d in b)b.hasOwnProperty(d)&&c.indexOf(d.toLowerCase())==-1&&this.input.setAttribute(d,b[d])}},getOption:function(a){try{throw"getOption is deprecated"}catch(b){window.console.error(b)}return this.options[a]},showValidationErrors:function(a){}}),h.defaults.editors["null"]=h.AbstractEditor.extend({getValue:function(){return this.dependenciesFulfilled?null:b},setValue:function(){this.onChange()},getNumColumns:function(){return 2}}),h.defaults.editors.string=h.AbstractEditor.extend({register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},setValue:function(a,b,c){if((!this.template||c)&&(null===a||"undefined"==typeof a?a="":"object"==typeof a?a=JSON.stringify(a):"string"!=typeof a&&(a=""+a),
          a!==this.serialized)){var d=this.sanitize(a);if(this.input.value!==d){this.input.value=d,this.sceditor_instance?this.sceditor_instance.val(d):this.SimpleMDE?this.SimpleMDE.value(d):this.ace_editor&&(this.ace_editor.setValue(d),this.ace_editor.session.getSelection().clearSelection(),this.ace_editor.resize());var e=c||this.getValue()!==a;this.refreshValue(),b?this.is_dirty=!1:"change"===this.jsoneditor.options.show_errors&&(this.is_dirty=!0),this.adjust_height&&this.adjust_height(this.input),this.onChange(e)}}},getNumColumns:function(){var a,b=Math.ceil(Math.max(this.getTitle().length,this.schema.maxLength||0,this.schema.minLength||0)/5);return a="textarea"===this.input_type?6:["text","email"].indexOf(this.input_type)>=0?4:2,Math.min(12,Math.max(b,a))},build:function(){var a=this;if(this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.format=this.schema.format,!this.format&&this.schema.media&&this.schema.media.type&&(this.format=this.schema.media.type.replace(/(^(application|text)\/(x-)?(script\.)?)|(-source$)/g,"")),!this.format&&this.options.default_format&&(this.format=this.options.default_format),this.options.format&&(this.format=this.options.format),this.format)if("textarea"===this.format)this.input_type="textarea",this.input=this.theme.getTextareaInput();else if("range"===this.format){this.input_type="range";var b=this.schema.minimum||0,c=this.schema.maximum||Math.max(100,b+1),d=1;this.schema.multipleOf&&(b%this.schema.multipleOf&&(b=Math.ceil(b/this.schema.multipleOf)*this.schema.multipleOf),c%this.schema.multipleOf&&(c=Math.floor(c/this.schema.multipleOf)*this.schema.multipleOf),d=this.schema.multipleOf),this.input=this.theme.getRangeInput(b,c,d)}else["actionscript","batchfile","bbcode","c","c++","cpp","coffee","csharp","css","dart","django","ejs","erlang","golang","groovy","handlebars","haskell","haxe","html","ini","jade","java","javascript","json","less","lisp","lua","makefile","markdown","matlab","mysql","objectivec","pascal","perl","pgsql","php","python","r","ruby","sass","scala","scss","smarty","sql","sqlserver","stylus","svg","twig","vbscript","xml","yaml"].indexOf(this.format)>=0?(this.input_type=this.format,this.source_code=!0,this.input=this.theme.getTextareaInput()):(this.input_type=this.format,this.input=this.theme.getFormInputField(this.input_type));else this.input_type="text",this.input=this.theme.getFormInputField(this.input_type);if("undefined"!=typeof this.schema.maxLength&&this.input.setAttribute("maxlength",this.schema.maxLength),"undefined"!=typeof this.schema.pattern?this.input.setAttribute("pattern",this.schema.pattern):"undefined"!=typeof this.schema.minLength&&this.input.setAttribute("pattern",".{"+this.schema.minLength+",}"),this.options.compact?this.container.classList.add("compact"):this.options.input_width&&(this.input.style.width=this.options.input_width),(this.schema.readOnly||this.schema.readonly||this.schema.template)&&(this.always_disabled=!0,this.input.setAttribute("readonly","true")),this.setInputAttributes(["maxlength","pattern","readonly","min","max","step"]),this.input.addEventListener("change",function(b){if(b.preventDefault(),b.stopPropagation(),a.schema.template)return void(this.value=a.value);var c=this.value,d=a.sanitize(c);c!==d&&(this.value=d),a.is_dirty=!0,a.refreshValue(),a.onChange(!0)}),this.options.input_height&&(this.input.style.height=this.options.input_height),this.options.expand_height&&(this.adjust_height=function(a){if(a){var b,c=a.offsetHeight;if(a.offsetHeight<a.scrollHeight)for(b=0;a.offsetHeight<a.scrollHeight+3&&!(b>100);)b++,c++,a.style.height=c+"px";else{for(b=0;a.offsetHeight>=a.scrollHeight+3&&!(b>100);)b++,c--,a.style.height=c+"px";a.style.height=c+1+"px"}}},this.input.addEventListener("keyup",function(b){a.adjust_height(this)}),this.input.addEventListener("change",function(b){a.adjust_height(this)}),this.adjust_height()),this.format&&this.input.setAttribute("data-schemaformat",this.format),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),"range"===this.format){var e=document.createElement("output");e.setAttribute("class","range-output"),this.control.appendChild(e),e.value=this.schema["default"],this.input.addEventListener("change",function(){e.value=a.input.value}),this.input.addEventListener("input",function(){e.value=a.input.value})}this.container.appendChild(this.control),window.requestAnimationFrame(function(){a.input.parentNode&&a.afterInputReady(),a.adjust_height&&a.adjust_height(a.input)}),this.schema.template?(this.template=this.jsoneditor.compileTemplate(this.schema.template,this.template_engine),this.refreshValue()):this.refreshValue()},postBuild:function(){this._super(),window.Cleave&&this.schema.options&&"object"==typeof this.schema.options.cleave&&(this.cleave=new window.Cleave(this.input,this.schema.options.cleave))},enable:function(){this.always_disabled||(this.input.disabled=!1,this._super())},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this._super()},afterInputReady:function(){var a,b=this;if(this.source_code)if(this.options.wysiwyg&&["html","bbcode"].indexOf(this.input_type)>=0&&window.jQuery&&window.jQuery.fn&&window.jQuery.fn.sceditor)a=e({},{plugins:"html"===b.input_type?"xhtml":"bbcode",emoticonsEnabled:!1,width:"100%",height:300},h.plugins.sceditor,b.options.sceditor_options||{}),window.jQuery(b.input).sceditor(a),b.sceditor_instance=window.jQuery(b.input).sceditor("instance"),b.sceditor_instance.blur(function(){var a=window.jQuery("<div>"+b.sceditor_instance.val()+"</div>");window.jQuery("#sceditor-start-marker,#sceditor-end-marker,.sceditor-nlf",a).remove(),b.input.value=a.html(),b.value=b.input.value,b.is_dirty=!0,b.onChange(!0)});else if("markdown"===this.input_type&&window.SimpleMDE)a=e({},h.plugins.SimpleMDE,{element:this.input}),this.SimpleMDE=new window.SimpleMDE(a),this.SimpleMDE.codemirror.on("change",function(){b.value=b.SimpleMDE.value(),b.is_dirty=!0,b.onChange(!0)});else if(window.ace){var c=this.input_type;"cpp"!==c&&"c++"!==c&&"c"!==c||(c="c_cpp"),this.ace_container=document.createElement("div"),this.ace_container.style.width="100%",this.ace_container.style.position="relative",this.ace_container.style.height="400px",this.input.parentNode.insertBefore(this.ace_container,this.input),this.input.style.display="none",this.ace_editor=window.ace.edit(this.ace_container);var d=this.schema.options&&this.schema.options.ace;d&&this.ace_editor.setOptions(d),this.ace_editor.setValue(this.getValue()),this.ace_editor.session.getSelection().clearSelection(),this.ace_editor.resize(),h.plugins.ace.theme&&this.ace_editor.setTheme("ace/theme/"+h.plugins.ace.theme),this.ace_editor.getSession().setMode("ace/mode/"+this.schema.format),this.ace_editor.on("change",function(){var a=b.ace_editor.getValue();b.input.value=a,b.refreshValue(),b.is_dirty=!0,b.onChange(!0)})}b.theme.afterInputReady(b.input)},refreshValue:function(){this.value=this.input.value,"string"!=typeof this.value&&(this.value=""),this.serialized=this.value},destroy:function(){this.sceditor_instance?this.sceditor_instance.destroy():this.SimpleMDE?(this.SimpleMDE.toTextArea(),this.SimpleMDE=null):this.ace_editor&&this.ace_editor.destroy(),this.cleave&&this.cleave.destroy(),this.template=null,this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this._super()},sanitize:function(a){return a},onWatchedFieldChange:function(){var a;this.template&&(a=this.getWatchedFieldValues(),this.setValue(this.template(a),!1,!0)),this._super()},showValidationErrors:function(a){var b=this;if("always"===this.jsoneditor.options.show_errors);else if(!this.is_dirty&&this.previous_error_setting===this.jsoneditor.options.show_errors)return;this.previous_error_setting=this.jsoneditor.options.show_errors;var c=[];f(a,function(a,d){d.path===b.path&&c.push(d.message)}),c.length?this.theme.addInputError(this.input,c.join(". ")+"."):this.theme.removeInputError(this.input)}}),h.defaults.editors.hidden=h.AbstractEditor.extend({register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},setValue:function(a,b,c){if((!this.template||c)&&(null===a||"undefined"==typeof a?a="":"object"==typeof a?a=JSON.stringify(a):"string"!=typeof a&&(a=""+a),a!==this.serialized)){var d=this.sanitize(a);if(this.input.value!==d){this.input.value=d;var e=c||this.getValue()!==a;this.refreshValue(),b?this.is_dirty=!1:"change"===this.jsoneditor.options.show_errors&&(this.is_dirty=!0),this.adjust_height&&this.adjust_height(this.input),this.onChange(e)}}},getNumColumns:function(){return 2},enable:function(){this._super()},disable:function(){this._super()},refreshValue:function(){this.value=this.input.value,"string"!=typeof this.value&&(this.value=""),this.serialized=this.value},destroy:function(){this.template=null,this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this._super()},sanitize:function(a){return a},onWatchedFieldChange:function(){var a;this.template&&(a=this.getWatchedFieldValues(),this.setValue(this.template(a),!1,!0)),this._super()},build:function(){this.format=this.schema.format,!this.format&&this.options.default_format&&(this.format=this.options.default_format),this.options.format&&(this.format=this.options.format),this.input_type="hidden",this.input=this.theme.getFormInputField(this.input_type),this.format&&this.input.setAttribute("data-schemaformat",this.format),this.container.appendChild(this.input),this.schema.template?(this.template=this.jsoneditor.compileTemplate(this.schema.template,this.template_engine),this.refreshValue()):this.refreshValue()}}),h.defaults.editors.number=h.defaults.editors.string.extend({build:function(){if(this._super(),"undefined"!=typeof this.schema.minimum){var a=this.schema.minimum;"undefined"!=typeof this.schema.exclusiveMinimum&&(a+=1),this.input.setAttribute("min",a)}if("undefined"!=typeof this.schema.maximum){var b=this.schema.maximum;"undefined"!=typeof this.schema.exclusiveMaximum&&(b-=1),this.input.setAttribute("max",b)}if("undefined"!=typeof this.schema.step){var c=this.schema.step||1;this.input.setAttribute("step",c)}this.setInputAttributes(["maxlength","pattern","readonly","min","max","step"])},sanitize:function(a){return(a+"").replace(/[^0-9\.\-eE]/g,"")},getNumColumns:function(){return 2},getValue:function(){return this.dependenciesFulfilled?""===this.value?b:1*this.value:b}}),h.defaults.editors.integer=h.defaults.editors.number.extend({sanitize:function(a){return a+="",a.replace(/[^0-9\-]/g,"")},getNumColumns:function(){return 2}}),h.defaults.editors.rating=h.defaults.editors.integer.extend({build:function(){var a,b=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description));var c="json-editor-style-rating",d=document.getElementById(c);if(!d){var e=document.createElement("style");e.id=c,e.type="text/css",e.innerHTML=" .rating-container { display: inline-block; clear: both; } .rating { float:left; } /* :not(:checked) is a filter, so that browsers that don’t support :checked don’t follow these rules. Every browser that supports :checked also supports :not(), so it doesn’t make the test unnecessarily selective */ .rating:not(:checked) > input { position:absolute; top:-9999px; clip:rect(0,0,0,0); } .rating:not(:checked) > label { float:right; width:1em; padding:0 .1em; overflow:hidden; white-space:nowrap; cursor:pointer; color:#ddd; } .rating:not(:checked) > label:before { content: '★ '; } .rating > input:checked ~ label { color: #FFB200; } .rating:not([readOnly]):not(:checked) > label:hover, .rating:not([readOnly]):not(:checked) > label:hover ~ label { color: #FFDA00; } .rating:not([readOnly]) > input:checked + label:hover, .rating:not([readOnly]) > input:checked + label:hover ~ label, .rating:not([readOnly]) > input:checked ~ label:hover, .rating:not([readOnly]) > input:checked ~ label:hover ~ label, .rating:not([readOnly]) > label:hover ~ input:checked ~ label { color: #FF8C0D; } .rating:not([readOnly]) > label:active { position:relative; top:2px; left:2px; }",document.getElementsByTagName("head")[0].appendChild(e)}this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input);var g=document.createElement("div");g.classList.add("rating-container");var h=document.createElement("div");h.setAttribute("name",this.formname),h.classList.add("rating"),g.appendChild(h),this.options.compact&&this.container.setAttribute("class",this.container.getAttribute("class")+" compact");var i=this.schema.maximum?this.schema.maximum:5;for(this.schema.exclusiveMaximum&&i--,this.inputs=[],a=i;a>0;a--){var j=this.formname+a,k=this.theme.getFormInputField("radio");k.setAttribute("id",j),k.setAttribute("value",a),k.setAttribute("name",this.formname),h.appendChild(k),this.inputs.push(k);var l=document.createElement("label");l.setAttribute("for",j),l.appendChild(document.createTextNode(a+(1==a?" star":" stars"))),h.appendChild(l)}(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,f(this.inputs,function(a,b){h.setAttribute("readOnly","readOnly"),b.disabled=!0})),g.addEventListener("change",function(a){a.preventDefault(),a.stopPropagation(),b.input.value=a.srcElement.value,b.is_dirty=!0,b.refreshValue(),b.watch_listener(),b.jsoneditor.notifyWatchers(b.path),b.parent?b.parent.onChildEditorChange(b):b.jsoneditor.onChange()}),this.control=this.theme.getFormControl(this.label,g,this.description),this.container.appendChild(this.control),this.refreshValue()},setValue:function(a){var b=this.sanitize(a);if(this.value!==b){var c=this;f(this.inputs,function(a,d){if(d.value===b)return d.checked=!0,c.value=b,c.input.value=c.value,c.watch_listener(),c.jsoneditor.notifyWatchers(c.path),!1})}}}),h.defaults.editors.object=h.AbstractEditor.extend({getDefault:function(){return e({},this.schema["default"]||{})},getChildEditors:function(){return this.editors},register:function(){if(this._super(),this.editors)for(var a in this.editors)this.editors.hasOwnProperty(a)&&this.editors[a].register()},unregister:function(){if(this._super(),this.editors)for(var a in this.editors)this.editors.hasOwnProperty(a)&&this.editors[a].unregister()},getNumColumns:function(){return Math.max(Math.min(12,this.maxwidth),3)},enable:function(){if(!this.always_disabled&&(this.editjson_button&&(this.editjson_button.disabled=!1),this.addproperty_button&&(this.addproperty_button.disabled=!1),this._super(),this.editors))for(var a in this.editors)this.editors.hasOwnProperty(a)&&this.editors[a].enable()},disable:function(a){if(a&&(this.always_disabled=!0),this.editjson_button&&(this.editjson_button.disabled=!0),this.addproperty_button&&(this.addproperty_button.disabled=!0),this.hideEditJSON(),this._super(),this.editors)for(var b in this.editors)this.editors.hasOwnProperty(b)&&this.editors[b].disable(a)},layoutEditors:function(){var a,b,c=this;if(this.row_container){this.property_order=Object.keys(this.editors),this.property_order=this.property_order.sort(function(a,b){var d=c.editors[a].schema.propertyOrder,e=c.editors[b].schema.propertyOrder;return"number"!=typeof d&&(d=1e3),"number"!=typeof e&&(e=1e3),d-e});var d,e="categories"===this.format;if("grid"===this.format){var h=[];for(f(this.property_order,function(a,b){var d=c.editors[b];if(!d.property_removed){for(var e=!1,f=d.options.hidden?0:d.options.grid_columns||d.getNumColumns(),g=d.options.hidden?0:d.container.offsetHeight,i=0;i<h.length;i++)h[i].width+f<=12&&(!g||.5*h[i].minh<g&&2*h[i].maxh>g)&&(e=i);e===!1&&(h.push({width:0,minh:999999,maxh:0,editors:[]}),e=h.length-1),h[e].editors.push({key:b,width:f,height:g}),h[e].width+=f,h[e].minh=Math.min(h[e].minh,g),h[e].maxh=Math.max(h[e].maxh,g)}}),a=0;a<h.length;a++)if(h[a].width<12){var i=!1,j=0;for(b=0;b<h[a].editors.length;b++)i===!1?i=b:h[a].editors[b].width>h[a].editors[i].width&&(i=b),h[a].editors[b].width*=12/h[a].width,h[a].editors[b].width=Math.floor(h[a].editors[b].width),j+=h[a].editors[b].width;j<12&&(h[a].editors[i].width+=12-j),h[a].width=12}if(this.layout===JSON.stringify(h))return!1;for(this.layout=JSON.stringify(h),d=document.createElement("div"),a=0;a<h.length;a++){var k=this.theme.getGridRow();for(d.appendChild(k),b=0;b<h[a].editors.length;b++){var l=h[a].editors[b].key,m=this.editors[l];m.options.hidden?m.container.style.display="none":this.theme.setGridColumnSize(m.container,h[a].editors[b].width),k.appendChild(m.container)}}}else{if(d=document.createElement("div"),e){var n=document.createElement("div"),o=this.theme.getTopTabHolder(this.schema.title),p=this.theme.getTopTabContentHolder(o);for(f(this.property_order,function(a,b){var d=c.editors[b];if(!d.property_removed){var e=c.theme.getTabContent(),f=d.schema&&("object"===d.schema.type||"array"===d.schema.type);e.isObjOrArray=f;var g=c.theme.getGridRow();d.tab||("undefined"==typeof c.basicPane?c.addRow(d,o,e):c.addRow(d,o,c.basicPane)),e.id=c.getValidId(d.tab_text.textContent),f?(e.appendChild(g),p.appendChild(e),c.theme.addTopTab(o,d.tab)):(n.appendChild(g),p.childElementCount>0?p.firstChild.isObjOrArray&&(e.appendChild(n),p.insertBefore(e,p.firstChild),c.theme.insertBasicTopTab(d.tab,o),d.basicPane=e):(e.appendChild(n),p.appendChild(e),c.theme.addTopTab(o,d.tab),d.basicPane=e)),d.options.hidden?d.container.style.display="none":c.theme.setGridColumnSize(d.container,12),g.appendChild(d.container),d.rowPane=e}});this.tabPanesContainer.firstChild;)this.tabPanesContainer.removeChild(this.tabPanesContainer.firstChild);var q=this.tabs_holder.parentNode;q.removeChild(q.firstChild),q.appendChild(o),this.tabPanesContainer=p,this.tabs_holder=o;var r=this.theme.getFirstTab(this.tabs_holder);return void(r&&g(r,"click"))}f(this.property_order,function(a,b){var e=c.editors[b];if(!e.property_removed){var f=c.theme.getGridRow();d.appendChild(f),e.options.hidden?e.container.style.display="none":c.theme.setGridColumnSize(e.container,12),f.appendChild(e.container)}})}for(;this.row_container.firstChild;)this.row_container.removeChild(this.row_container.firstChild);this.row_container.appendChild(d)}},getPropertySchema:function(a){var b=this.schema.properties[a]||{};b=e({},b);var c=!!this.schema.properties[a];if(this.schema.patternProperties)for(var d in this.schema.patternProperties)if(this.schema.patternProperties.hasOwnProperty(d)){var f=new RegExp(d);f.test(a)&&(b.allOf=b.allOf||[],b.allOf.push(this.schema.patternProperties[d]),c=!0)}return!c&&this.schema.additionalProperties&&"object"==typeof this.schema.additionalProperties&&(b=e({},this.schema.additionalProperties)),b},preBuild:function(){this._super(),this.editors={},this.cached_editors={};var a=this;if(this.format=this.options.layout||this.options.object_layout||this.schema.format||this.jsoneditor.options.object_layout||"normal",this.schema.properties=this.schema.properties||{},this.minwidth=0,this.maxwidth=0,this.options.table_row)f(this.schema.properties,function(b,c){var d=a.jsoneditor.getEditorClass(c);a.editors[b]=a.jsoneditor.createEditor(d,{jsoneditor:a.jsoneditor,schema:c,path:a.path+"."+b,parent:a,compact:!0,required:!0}),a.editors[b].preBuild();var e=a.editors[b].options.hidden?0:a.editors[b].options.grid_columns||a.editors[b].getNumColumns();a.minwidth+=e,a.maxwidth+=e}),this.no_link_holder=!0;else{if(this.options.table)throw"Not supported yet";this.schema.defaultProperties||(this.jsoneditor.options.display_required_only||this.options.display_required_only?(this.schema.defaultProperties=[],f(this.schema.properties,function(b,c){a.isRequired({key:b,schema:c})&&a.schema.defaultProperties.push(b)})):a.schema.defaultProperties=Object.keys(a.schema.properties)),a.maxwidth+=1,f(this.schema.defaultProperties,function(b,c){a.addObjectProperty(c,!0),a.editors[c]&&(a.minwidth=Math.max(a.minwidth,a.editors[c].options.grid_columns||a.editors[c].getNumColumns()),a.maxwidth+=a.editors[c].options.grid_columns||a.editors[c].getNumColumns())})}this.property_order=Object.keys(this.editors),this.property_order=this.property_order.sort(function(b,c){var d=a.editors[b].schema.propertyOrder,e=a.editors[c].schema.propertyOrder;return"number"!=typeof d&&(d=1e3),"number"!=typeof e&&(e=1e3),d-e})},addTab:function(a){var b=this,c=b.rows[a].schema&&("object"===b.rows[a].schema.type||"array"===b.rows[a].schema.type);b.tabs_holder&&(b.rows[a].tab_text=document.createElement("span"),c?b.rows[a].tab_text.textContent=b.rows[a].getHeaderText():b.rows[a].tab_text.textContent="undefined"==typeof b.schema.basicCategoryTitle?"Basic":b.schema.basicCategoryTitle,b.rows[a].tab=b.theme.getTopTab(b.rows[a].tab_text,this.getValidId(b.rows[a].tab_text.textContent)),b.rows[a].tab.addEventListener("click",function(c){b.active_tab=b.rows[a].tab,b.refreshTabs(),c.preventDefault(),c.stopPropagation()}))},addRow:function(a,b,c){var d=this,e=this.rows.length,f="object"===a.schema.type||"array"===a.schema.type;d.rows[e]=a,d.rows[e].rowPane=c,f?(d.addTab(e),d.theme.addTopTab(b,d.rows[e].tab)):"undefined"==typeof d.basicTab?(d.addTab(e),d.basicTab=e,d.basicPane=c,d.theme.addTopTab(b,d.rows[e].tab)):(d.rows[e].tab=d.rows[d.basicTab].tab,d.rows[e].tab_text=d.rows[d.basicTab].tab_text,d.rows[e].rowPane=d.rows[d.basicTab].rowPane)},refreshTabs:function(a){var b=this,c="undefined"!=typeof b.basicTab,d=!1;f(this.rows,function(e,f){f.tab&&f.rowPane&&f.rowPane.parentNode&&(c&&f.tab==b.rows[b.basicTab].tab&&d||(a?f.tab_text.textContent=f.getHeaderText():(c&&f.tab==b.rows[b.basicTab].tab&&(d=!0),f.tab===b.active_tab?b.theme.markTabActive(f):b.theme.markTabInactive(f))))})},build:function(){var a=this,b="categories"===this.format;if(this.rows=[],this.active_tab=null,this.options.table_row)this.editor_holder=this.container,f(this.editors,function(b,c){var d=a.theme.getTableCell();a.editor_holder.appendChild(d),c.setContainer(d),c.build(),c.postBuild(),a.editors[b].options.hidden&&(d.style.display="none"),a.editors[b].options.input_width&&(d.style.width=a.editors[b].options.input_width)});else{if(this.options.table)throw"Not supported yet";this.header=document.createElement("span"),this.header.textContent=this.getTitle(),this.title=this.theme.getHeader(this.header),this.container.appendChild(this.title),this.container.style.position="relative",this.editjson_holder=this.theme.getModal(),this.editjson_textarea=this.theme.getTextareaInput(),this.editjson_textarea.style.height="170px",this.editjson_textarea.style.width="300px",this.editjson_textarea.style.display="block",this.editjson_save=this.getButton("Save","save","Save"),this.editjson_save.classList.add("json-editor-btntype-save"),this.editjson_save.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.saveJSON()}),this.editjson_copy=this.getButton("Copy","copy","Copy"),this.editjson_copy.classList.add("json-editor-btntype-copy"),this.editjson_copy.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.copyJSON()}),this.editjson_cancel=this.getButton("Cancel","cancel","Cancel"),this.editjson_cancel.classList.add("json-editor-btntype-cancel"),this.editjson_cancel.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.hideEditJSON()}),this.editjson_holder.appendChild(this.editjson_textarea),this.editjson_holder.appendChild(this.editjson_save),this.editjson_holder.appendChild(this.editjson_copy),this.editjson_holder.appendChild(this.editjson_cancel),this.addproperty_holder=this.theme.getModal(),this.addproperty_list=document.createElement("div"),this.addproperty_list.style.width="295px",this.addproperty_list.style.maxHeight="160px",this.addproperty_list.style.padding="5px 0",this.addproperty_list.style.overflowY="auto",this.addproperty_list.style.overflowX="hidden",this.addproperty_list.style.paddingLeft="5px",this.addproperty_list.setAttribute("class","property-selector"),this.addproperty_add=this.getButton("add","add","add"),this.addproperty_add.classList.add("json-editor-btntype-add"),this.addproperty_input=this.theme.getFormInputField("text"),this.addproperty_input.setAttribute("placeholder","Property name..."),this.addproperty_input.style.width="220px",this.addproperty_input.style.marginBottom="0",this.addproperty_input.style.display="inline-block",this.addproperty_add.addEventListener("click",function(b){if(b.preventDefault(),b.stopPropagation(),a.addproperty_input.value){if(a.editors[a.addproperty_input.value])return void window.alert("there is already a property with that name");a.addObjectProperty(a.addproperty_input.value),a.editors[a.addproperty_input.value]&&a.editors[a.addproperty_input.value].disable(),a.onChange(!0)}}),this.addproperty_holder.appendChild(this.addproperty_list),this.addproperty_holder.appendChild(this.addproperty_input),this.addproperty_holder.appendChild(this.addproperty_add);var c=document.createElement("div");c.style.clear="both",this.addproperty_holder.appendChild(c),document.addEventListener("click",function(a){!this.addproperty_holder.contains(a.target)&&this.adding_property&&(a.preventDefault(),a.stopPropagation(),this.toggleAddProperty())}.bind(this)),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description),this.container.appendChild(this.description)),this.error_holder=document.createElement("div"),this.container.appendChild(this.error_holder),this.editor_holder=this.theme.getIndentedPanel(),this.container.appendChild(this.editor_holder),this.row_container=this.theme.getGridContainer(),b?(this.tabs_holder=this.theme.getTopTabHolder(this.getValidId(this.schema.title)),this.tabPanesContainer=this.theme.getTopTabContentHolder(this.tabs_holder),this.editor_holder.appendChild(this.tabs_holder)):(this.tabs_holder=this.theme.getTabHolder(this.getValidId(this.schema.title)),this.tabPanesContainer=this.theme.getTabContentHolder(this.tabs_holder),this.editor_holder.appendChild(this.row_container)),f(this.editors,function(c,d){var e=a.theme.getTabContent(),f=a.theme.getGridColumn(),g=!(!d.schema||"object"!==d.schema.type&&"array"!==d.schema.type);if(e.isObjOrArray=g,b){if(g){var h=a.theme.getGridContainer();h.appendChild(f),e.appendChild(h),a.tabPanesContainer.appendChild(e),a.row_container=h}else"undefined"==typeof a.row_container_basic&&(a.row_container_basic=a.theme.getGridContainer(),e.appendChild(a.row_container_basic),0==a.tabPanesContainer.childElementCount?a.tabPanesContainer.appendChild(e):a.tabPanesContainer.insertBefore(e,a.tabPanesContainer.childNodes[1])),a.row_container_basic.appendChild(f);a.addRow(d,a.tabs_holder,e),e.id=a.getValidId(d.schema.title)}else a.row_container.appendChild(f);d.setContainer(f),d.build(),d.postBuild()}),this.rows[0]&&g(this.rows[0].tab,"click"),this.title_controls=this.theme.getHeaderButtonHolder(),this.editjson_controls=this.theme.getHeaderButtonHolder(),this.addproperty_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.title.appendChild(this.editjson_controls),this.title.appendChild(this.addproperty_controls),this.collapsed=!1,this.toggle_button=this.getButton("","collapse",this.translate("button_collapse")),this.toggle_button.classList.add("json-editor-btntype-toggle"),this.title_controls.appendChild(this.toggle_button),this.toggle_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.collapsed?(a.editor_holder.style.display="",a.collapsed=!1,a.setButtonText(a.toggle_button,"","collapse",a.translate("button_collapse"))):(a.editor_holder.style.display="none",a.collapsed=!0,a.setButtonText(a.toggle_button,"","expand",a.translate("button_expand")))}),this.options.collapsed&&g(this.toggle_button,"click"),this.schema.options&&"undefined"!=typeof this.schema.options.disable_collapse?this.schema.options.disable_collapse&&(this.toggle_button.style.display="none"):this.jsoneditor.options.disable_collapse&&(this.toggle_button.style.display="none"),this.editjson_button=this.getButton("JSON","edit","Edit JSON"),this.editjson_button.classList.add("json-editor-btntype-editjson"),this.editjson_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.toggleEditJSON()}),this.editjson_controls.appendChild(this.editjson_button),this.editjson_controls.appendChild(this.editjson_holder),this.schema.options&&"undefined"!=typeof this.schema.options.disable_edit_json?this.schema.options.disable_edit_json&&(this.editjson_button.style.display="none"):this.jsoneditor.options.disable_edit_json&&(this.editjson_button.style.display="none"),this.addproperty_button=this.getButton("Properties","edit","Object Properties"),this.addproperty_button.classList.add("json-editor-btntype-properties"),this.addproperty_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.toggleAddProperty()}),this.addproperty_controls.appendChild(this.addproperty_button),this.addproperty_controls.appendChild(this.addproperty_holder),this.refreshAddProperties()}this.options.table_row?(this.editor_holder=this.container,f(this.property_order,function(b,c){a.editor_holder.appendChild(a.editors[c].container)})):(this.layoutEditors(),this.layoutEditors())},showEditJSON:function(){this.editjson_holder&&(this.hideAddProperty(),this.editjson_holder.style.left=this.editjson_button.offsetLeft+"px",this.editjson_holder.style.top=this.editjson_button.offsetTop+this.editjson_button.offsetHeight+"px",this.editjson_textarea.value=JSON.stringify(this.getValue(),null,2),this.disable(),this.editjson_holder.style.display="",this.editjson_button.disabled=!1,this.editing_json=!0)},hideEditJSON:function(){this.editjson_holder&&this.editing_json&&(this.editjson_holder.style.display="none",this.enable(),this.editing_json=!1)},copyJSON:function(){if(this.editjson_holder){var a=document.createElement("textarea");a.value=this.editjson_textarea.value,a.setAttribute("readonly",""),a.style.position="absolute",a.style.left="-9999px",document.body.appendChild(a),a.select(),document.execCommand("copy"),document.body.removeChild(a)}},saveJSON:function(){if(this.editjson_holder)try{var a=JSON.parse(this.editjson_textarea.value);this.setValue(a),this.hideEditJSON(),this.onChange(!0)}catch(b){throw window.alert("invalid JSON"),b}},toggleEditJSON:function(){this.editing_json?this.hideEditJSON():this.showEditJSON()},insertPropertyControlUsingPropertyOrder:function(a,b,c){var d;this.schema.properties[a]&&(d=this.schema.properties[a].propertyOrder),"number"!=typeof d&&(d=1e3),b.propertyOrder=d;for(var e=0;e<c.childNodes.length;e++){var f=c.childNodes[e];if(b.propertyOrder<f.propertyOrder){this.addproperty_list.insertBefore(b,f),b=null;break}}b&&this.addproperty_list.appendChild(b)},addPropertyCheckbox:function(a){var b,c,d,e,f=this;return b=f.theme.getCheckbox(),b.style.width="auto",d=this.schema.properties[a]&&this.schema.properties[a].title?this.schema.properties[a].title:a,c=f.theme.getCheckboxLabel(d),e=f.theme.getFormControl(c,b),e.style.paddingBottom=e.style.marginBottom=e.style.paddingTop=e.style.marginTop=0,e.style.height="auto",this.insertPropertyControlUsingPropertyOrder(a,e,this.addproperty_list),
          b.checked=a in this.editors,b.addEventListener("change",function(){b.checked?f.addObjectProperty(a):f.removeObjectProperty(a),f.onChange(!0)}),f.addproperty_checkboxes[a]=b,b},showAddProperty:function(){this.addproperty_holder&&(this.hideEditJSON(),this.addproperty_holder.style.left=this.addproperty_button.offsetLeft+"px",this.addproperty_holder.style.top=this.addproperty_button.offsetTop+this.addproperty_button.offsetHeight+"px",this.disable(),this.adding_property=!0,this.addproperty_button.disabled=!1,this.addproperty_holder.style.display="",this.refreshAddProperties())},hideAddProperty:function(){this.addproperty_holder&&this.adding_property&&(this.addproperty_holder.style.display="none",this.enable(),this.adding_property=!1)},toggleAddProperty:function(){this.adding_property?this.hideAddProperty():this.showAddProperty()},removeObjectProperty:function(a){this.editors[a]&&(this.editors[a].unregister(),delete this.editors[a],this.refreshValue(),this.layoutEditors())},addObjectProperty:function(a,b){var c=this;if(!this.editors[a]){if(this.cached_editors[a]){if(this.editors[a]=this.cached_editors[a],b)return;this.editors[a].register()}else{if(!(this.canHaveAdditionalProperties()||this.schema.properties&&this.schema.properties[a]))return;var d=c.getPropertySchema(a);"number"!=typeof d.propertyOrder&&(d.propertyOrder=Object.keys(c.editors).length+1e3);var e=c.jsoneditor.getEditorClass(d);if(c.editors[a]=c.jsoneditor.createEditor(e,{jsoneditor:c.jsoneditor,schema:d,path:c.path+"."+a,parent:c}),c.editors[a].preBuild(),!b){var f=c.theme.getChildEditorHolder();c.editor_holder.appendChild(f),c.editors[a].setContainer(f),c.editors[a].build(),c.editors[a].postBuild()}c.cached_editors[a]=c.editors[a]}b||(c.refreshValue(),c.layoutEditors())}},onChildEditorChange:function(a){this.refreshValue(),this._super(a)},canHaveAdditionalProperties:function(){return"boolean"==typeof this.schema.additionalProperties?this.schema.additionalProperties:!this.jsoneditor.options.no_additional_properties},destroy:function(){f(this.cached_editors,function(a,b){b.destroy()}),this.editor_holder&&(this.editor_holder.innerHTML=""),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.error_holder&&this.error_holder.parentNode&&this.error_holder.parentNode.removeChild(this.error_holder),this.editors=null,this.cached_editors=null,this.editor_holder&&this.editor_holder.parentNode&&this.editor_holder.parentNode.removeChild(this.editor_holder),this.editor_holder=null,this._super()},getValue:function(){if(!this.dependenciesFulfilled)return b;var a=this._super();if(this.jsoneditor.options.remove_empty_properties||this.options.remove_empty_properties)for(var c in a)a.hasOwnProperty(c)&&("undefined"==typeof a[c]||""===a[c]||a[c]===Object(a[c])&&0==Object.keys(a[c]).length&&a[c].constructor==Object)&&delete a[c];return a},refreshValue:function(){this.value={};for(var a in this.editors)this.editors.hasOwnProperty(a)&&(this.value[a]=this.editors[a].getValue());this.adding_property&&this.refreshAddProperties()},refreshAddProperties:function(){if(this.options.disable_properties||this.options.disable_properties!==!1&&this.jsoneditor.options.disable_properties)return void(this.addproperty_controls.style.display="none");var a,b=!1,c=!1,d=0,e=!1;for(a in this.editors)this.editors.hasOwnProperty(a)&&d++;b=this.canHaveAdditionalProperties()&&!("undefined"!=typeof this.schema.maxProperties&&d>=this.schema.maxProperties),this.addproperty_checkboxes&&(this.addproperty_list.innerHTML=""),this.addproperty_checkboxes={};for(a in this.cached_editors)this.cached_editors.hasOwnProperty(a)&&(this.addPropertyCheckbox(a),this.isRequired(this.cached_editors[a])&&a in this.editors&&(this.addproperty_checkboxes[a].disabled=!0),"undefined"!=typeof this.schema.minProperties&&d<=this.schema.minProperties?(this.addproperty_checkboxes[a].disabled=this.addproperty_checkboxes[a].checked,this.addproperty_checkboxes[a].checked||(e=!0)):a in this.editors?(e=!0,c=!0):b||this.schema.properties.hasOwnProperty(a)?(this.addproperty_checkboxes[a].disabled=!1,e=!0):this.addproperty_checkboxes[a].disabled=!0);this.canHaveAdditionalProperties()&&(e=!0);for(a in this.schema.properties)this.schema.properties.hasOwnProperty(a)&&(this.cached_editors[a]||(e=!0,this.addPropertyCheckbox(a)));e?this.canHaveAdditionalProperties()?b?this.addproperty_add.disabled=!1:this.addproperty_add.disabled=!0:(this.addproperty_add.style.display="none",this.addproperty_input.style.display="none"):(this.hideAddProperty(),this.addproperty_controls.style.display="none")},isRequired:function(a){return"boolean"==typeof a.schema.required?a.schema.required:Array.isArray(this.schema.required)?this.schema.required.indexOf(a.key)>-1:!!this.jsoneditor.options.required_by_default},setValue:function(a,b){var c=this;a=a||{},("object"!=typeof a||Array.isArray(a))&&(a={}),f(this.cached_editors,function(d,e){"undefined"!=typeof a[d]?(c.addObjectProperty(d),e.setValue(a[d],b)):b||c.isRequired(e)?e.setValue(e.getDefault(),b):c.removeObjectProperty(d)}),f(a,function(a,d){c.cached_editors[a]||(c.addObjectProperty(a),c.editors[a]&&c.editors[a].setValue(d,b))}),this.refreshValue(),this.layoutEditors(),this.onChange()},showValidationErrors:function(a){var b=this,c=[],d=[];if(f(a,function(a,e){e.path===b.path?c.push(e):d.push(e)}),this.error_holder)if(c.length){this.error_holder.innerHTML="",this.error_holder.style.display="",f(c,function(a,c){b.error_holder.appendChild(b.theme.getErrorMessage(c.message))})}else this.error_holder.style.display="none";this.options.table_row&&(c.length?this.theme.addTableRowError(this.container):this.theme.removeTableRowError(this.container)),f(this.editors,function(a,b){b.showValidationErrors(d)})}}),h.defaults.editors.array=h.AbstractEditor.extend({askConfirmation:function(){return this.jsoneditor.options.prompt_before_delete!==!0||confirm("Are you sure you want to remove this node?")!==!1},getDefault:function(){return this.schema["default"]||[]},register:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].register()},unregister:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].unregister()},getNumColumns:function(){var a=this.getItemInfo(0);return this.tabs_holder&&"tabs-top"!==this.schema.format?Math.max(Math.min(12,a.width+2),4):a.width},enable:function(){if(!this.always_disabled){if(this.add_row_button&&(this.add_row_button.disabled=!1),this.remove_all_rows_button&&(this.remove_all_rows_button.disabled=!1),this.delete_last_row_button&&(this.delete_last_row_button.disabled=!1),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].enable(),this.rows[a].moveup_button&&(this.rows[a].moveup_button.disabled=!1),this.rows[a].movedown_button&&(this.rows[a].movedown_button.disabled=!1),this.rows[a].delete_button&&(this.rows[a].delete_button.disabled=!1);this._super()}},disable:function(a){if(a&&(this.always_disabled=!0),this.add_row_button&&(this.add_row_button.disabled=!0),this.remove_all_rows_button&&(this.remove_all_rows_button.disabled=!0),this.delete_last_row_button&&(this.delete_last_row_button.disabled=!0),this.rows)for(var b=0;b<this.rows.length;b++)this.rows[b].disable(a),this.rows[b].moveup_button&&(this.rows[b].moveup_button.disabled=!0),this.rows[b].movedown_button&&(this.rows[b].movedown_button.disabled=!0),this.rows[b].delete_button&&(this.rows[b].delete_button.disabled=!0);this._super()},preBuild:function(){this._super(),this.rows=[],this.row_cache=[],this.hide_delete_buttons=this.options.disable_array_delete||this.jsoneditor.options.disable_array_delete,this.hide_delete_all_rows_buttons=this.hide_delete_buttons||this.options.disable_array_delete_all_rows||this.jsoneditor.options.disable_array_delete_all_rows,this.hide_delete_last_row_buttons=this.hide_delete_buttons||this.options.disable_array_delete_last_row||this.jsoneditor.options.disable_array_delete_last_row,this.hide_move_buttons=this.options.disable_array_reorder||this.jsoneditor.options.disable_array_reorder,this.hide_add_button=this.options.disable_array_add||this.jsoneditor.options.disable_array_add,this.show_copy_button=this.options.enable_array_copy||this.jsoneditor.options.enable_array_copy,this.array_controls_top=this.options.array_controls_top||this.jsoneditor.options.array_controls_top},build:function(){this.options.compact?(this.panel=this.theme.getIndentedPanel(),this.container.appendChild(this.panel),this.title_controls=this.theme.getHeaderButtonHolder(),this.panel.appendChild(this.title_controls),this.controls=this.theme.getButtonHolder(),this.panel.appendChild(this.controls),this.row_holder=document.createElement("div"),this.panel.appendChild(this.row_holder)):(this.header=document.createElement("span"),this.header.textContent=this.getTitle(),this.title=this.theme.getHeader(this.header),this.container.appendChild(this.title),this.title_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description),this.container.appendChild(this.description)),this.error_holder=document.createElement("div"),this.container.appendChild(this.error_holder),"tabs-top"===this.schema.format?(this.controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.controls),this.tabs_holder=this.theme.getTopTabHolder(this.getValidId(this.getItemTitle())),this.container.appendChild(this.tabs_holder),this.row_holder=this.theme.getTopTabContentHolder(this.tabs_holder),this.active_tab=null):"tabs"===this.schema.format?(this.controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.controls),this.tabs_holder=this.theme.getTabHolder(this.getValidId(this.getItemTitle())),this.container.appendChild(this.tabs_holder),this.row_holder=this.theme.getTabContentHolder(this.tabs_holder),this.active_tab=null):(this.panel=this.theme.getIndentedPanel(),this.container.appendChild(this.panel),this.row_holder=document.createElement("div"),this.panel.appendChild(this.row_holder),this.controls=this.theme.getButtonHolder(),this.array_controls_top?this.title.appendChild(this.controls):this.panel.appendChild(this.controls))),this.addControls()},onChildEditorChange:function(a){this.refreshValue(),this.refreshTabs(!0),this._super(a)},getItemTitle:function(){if(!this.item_title)if(this.schema.items&&!Array.isArray(this.schema.items)){var a=this.jsoneditor.expandRefs(this.schema.items);this.item_title=a.title||"item"}else this.item_title="item";return this.item_title},getItemSchema:function(a){return Array.isArray(this.schema.items)?a>=this.schema.items.length?this.schema.additionalItems===!0?{}:this.schema.additionalItems?e({},this.schema.additionalItems):void 0:e({},this.schema.items[a]):this.schema.items?e({},this.schema.items):{}},getItemInfo:function(a){var b=this.getItemSchema(a);this.item_info=this.item_info||{};var c=JSON.stringify(b);return"undefined"!=typeof this.item_info[c]?this.item_info[c]:(b=this.jsoneditor.expandRefs(b),this.item_info[c]={title:b.title||"item","default":b["default"],width:12,child_editors:b.properties||b.items},this.item_info[c])},getElementEditor:function(a){var b=this.getItemInfo(a),c=this.getItemSchema(a);c=this.jsoneditor.expandRefs(c),c.title=b.title+" "+(a+1);var d,e=this.jsoneditor.getEditorClass(c);this.tabs_holder?(d="tabs-top"===this.schema.format?this.theme.getTopTabContent():this.theme.getTabContent(),d.id=this.path+"."+a):d=b.child_editors?this.theme.getChildEditorHolder():this.theme.getIndentedPanel(),this.row_holder.appendChild(d);var f=this.jsoneditor.createEditor(e,{jsoneditor:this.jsoneditor,schema:c,container:d,path:this.path+"."+a,parent:this,required:!0});return f.preBuild(),f.build(),f.postBuild(),f.title_controls||(f.array_controls=this.theme.getButtonHolder(),d.appendChild(f.array_controls)),f},destroy:function(){this.empty(!0),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.row_holder&&this.row_holder.parentNode&&this.row_holder.parentNode.removeChild(this.row_holder),this.controls&&this.controls.parentNode&&this.controls.parentNode.removeChild(this.controls),this.panel&&this.panel.parentNode&&this.panel.parentNode.removeChild(this.panel),this.rows=this.row_cache=this.title=this.description=this.row_holder=this.panel=this.controls=null,this._super()},empty:function(a){if(this.rows){var b=this;f(this.rows,function(c,d){a&&(d.tab&&d.tab.parentNode&&d.tab.parentNode.removeChild(d.tab),b.destroyRow(d,!0),b.row_cache[c]=null),b.rows[c]=null}),b.rows=[],a&&(b.row_cache=[])}},destroyRow:function(a,b){var c=a.container;b?(a.destroy(),c.parentNode&&c.parentNode.removeChild(c),a.tab&&a.tab.parentNode&&a.tab.parentNode.removeChild(a.tab)):(a.tab&&(a.tab.style.display="none"),c.style.display="none",a.unregister())},getMax:function(){return Array.isArray(this.schema.items)&&this.schema.additionalItems===!1?Math.min(this.schema.items.length,this.schema.maxItems||1/0):this.schema.maxItems||1/0},refreshTabs:function(a){var b=this;f(this.rows,function(c,d){d.tab&&(a?d.tab_text.textContent=d.getHeaderText():d.tab===b.active_tab?b.theme.markTabActive(d):b.theme.markTabInactive(d))})},setValue:function(a,b){a=a||[],Array.isArray(a)||(a=[a]);var c=JSON.stringify(a);if(c!==this.serialized){if(this.schema.minItems)for(;a.length<this.schema.minItems;)a.push(this.getItemInfo(a.length)["default"]);this.getMax()&&a.length>this.getMax()&&(a=a.slice(0,this.getMax()));var d=this;f(a,function(a,c){d.rows[a]?d.rows[a].setValue(c,b):d.row_cache[a]?(d.rows[a]=d.row_cache[a],d.rows[a].setValue(c,b),d.rows[a].container.style.display="",d.rows[a].tab&&(d.rows[a].tab.style.display=""),d.rows[a].register()):d.addRow(c,b)});for(var e=a.length;e<d.rows.length;e++)d.destroyRow(d.rows[e]),d.rows[e]=null;d.rows=d.rows.slice(0,a.length);var g=null;f(d.rows,function(a,b){if(b.tab===d.active_tab)return g=b.tab,!1}),!g&&d.rows.length&&(g=d.rows[0].tab),d.active_tab=g,d.refreshValue(b),d.refreshTabs(!0),d.refreshTabs(),d.onChange()}},refreshValue:function(a){var b=this,c=this.value?this.value.length:0;if(this.value=[],f(this.rows,function(a,c){b.value[a]=c.getValue()}),c!==this.value.length||a){var d=this.schema.minItems&&this.schema.minItems>=this.rows.length;f(this.rows,function(a,c){c.movedown_button&&(a===b.rows.length-1?c.movedown_button.style.display="none":c.movedown_button.style.display=""),c.delete_button&&(d?c.delete_button.style.display="none":c.delete_button.style.display=""),b.value[a]=c.getValue()});var e=!1;this.value.length?1===this.value.length?(this.remove_all_rows_button.style.display="none",d||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",e=!0)):(d||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",e=!0),d||this.hide_delete_all_rows_buttons?this.remove_all_rows_button.style.display="none":(this.remove_all_rows_button.style.display="",e=!0)):(this.delete_last_row_button.style.display="none",this.remove_all_rows_button.style.display="none"),this.getMax()&&this.getMax()<=this.rows.length||this.hide_add_button?this.add_row_button.style.display="none":(this.add_row_button.style.display="",e=!0),!this.collapsed&&e?this.controls.style.display="inline-block":this.controls.style.display="none"}},addRow:function(a,b){var c=this,d=this.rows.length;c.rows[d]=this.getElementEditor(d),c.row_cache[d]=c.rows[d],c.tabs_holder&&(c.rows[d].tab_text=document.createElement("span"),c.rows[d].tab_text.textContent=c.rows[d].getHeaderText(),"tabs-top"===c.schema.format?(c.rows[d].tab=c.theme.getTopTab(c.rows[d].tab_text,this.getValidId(c.rows[d].path)),c.theme.addTopTab(c.tabs_holder,c.rows[d].tab)):(c.rows[d].tab=c.theme.getTab(c.rows[d].tab_text,this.getValidId(c.rows[d].path)),c.theme.addTab(c.tabs_holder,c.rows[d].tab)),c.rows[d].tab.addEventListener("click",function(a){c.active_tab=c.rows[d].tab,c.refreshTabs(),a.preventDefault(),a.stopPropagation()}));var e=c.rows[d].title_controls||c.rows[d].array_controls;c.hide_delete_buttons||(c.rows[d].delete_button=this.getButton(c.getItemTitle(),"delete",this.translate("button_delete_row_title",[c.getItemTitle()])),c.rows[d].delete_button.classList.add("delete","json-editor-btntype-delete"),c.rows[d].delete_button.setAttribute("data-i",d),c.rows[d].delete_button.addEventListener("click",function(a){if(a.preventDefault(),a.stopPropagation(),!c.askConfirmation())return!1;var b=1*this.getAttribute("data-i"),d=c.getValue(),e=[],g=null;f(d,function(a,c){a!==b&&e.push(c)}),c.empty(!0),c.setValue(e),c.rows[b]?g=c.rows[b].tab:c.rows[b-1]&&(g=c.rows[b-1].tab),g&&(c.active_tab=g,c.refreshTabs()),c.onChange(!0),c.jsoneditor.trigger("deleteRow")}),e&&e.appendChild(c.rows[d].delete_button)),c.show_copy_button&&(c.rows[d].copy_button=this.getButton(c.getItemTitle(),"copy","Copy "+c.getItemTitle()),c.rows[d].copy_button.classList.add("copy","json-editor-btntype-copy"),c.rows[d].copy_button.setAttribute("data-i",d),c.rows[d].copy_button.addEventListener("click",function(a){var b=c.getValue();a.preventDefault(),a.stopPropagation();var d=1*this.getAttribute("data-i");f(b,function(a,c){a===d&&b.push(c)}),c.setValue(b),c.refreshValue(!0),c.onChange(!0)}),e.appendChild(c.rows[d].copy_button)),d&&!c.hide_move_buttons&&(c.rows[d].moveup_button=this.getButton("","moveup",this.translate("button_move_up_title")),c.rows[d].moveup_button.classList.add("moveup","json-editor-btntype-move"),c.rows[d].moveup_button.setAttribute("data-i",d),c.rows[d].moveup_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var b=1*this.getAttribute("data-i");if(!(b<=0)){var d=c.getValue(),e=d[b-1];d[b-1]=d[b],d[b]=e,c.setValue(d),c.active_tab=c.rows[b-1].tab,c.refreshTabs(),c.onChange(!0),c.jsoneditor.trigger("moveRow")}}),e&&e.appendChild(c.rows[d].moveup_button)),c.hide_move_buttons||(c.rows[d].movedown_button=this.getButton("","movedown",this.translate("button_move_down_title")),c.rows[d].movedown_button.classList.add("movedown","json-editor-btntype-move"),c.rows[d].movedown_button.setAttribute("data-i",d),c.rows[d].movedown_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var b=1*this.getAttribute("data-i"),d=c.getValue();if(!(b>=d.length-1)){var e=d[b+1];d[b+1]=d[b],d[b]=e,c.setValue(d),c.active_tab=c.rows[b+1].tab,c.refreshTabs(),c.onChange(!0),c.jsoneditor.trigger("moveRow")}}),e&&e.appendChild(c.rows[d].movedown_button)),a&&c.rows[d].setValue(a,b),c.refreshTabs()},addControls:function(){var a=this;this.collapsed=!1,this.toggle_button=this.getButton("","collapse",this.translate("button_collapse")),this.toggle_button.classList.add("json-editor-btntype-toggle"),this.title_controls.appendChild(this.toggle_button);var b=a.row_holder.style.display,c=a.controls.style.display;this.toggle_button.addEventListener("click",function(d){d.preventDefault(),d.stopPropagation(),a.collapsed?(a.collapsed=!1,a.panel&&(a.panel.style.display=""),a.row_holder.style.display=b,a.tabs_holder&&(a.tabs_holder.style.display=""),a.controls.style.display=c,a.setButtonText(this,"","collapse",a.translate("button_collapse"))):(a.collapsed=!0,a.row_holder.style.display="none",a.tabs_holder&&(a.tabs_holder.style.display="none"),a.controls.style.display="none",a.panel&&(a.panel.style.display="none"),a.setButtonText(this,"","expand",a.translate("button_expand")))}),this.options.collapsed&&g(this.toggle_button,"click"),this.schema.options&&"undefined"!=typeof this.schema.options.disable_collapse?this.schema.options.disable_collapse&&(this.toggle_button.style.display="none"):this.jsoneditor.options.disable_collapse&&(this.toggle_button.style.display="none"),this.add_row_button=this.getButton(this.getItemTitle(),"add",this.translate("button_add_row_title",[this.getItemTitle()])),this.add_row_button.classList.add("json-editor-btntype-add"),this.add_row_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation();var c=a.rows.length;a.row_cache[c]?(a.rows[c]=a.row_cache[c],a.rows[c].setValue(a.rows[c].getDefault(),!0),a.rows[c].container.style.display="",a.rows[c].tab&&(a.rows[c].tab.style.display=""),a.rows[c].register()):a.addRow(),a.active_tab=a.rows[c].tab,a.refreshTabs(),a.refreshValue(),a.onChange(!0),a.jsoneditor.trigger("addRow")}),a.controls.appendChild(this.add_row_button),this.delete_last_row_button=this.getButton(this.translate("button_delete_last",[this.getItemTitle()]),"delete",this.translate("button_delete_last_title",[this.getItemTitle()])),this.delete_last_row_button.classList.add("json-editor-btntype-deletelast"),this.delete_last_row_button.addEventListener("click",function(b){if(b.preventDefault(),b.stopPropagation(),!a.askConfirmation())return!1;var c=a.getValue(),d=null;c.pop(),a.empty(!0),a.setValue(c),a.rows[a.rows.length-1]&&(d=a.rows[a.rows.length-1].tab),d&&(a.active_tab=d,a.refreshTabs()),a.onChange(!0),a.jsoneditor.trigger("deleteRow")}),a.controls.appendChild(this.delete_last_row_button),this.remove_all_rows_button=this.getButton(this.translate("button_delete_all"),"delete",this.translate("button_delete_all_title")),this.remove_all_rows_button.classList.add("json-editor-btntype-deleteall"),this.remove_all_rows_button.addEventListener("click",function(b){return b.preventDefault(),b.stopPropagation(),!!a.askConfirmation()&&(a.empty(!0),a.setValue([]),a.onChange(!0),void a.jsoneditor.trigger("deleteAllRows"))}),a.controls.appendChild(this.remove_all_rows_button),a.tabs&&(this.add_row_button.style.width="100%",this.add_row_button.style.textAlign="left",this.add_row_button.style.marginBottom="3px",this.delete_last_row_button.style.width="100%",this.delete_last_row_button.style.textAlign="left",this.delete_last_row_button.style.marginBottom="3px",this.remove_all_rows_button.style.width="100%",this.remove_all_rows_button.style.textAlign="left",this.remove_all_rows_button.style.marginBottom="3px")},showValidationErrors:function(a){var b=this,c=[],d=[];if(f(a,function(a,e){e.path===b.path?c.push(e):d.push(e)}),this.error_holder)if(c.length){this.error_holder.innerHTML="",this.error_holder.style.display="",f(c,function(a,c){b.error_holder.appendChild(b.theme.getErrorMessage(c.message))})}else this.error_holder.style.display="none";f(this.rows,function(a,b){b.showValidationErrors(d)})}}),h.defaults.editors.table=h.defaults.editors.array.extend({register:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].register()},unregister:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].unregister()},getNumColumns:function(){return Math.max(Math.min(12,this.width),3)},preBuild:function(){var a=this.jsoneditor.expandRefs(this.schema.items||{});this.item_title=a.title||"row",this.item_default=a["default"]||null,this.item_has_child_editors=a.properties||a.items,this.width=12,this._super()},build:function(){var a=this;this.table=this.theme.getTable(),this.container.appendChild(this.table),this.thead=this.theme.getTableHead(),this.table.appendChild(this.thead),this.header_row=this.theme.getTableRow(),this.thead.appendChild(this.header_row),this.row_holder=this.theme.getTableBody(),this.table.appendChild(this.row_holder);var b=this.getElementEditor(0,!0);if(this.item_default=b.getDefault(),this.width=b.getNumColumns()+2,this.options.compact?(this.panel=document.createElement("div"),this.container.appendChild(this.panel)):(this.title=this.theme.getHeader(this.getTitle()),this.container.appendChild(this.title),this.title_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description),this.container.appendChild(this.description)),this.panel=this.theme.getIndentedPanel(),this.container.appendChild(this.panel),this.error_holder=document.createElement("div"),this.panel.appendChild(this.error_holder)),this.panel.appendChild(this.table),this.controls=this.theme.getButtonHolder(),this.panel.appendChild(this.controls),this.item_has_child_editors)for(var c=b.getChildEditors(),d=b.property_order||Object.keys(c),e=0;e<d.length;e++){var f=a.theme.getTableHeaderCell(c[d[e]].getTitle());c[d[e]].options.hidden&&(f.style.display="none"),a.header_row.appendChild(f)}else a.header_row.appendChild(a.theme.getTableHeaderCell(this.item_title));b.destroy(),this.row_holder.innerHTML="",this.controls_header_cell=a.theme.getTableHeaderCell(" "),a.header_row.appendChild(this.controls_header_cell),this.addControls()},onChildEditorChange:function(a){this.refreshValue(),this._super()},getItemDefault:function(){return e({},{"default":this.item_default})["default"]},getItemTitle:function(){return this.item_title},getElementEditor:function(a,b){var c=e({},this.schema.items),d=this.jsoneditor.getEditorClass(c,this.jsoneditor),f=this.row_holder.appendChild(this.theme.getTableRow()),g=f;this.item_has_child_editors||(g=this.theme.getTableCell(),f.appendChild(g));var h=this.jsoneditor.createEditor(d,{jsoneditor:this.jsoneditor,schema:c,container:g,path:this.path+"."+a,parent:this,compact:!0,table_row:!0});return h.preBuild(),b||(h.build(),h.postBuild(),h.controls_cell=f.appendChild(this.theme.getTableCell()),h.row=f,h.table_controls=this.theme.getButtonHolder(),h.controls_cell.appendChild(h.table_controls),h.table_controls.style.margin=0,h.table_controls.style.padding=0),h},destroy:function(){this.innerHTML="",this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.row_holder&&this.row_holder.parentNode&&this.row_holder.parentNode.removeChild(this.row_holder),this.table&&this.table.parentNode&&this.table.parentNode.removeChild(this.table),this.panel&&this.panel.parentNode&&this.panel.parentNode.removeChild(this.panel),this.rows=this.title=this.description=this.row_holder=this.table=this.panel=null,this._super()},setValue:function(a,b){if(a=a||[],this.schema.minItems)for(;a.length<this.schema.minItems;)a.push(this.getItemDefault());this.schema.maxItems&&a.length>this.schema.maxItems&&(a=a.slice(0,this.schema.maxItems));var c=JSON.stringify(a);if(c!==this.serialized){var d=!1,e=this;f(a,function(a,b){e.rows[a]?e.rows[a].setValue(b):(e.addRow(b),d=!0)});for(var g=a.length;g<e.rows.length;g++){var h=e.rows[g].container;e.item_has_child_editors||e.rows[g].row.parentNode.removeChild(e.rows[g].row),e.rows[g].destroy(),h.parentNode&&h.parentNode.removeChild(h),e.rows[g]=null,d=!0}e.rows=e.rows.slice(0,a.length),e.refreshValue(),(d||b)&&e.refreshRowButtons(),e.onChange()}},refreshRowButtons:function(){var a=this,b=this.schema.minItems&&this.schema.minItems>=this.rows.length,c=!1;f(this.rows,function(d,e){e.movedown_button&&(d===a.rows.length-1?e.movedown_button.style.display="none":(c=!0,e.movedown_button.style.display="")),e.delete_button&&(b?e.delete_button.style.display="none":(c=!0,e.delete_button.style.display="")),e.moveup_button&&(c=!0)}),f(this.rows,function(a,b){c?b.controls_cell.style.display="":b.controls_cell.style.display="none"}),c?this.controls_header_cell.style.display="":this.controls_header_cell.style.display="none";var d=!1;this.value.length?1===this.value.length?(this.table.style.display="",this.remove_all_rows_button.style.display="none",b||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",d=!0)):(this.table.style.display="",b||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",d=!0),b||this.hide_delete_all_rows_buttons?this.remove_all_rows_button.style.display="none":(this.remove_all_rows_button.style.display="",d=!0)):(this.delete_last_row_button.style.display="none",this.remove_all_rows_button.style.display="none",this.table.style.display="none"),this.schema.maxItems&&this.schema.maxItems<=this.rows.length||this.hide_add_button?this.add_row_button.style.display="none":(this.add_row_button.style.display="",d=!0),d?this.controls.style.display="":this.controls.style.display="none"},refreshValue:function(){var a=this;this.value=[],f(this.rows,function(b,c){a.value[b]=c.getValue()}),this.serialized=JSON.stringify(this.value)},addRow:function(a){var b=this,c=this.rows.length;b.rows[c]=this.getElementEditor(c);var d=b.rows[c].table_controls;this.hide_delete_buttons||(b.rows[c].delete_button=this.getButton("","delete",this.translate("button_delete_row_title_short")),b.rows[c].delete_button.classList.add("delete","json-editor-btntype-delete"),b.rows[c].delete_button.setAttribute("data-i",c),b.rows[c].delete_button.addEventListener("click",function(a){if(a.preventDefault(),a.stopPropagation(),!b.askConfirmation())return!1;var c=1*this.getAttribute("data-i"),d=b.getValue(),e=[];f(d,function(a,b){a!==c&&e.push(b)}),b.setValue(e),b.onChange(!0)}),d.appendChild(b.rows[c].delete_button)),c&&!this.hide_move_buttons&&(b.rows[c].moveup_button=this.getButton("","moveup",this.translate("button_move_up_title")),b.rows[c].moveup_button.classList.add("moveup","json-editor-btntype-move"),b.rows[c].moveup_button.setAttribute("data-i",c),b.rows[c].moveup_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var c=1*this.getAttribute("data-i");if(!(c<=0)){var d=b.getValue(),e=d[c-1];d[c-1]=d[c],d[c]=e,b.setValue(d),b.onChange(!0)}}),d.appendChild(b.rows[c].moveup_button)),this.hide_move_buttons||(b.rows[c].movedown_button=this.getButton("","movedown",this.translate("button_move_down_title")),b.rows[c].movedown_button.classList.add("movedown","json-editor-btntype-move"),b.rows[c].movedown_button.setAttribute("data-i",c),b.rows[c].movedown_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var c=1*this.getAttribute("data-i"),d=b.getValue();if(!(c>=d.length-1)){var e=d[c+1];d[c+1]=d[c],d[c]=e,b.setValue(d),b.onChange(!0)}}),d.appendChild(b.rows[c].movedown_button)),a&&b.rows[c].setValue(a)},addControls:function(){var a=this;this.collapsed=!1,this.toggle_button=this.getButton("","collapse",this.translate("button_collapse")),this.toggle_button.classList.add("json-editor-btntype-toggle"),this.title_controls&&(this.title_controls.appendChild(this.toggle_button),this.toggle_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.collapsed?(a.collapsed=!1,a.panel.style.display="",a.setButtonText(this,"","collapse",a.translate("button_collapse"))):(a.collapsed=!0,a.panel.style.display="none",a.setButtonText(this,"","expand",a.translate("button_expand")))}),this.options.collapsed&&g(this.toggle_button,"click"),this.schema.options&&"undefined"!=typeof this.schema.options.disable_collapse?this.schema.options.disable_collapse&&(this.toggle_button.style.display="none"):this.jsoneditor.options.disable_collapse&&(this.toggle_button.style.display="none")),this.add_row_button=this.getButton(this.getItemTitle(),"add",this.translate("button_add_row_title",[this.getItemTitle()])),this.add_row_button.classList.add("json-editor-btntype-add"),this.add_row_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.addRow(),a.refreshValue(),a.refreshRowButtons(),a.onChange(!0)}),a.controls.appendChild(this.add_row_button),this.delete_last_row_button=this.getButton(this.translate("button_delete_last",[this.getItemTitle()]),"delete",this.translate("button_delete_last_title",[this.getItemTitle()])),this.delete_last_row_button.classList.add("json-editor-btntype-deletelast"),this.delete_last_row_button.addEventListener("click",function(b){if(b.preventDefault(),b.stopPropagation(),!a.askConfirmation())return!1;var c=a.getValue();c.pop(),a.setValue(c),a.onChange(!0)}),a.controls.appendChild(this.delete_last_row_button),this.remove_all_rows_button=this.getButton(this.translate("button_delete_all"),"delete",this.translate("button_delete_all_title")),
          this.remove_all_rows_button.classList.add("json-editor-btntype-deleteall"),this.remove_all_rows_button.addEventListener("click",function(b){return b.preventDefault(),b.stopPropagation(),!!a.askConfirmation()&&(a.setValue([]),void a.onChange(!0))}),a.controls.appendChild(this.remove_all_rows_button)}}),h.defaults.editors.multiple=h.AbstractEditor.extend({register:function(){if(this.editors){for(var a=0;a<this.editors.length;a++)this.editors[a]&&this.editors[a].unregister();this.editors[this.type]&&this.editors[this.type].register()}this._super()},unregister:function(){if(this._super(),this.editors)for(var a=0;a<this.editors.length;a++)this.editors[a]&&this.editors[a].unregister()},getNumColumns:function(){return this.editors[this.type]?Math.max(this.editors[this.type].getNumColumns(),4):4},enable:function(){if(!this.always_disabled){if(this.editors)for(var a=0;a<this.editors.length;a++)this.editors[a]&&this.editors[a].enable();this.switcher.disabled=!1,this._super()}},disable:function(a){if(a&&(this.always_disabled=!0),this.editors)for(var b=0;b<this.editors.length;b++)this.editors[b]&&this.editors[b].disable(a);this.switcher.disabled=!0,this._super()},switchEditor:function(a){var b=this;this.editors[a]||this.buildChildEditor(a);var c=b.getValue();b.type=a,b.register(),f(b.editors,function(a,d){d&&(b.type===a?(b.keep_values&&d.setValue(c,!0),d.container.style.display=""):d.container.style.display="none")}),b.refreshValue(),b.refreshHeaderText()},buildChildEditor:function(a){var b=this,c=this.types[a],d=b.theme.getChildEditorHolder();b.editor_holder.appendChild(d);var f;"string"==typeof c?(f=e({},b.schema),f.type=c):(f=e({},b.schema,c),f=b.jsoneditor.expandRefs(f),c&&c.required&&Array.isArray(c.required)&&b.schema.required&&Array.isArray(b.schema.required)&&(f.required=b.schema.required.concat(c.required)));var g=b.jsoneditor.getEditorClass(f);b.editors[a]=b.jsoneditor.createEditor(g,{jsoneditor:b.jsoneditor,schema:f,container:d,path:b.path,parent:b,required:!0}),b.editors[a].preBuild(),b.editors[a].build(),b.editors[a].postBuild(),b.editors[a].header&&(b.editors[a].header.style.display="none"),b.editors[a].option=b.switcher_options[a],d.addEventListener("change_header_text",function(){b.refreshHeaderText()}),a!==b.type&&(d.style.display="none")},preBuild:function(){if(this.types=[],this.type=0,this.editors=[],this.validators=[],this.keep_values=!0,"undefined"!=typeof this.jsoneditor.options.keep_oneof_values&&(this.keep_values=this.jsoneditor.options.keep_oneof_values),"undefined"!=typeof this.options.keep_oneof_values&&(this.keep_values=this.options.keep_oneof_values),this.schema.oneOf)this.oneOf=!0,this.types=this.schema.oneOf,delete this.schema.oneOf;else if(this.schema.anyOf)this.anyOf=!0,this.types=this.schema.anyOf,delete this.schema.anyOf;else{if(this.schema.type&&"any"!==this.schema.type)Array.isArray(this.schema.type)?this.types=this.schema.type:this.types=[this.schema.type];else if(this.types=["string","number","integer","boolean","object","array","null"],this.schema.disallow){var a=this.schema.disallow;"object"==typeof a&&Array.isArray(a)||(a=[a]);var b=[];f(this.types,function(c,d){a.indexOf(d)===-1&&b.push(d)}),this.types=b}delete this.schema.type}this.display_text=this.getDisplayText(this.types)},build:function(){var a=this,b=this.container;this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.container.appendChild(this.header),this.switcher=this.theme.getSwitcher(this.display_text),b.appendChild(this.switcher),this.switcher.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.switchEditor(a.display_text.indexOf(this.value)),a.onChange(!0)}),this.editor_holder=document.createElement("div"),b.appendChild(this.editor_holder);var c={};a.jsoneditor.options.custom_validators&&(c.custom_validators=a.jsoneditor.options.custom_validators),this.switcher_options=this.theme.getSwitcherOptions(this.switcher),f(this.types,function(b,d){a.editors[b]=!1;var f;"string"==typeof d?(f=e({},a.schema),f.type=d):(f=e({},a.schema,d),d.required&&Array.isArray(d.required)&&a.schema.required&&Array.isArray(a.schema.required)&&(f.required=a.schema.required.concat(d.required))),a.validators[b]=new h.Validator(a.jsoneditor,f,c)}),this.switchEditor(0)},onChildEditorChange:function(a){this.editors[this.type]&&(this.refreshValue(),this.refreshHeaderText()),this._super()},refreshHeaderText:function(){var a=this.getDisplayText(this.types);f(this.switcher_options,function(b,c){c.textContent=a[b]})},refreshValue:function(){this.value=this.editors[this.type].getValue()},setValue:function(a,b){var c=this,d=this.type;f(this.validators,function(b,d){if(!d.validate(a).length)return c.type=b,c.switcher.value=c.display_text[b],!1});var e=this.type!=d;e&&this.switchEditor(this.type),this.editors[this.type].setValue(a,b),this.refreshValue(),c.onChange(e)},destroy:function(){f(this.editors,function(a,b){b&&b.destroy()}),this.editor_holder&&this.editor_holder.parentNode&&this.editor_holder.parentNode.removeChild(this.editor_holder),this.switcher&&this.switcher.parentNode&&this.switcher.parentNode.removeChild(this.switcher),this._super()},showValidationErrors:function(a){var b=this;if(this.oneOf||this.anyOf){var c=this.oneOf?"oneOf":"anyOf";f(this.editors,function(d,g){if(g){var h=b.path+"."+c+"["+d+"]",i=[];f(a,function(a,c){if(c.path.substr(0,h.length)===h){var d=e({},c);d.path=b.path+d.path.substr(h.length),i.push(d)}}),g.showValidationErrors(i)}})}else f(this.editors,function(b,c){c&&c.showValidationErrors(a)})}}),h.defaults.editors["enum"]=h.AbstractEditor.extend({getNumColumns:function(){return 4},build:function(){this.container;this.title=this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.container.appendChild(this.title),this.options.enum_titles=this.options.enum_titles||[],this["enum"]=this.schema["enum"],this.selected=0,this.select_options=[],this.html_values=[];for(var a=this,b=0;b<this["enum"].length;b++)this.select_options[b]=this.options.enum_titles[b]||"Value "+(b+1),this.html_values[b]=this.getHTML(this["enum"][b]);this.switcher=this.theme.getSwitcher(this.select_options),this.container.appendChild(this.switcher),this.display_area=this.theme.getIndentedPanel(),this.container.appendChild(this.display_area),this.options.hide_display&&(this.display_area.style.display="none"),this.switcher.addEventListener("change",function(){a.selected=a.select_options.indexOf(this.value),a.value=a["enum"][a.selected],a.refreshValue(),a.onChange(!0)}),this.value=this["enum"][0],this.refreshValue(),1===this["enum"].length&&(this.switcher.style.display="none")},refreshValue:function(){var a=this;a.selected=-1;var b=JSON.stringify(this.value);return f(this["enum"],function(c,d){if(b===JSON.stringify(d))return a.selected=c,!1}),a.selected<0?void a.setValue(a["enum"][0]):(this.switcher.value=this.select_options[this.selected],void(this.display_area.innerHTML=this.html_values[this.selected]))},enable:function(){this.always_disabled||(this.switcher.disabled=!1,this._super())},disable:function(a){a&&(this.always_disabled=!0),this.switcher.disabled=!0,this._super()},getHTML:function(a){var b=this;if(null===a)return"<em>null</em>";if("object"==typeof a){var c="";return f(a,function(d,e){var f=b.getHTML(e);Array.isArray(a)||(f="<div><em>"+d+"</em>: "+f+"</div>"),c+="<li>"+f+"</li>"}),c=Array.isArray(a)?"<ol>"+c+"</ol>":"<ul style='margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;'>"+c+"</ul>"}return"boolean"==typeof a?a?"true":"false":"string"==typeof a?a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"):a},setValue:function(a){this.value!==a&&(this.value=a,this.refreshValue(),this.onChange())},destroy:function(){this.display_area&&this.display_area.parentNode&&this.display_area.parentNode.removeChild(this.display_area),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.switcher&&this.switcher.parentNode&&this.switcher.parentNode.removeChild(this.switcher),this._super()}}),h.defaults.editors.select=h.AbstractEditor.extend({setValue:function(a,b){a=this.typecast(a||"");var c=a;this.enum_values.indexOf(c)<0&&(c=this.enum_values[0]),this.value!==c&&(b?this.is_dirty=!1:"change"===this.jsoneditor.options.show_errors&&(this.is_dirty=!0),this.input.value=this.enum_options[this.enum_values.indexOf(c)],this.select2&&(this.select2v4?this.select2.val(this.input.value).trigger("change"):this.select2.select2("val",this.input.value)),this.value=c,this.onChange(),this.change())},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){if(!this.enum_options)return 3;for(var a=this.getTitle().length,b=0;b<this.enum_options.length;b++)a=Math.max(a,this.enum_options[b].length+4);return Math.min(12,Math.max(a/7,2))},typecast:function(a){return"boolean"===this.schema.type?!!a:"number"===this.schema.type?1*a:"integer"===this.schema.type?Math.floor(1*a):""+a},getValue:function(){return this.dependenciesFulfilled?this.typecast(this.value):b},preBuild:function(){var a=this;this.input_type="select",this.enum_options=[],this.enum_values=[],this.enum_display=[];var c;if(this.schema["enum"]){var d=this.schema.options&&this.schema.options.enum_titles||[];f(this.schema["enum"],function(b,c){a.enum_options[b]=""+c,a.enum_display[b]=""+(d[b]||c),a.enum_values[b]=a.typecast(c)}),this.isRequired()||(a.enum_display.unshift(" "),a.enum_options.unshift("undefined"),a.enum_values.unshift(b))}else if("boolean"===this.schema.type)a.enum_display=this.schema.options&&this.schema.options.enum_titles||["true","false"],a.enum_options=["1",""],a.enum_values=[!0,!1],this.isRequired()||(a.enum_display.unshift(" "),a.enum_options.unshift("undefined"),a.enum_values.unshift(b));else{if(!this.schema.enumSource)throw"'select' editor requires the enum property to be set.";if(this.enumSource=[],this.enum_display=[],this.enum_options=[],this.enum_values=[],Array.isArray(this.schema.enumSource))for(c=0;c<this.schema.enumSource.length;c++)"string"==typeof this.schema.enumSource[c]?this.enumSource[c]={source:this.schema.enumSource[c]}:Array.isArray(this.schema.enumSource[c])?this.enumSource[c]=this.schema.enumSource[c]:this.enumSource[c]=e({},this.schema.enumSource[c]);else this.schema.enumValue?this.enumSource=[{source:this.schema.enumSource,value:this.schema.enumValue}]:this.enumSource=[{source:this.schema.enumSource}];for(c=0;c<this.enumSource.length;c++)this.enumSource[c].value&&(this.enumSource[c].value=this.jsoneditor.compileTemplate(this.enumSource[c].value,this.template_engine)),this.enumSource[c].title&&(this.enumSource[c].title=this.jsoneditor.compileTemplate(this.enumSource[c].title,this.template_engine)),this.enumSource[c].filter&&(this.enumSource[c].filter=this.jsoneditor.compileTemplate(this.enumSource[c].filter,this.template_engine))}},build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.input=this.theme.getSelectInput(this.enum_options),this.theme.setSelectOptions(this.input,this.enum_options,this.enum_display),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.setInputAttributes([]),this.input.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.onInputChange()}),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),this.container.appendChild(this.control),this.value=this.enum_values[0]},onInputChange:function(){var a,b=this.typecast(this.input.value);a=this.enum_values.indexOf(b)===-1?this.enum_values[0]:this.enum_values[this.enum_values.indexOf(b)],a!==this.value&&(this.is_dirty=!0,this.value=a,this.onChange(!0))},setupSelect2:function(){if(window.jQuery&&window.jQuery.fn&&window.jQuery.fn.select2&&(this.enum_options.length>2||this.enum_options.length&&this.enumSource)){var a=e({},h.plugins.select2);this.schema.options&&this.schema.options.select2_options&&(a=e(a,this.schema.options.select2_options)),this.select2=window.jQuery(this.input).select2(a),this.select2v4=this.select2.select2.hasOwnProperty("amd");var b=this;this.select2.on("select2-blur",function(){b.select2v4?b.input.value=b.select2.val():b.input.value=b.select2.select2("val"),b.onInputChange()}),this.select2.on("change",function(){b.select2v4?b.input.value=b.select2.val():b.input.value=b.select2.select2("val"),b.onInputChange()})}else this.select2=null},postBuild:function(){this._super(),this.theme.afterInputReady(this.input),this.setupSelect2()},onWatchedFieldChange:function(){var a,b;if(this.enumSource){a=this.getWatchedFieldValues();for(var c=[],d=[],e=0;e<this.enumSource.length;e++)if(Array.isArray(this.enumSource[e]))c=c.concat(this.enumSource[e]),d=d.concat(this.enumSource[e]);else{var f=[];if(f=Array.isArray(this.enumSource[e].source)?this.enumSource[e].source:a[this.enumSource[e].source]){if(this.enumSource[e].slice&&(f=Array.prototype.slice.apply(f,this.enumSource[e].slice)),this.enumSource[e].filter){var g=[];for(b=0;b<f.length;b++)this.enumSource[e].filter({i:b,item:f[b],watched:a})&&g.push(f[b]);f=g}var h=[],i=[];for(b=0;b<f.length;b++){var j=f[b];this.enumSource[e].value?i[b]=this.typecast(this.enumSource[e].value({i:b,item:j})):i[b]=f[b],this.enumSource[e].title?h[b]=this.enumSource[e].title({i:b,item:j}):h[b]=i[b]}c=c.concat(i),d=d.concat(h)}}var k=this.value;this.theme.setSelectOptions(this.input,c,d),this.enum_options=c,this.enum_display=d,this.enum_values=c,this.select2&&this.select2.select2("destroy"),c.indexOf(k)!==-1?(this.input.value=k,this.value=k):(this.input.value=c[0],this.value=this.typecast(c[0]||""),this.parent?this.parent.onChildEditorChange(this):this.jsoneditor.onChange(),this.jsoneditor.notifyWatchers(this.path)),this.setupSelect2()}this._super()},enable:function(){this.always_disabled||(this.input.disabled=!1,this.select2&&(this.select2v4?this.select2.prop("disabled",!1):this.select2.select2("enable",!0))),this._super()},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this.select2&&(this.select2v4?this.select2.prop("disabled",!0):this.select2.select2("enable",!1)),this._super()},destroy:function(){this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.select2&&(this.select2.select2("destroy"),this.select2=null),this._super()},showValidationErrors:function(a){var b=this;if("always"===this.jsoneditor.options.show_errors);else if(!this.is_dirty&&this.previous_error_setting===this.jsoneditor.options.show_errors)return;this.previous_error_setting=this.jsoneditor.options.show_errors;var c=[];f(a,function(a,d){d.path===b.path&&c.push(d.message)}),c.length?this.theme.addInputError(this.input,c.join(". ")+"."):this.theme.removeInputError(this.input)}}),h.defaults.editors.selectize=h.AbstractEditor.extend({setValue:function(a,b){a=this.typecast(a||"");var c=a;this.enum_values.indexOf(c)<0&&(c=this.enum_values[0]),this.value!==c&&(this.input.value=this.enum_options[this.enum_values.indexOf(c)],this.selectize&&this.selectize[0].selectize.addItem(c),this.value=c,this.onChange())},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){if(!this.enum_options)return 3;for(var a=this.getTitle().length,b=0;b<this.enum_options.length;b++)a=Math.max(a,this.enum_options[b].length+4);return Math.min(12,Math.max(a/7,2))},typecast:function(a){return"boolean"===this.schema.type?!!a:"number"===this.schema.type?1*a:"integer"===this.schema.type?Math.floor(1*a):""+a},getValue:function(){return this.dependenciesFulfilled?this.value:b},preBuild:function(){var a=this;this.input_type="select",this.enum_options=[],this.enum_values=[],this.enum_display=[];var b;if(this.schema["enum"]){var c=this.schema.options&&this.schema.options.enum_titles||[];f(this.schema["enum"],function(b,d){a.enum_options[b]=""+d,a.enum_display[b]=""+(c[b]||d),a.enum_values[b]=a.typecast(d)})}else if("boolean"===this.schema.type)a.enum_display=this.schema.options&&this.schema.options.enum_titles||["true","false"],a.enum_options=["1","0"],a.enum_values=[!0,!1];else{if(!this.schema.enumSource)throw"'select' editor requires the enum property to be set.";if(this.enumSource=[],this.enum_display=[],this.enum_options=[],this.enum_values=[],Array.isArray(this.schema.enumSource))for(b=0;b<this.schema.enumSource.length;b++)"string"==typeof this.schema.enumSource[b]?this.enumSource[b]={source:this.schema.enumSource[b]}:Array.isArray(this.schema.enumSource[b])?this.enumSource[b]=this.schema.enumSource[b]:this.enumSource[b]=e({},this.schema.enumSource[b]);else this.schema.enumValue?this.enumSource=[{source:this.schema.enumSource,value:this.schema.enumValue}]:this.enumSource=[{source:this.schema.enumSource}];for(b=0;b<this.enumSource.length;b++)this.enumSource[b].value&&(this.enumSource[b].value=this.jsoneditor.compileTemplate(this.enumSource[b].value,this.template_engine)),this.enumSource[b].title&&(this.enumSource[b].title=this.jsoneditor.compileTemplate(this.enumSource[b].title,this.template_engine)),this.enumSource[b].filter&&(this.enumSource[b].filter=this.jsoneditor.compileTemplate(this.enumSource[b].filter,this.template_engine))}},build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.input=this.theme.getSelectInput(this.enum_options),this.theme.setSelectOptions(this.input,this.enum_options,this.enum_display),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.input.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.onInputChange()}),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),this.container.appendChild(this.control),this.value=this.enum_values[0]},onInputChange:function(){var a=this.input.value,b=a;this.enum_options.indexOf(a)===-1&&(b=this.enum_options[0]),this.value=a,this.onChange(!0)},setupSelectize:function(){var a=this;if(window.jQuery&&window.jQuery.fn&&window.jQuery.fn.selectize&&(this.enum_options.length>=2||this.enum_options.length&&this.enumSource)){var c=e({},h.plugins.selectize);this.schema.options&&this.schema.options.selectize_options&&(c=e(c,this.schema.options.selectize_options)),this.selectize=window.jQuery(this.input).selectize(e(c,{create:c.create===b||c.create,onChange:function(){a.onInputChange()}}))}else this.selectize=null},postBuild:function(){this._super(),this.theme.afterInputReady(this.input),this.setupSelectize()},onWatchedFieldChange:function(){var a,c;if(this.enumSource){a=this.getWatchedFieldValues();for(var d=[],e=[],f=0;f<this.enumSource.length;f++)if(Array.isArray(this.enumSource[f]))d=d.concat(this.enumSource[f]),e=e.concat(this.enumSource[f]);else if(a[this.enumSource[f].source]){var g=a[this.enumSource[f].source];if(this.enumSource[f].slice&&(g=Array.prototype.slice.apply(g,this.enumSource[f].slice)),this.enumSource[f].filter){var h=[];for(c=0;c<g.length;c++)this.enumSource[f].filter({i:c,item:g[c]})&&h.push(g[c]);g=h}var i=[],j=[];for(c=0;c<g.length;c++){var k=g[c];this.enumSource[f].value?j[c]=this.enumSource[f].value({i:c,item:k}):j[c]=g[c],this.enumSource[f].title?i[c]=this.enumSource[f].title({i:c,item:k}):i[c]=j[c]}d=d.concat(j),e=e.concat(i)}var l=this.value;l!==b&&""!==l&&d.indexOf(l)===-1&&(d=d.concat(l),e=e.concat(l)),this.theme.setSelectOptions(this.input,d,e),this.enum_options=d,this.enum_display=e,this.enum_values=d,d.indexOf(l)!==-1?(this.input.value=l,this.value=l):(this.input.value=d[0],this.value=d[0]||"",this.parent?this.parent.onChildEditorChange(this):this.jsoneditor.onChange(),this.jsoneditor.notifyWatchers(this.path)),this.selectize?this.updateSelectizeOptions(d):this.setupSelectize(),this._super()}},updateSelectizeOptions:function(a){var b=this.selectize[0].selectize,c=this;b.off(),b.clearOptions();for(var d in a)b.addOption({value:a[d],text:a[d]});b.addItem(this.value),b.on("change",function(){c.onInputChange()})},enable:function(){this.always_disabled||(this.input.disabled=!1,this.selectize&&this.selectize[0].selectize.unlock(),this._super())},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this.selectize&&this.selectize[0].selectize.lock(),this._super()},destroy:function(){this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.selectize&&(this.selectize[0].selectize.destroy(),this.selectize=null),this._super()}}),h.defaults.editors.multiselect=h.AbstractEditor.extend({preBuild:function(){this._super();var a;this.select_options={},this.select_values={};var b=this.jsoneditor.expandRefs(this.schema.items||{}),c=b["enum"]||[],d=b.options?b.options.enum_titles||[]:[];for(this.option_keys=[],this.option_titles=[],a=0;a<c.length;a++)this.sanitize(c[a])===c[a]&&(this.option_keys.push(c[a]+""),this.option_titles.push((d[a]||c[a])+""),this.select_values[c[a]+""]=c[a])},build:function(){var a,b=this;if(this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),!this.schema.format&&this.option_keys.length<8||"checkbox"===this.schema.format){for(this.input_type="checkboxes",this.inputs={},this.controls={},a=0;a<this.option_keys.length;a++){this.inputs[this.option_keys[a]]=this.theme.getCheckbox(),this.select_options[this.option_keys[a]]=this.inputs[this.option_keys[a]];var c=this.theme.getCheckboxLabel(this.option_titles[a]);this.controls[this.option_keys[a]]=this.theme.getFormControl(c,this.inputs[this.option_keys[a]])}this.control=this.theme.getMultiCheckboxHolder(this.controls,this.label,this.description)}else{for(this.input_type="select",this.input=this.theme.getSelectInput(this.option_keys),this.theme.setSelectOptions(this.input,this.option_keys,this.option_titles),this.input.multiple=!0,this.input.size=Math.min(10,this.option_keys.length),a=0;a<this.option_keys.length;a++)this.select_options[this.option_keys[a]]=this.input.children[a];(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.control=this.theme.getFormControl(this.label,this.input,this.description)}this.container.appendChild(this.control),this.control.addEventListener("change",function(c){c.preventDefault(),c.stopPropagation();var d=[];for(a=0;a<b.option_keys.length;a++)(b.select_options[b.option_keys[a]].selected||b.select_options[b.option_keys[a]].checked)&&d.push(b.select_values[b.option_keys[a]]);b.updateValue(d),b.onChange(!0)})},setValue:function(a,b){var c;for(a=a||[],"object"!=typeof a?a=[a]:Array.isArray(a)||(a=[]),c=0;c<a.length;c++)"string"!=typeof a[c]&&(a[c]+="");for(c in this.select_options)this.select_options.hasOwnProperty(c)&&(this.select_options[c]["select"===this.input_type?"selected":"checked"]=a.indexOf(c)!==-1);this.updateValue(a),this.onChange()},setupSelect2:function(){if(window.jQuery&&window.jQuery.fn&&window.jQuery.fn.select2){var a=window.jQuery.extend({},h.plugins.select2);this.schema.options&&this.schema.options.select2_options&&(a=e(a,this.schema.options.select2_options)),this.select2=window.jQuery(this.input).select2(a),this.select2v4=this.select2.select2.hasOwnProperty("amd");var b=this;this.select2.on("select2-blur",function(){b.select2v4?b.value=b.select2.val():b.value=b.select2.select2("val"),b.onChange(!0)}),this.select2.on("change",function(){b.select2v4?b.value=b.select2.val():b.value=b.select2.select2("val"),b.onChange(!0)})}else this.select2=null},onInputChange:function(){this.value=this.input.value,this.onChange(!0)},postBuild:function(){this._super(),this.setupSelect2()},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){var a=this.getTitle().length;for(var b in this.select_values)this.select_values.hasOwnProperty(b)&&(a=Math.max(a,(this.select_values[b]+"").length+4));return Math.min(12,Math.max(a/7,2))},updateValue:function(a){for(var b=!1,c=[],d=0;d<a.length;d++)if(this.select_options[a[d]+""]){var e=this.sanitize(this.select_values[a[d]]);c.push(e),e!==a[d]&&(b=!0)}else b=!0;return this.value=c,this.select2&&(this.select2v4?this.select2.val(this.value).trigger("change"):this.select2.select2("val",this.value)),b},sanitize:function(a){return"number"===this.schema.items.type?1*a:"integer"===this.schema.items.type?Math.floor(1*a):""+a},enable:function(){if(!this.always_disabled){if(this.input)this.input.disabled=!1;else if(this.inputs)for(var a in this.inputs)this.inputs.hasOwnProperty(a)&&(this.inputs[a].disabled=!1);this.select2&&(this.select2v4?this.select2.prop("disabled",!1):this.select2.select2("enable",!0)),this._super()}},disable:function(a){if(a&&(this.always_disabled=!0),this.input)this.input.disabled=!0;else if(this.inputs)for(var b in this.inputs)this.inputs.hasOwnProperty(b)&&(this.inputs[b].disabled=!0);this.select2&&(this.select2v4?this.select2.prop("disabled",!0):this.select2.select2("enable",!1)),this._super()},destroy:function(){this.select2&&(this.select2.select2("destroy"),this.select2=null),this._super()}}),h.defaults.editors.base64=h.AbstractEditor.extend({getNumColumns:function(){return 4},setFileReaderListener:function(a){var b=this;a.addEventListener("load",function(a){if(b.count==b.current_item_index)b.value[b.count][b.key]=a.target.result;else{var c={};for(var d in b.parent.schema.properties)c[d]="";c[b.key]=a.target.result,b.value.splice(b.count,0,c)}b.count+=1,b.count==b.total+b.current_item_index&&b.arrayEditor.setValue(b.value)})},build:function(){var a=this;if(this.title=this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input),!this.schema.readOnly&&!this.schema.readonly){if(!window.FileReader)throw"FileReader required for base64 editor";this.uploader=this.theme.getFormInputField("file"),a.schema.options&&a.schema.options.multiple&&1==a.schema.options.multiple&&a.parent&&"object"==a.parent.schema.type&&a.parent.parent&&"array"==a.parent.parent.schema.type&&this.uploader.setAttribute("multiple",""),this.uploader.addEventListener("change",function(b){if(b.preventDefault(),b.stopPropagation(),this.files&&this.files.length)if(this.files.length>1&&a.schema.options&&a.schema.options.multiple&&1==a.schema.options.multiple&&a.parent&&"object"==a.parent.schema.type&&a.parent.parent&&"array"==a.parent.parent.schema.type){a.arrayEditor=a.jsoneditor.getEditor(a.parent.parent.path),a.value=a.arrayEditor.getValue(),a.total=this.files.length,a.current_item_index=parseInt(a.parent.key),a.count=a.current_item_index;for(var c=0;c<a.total;c++){var d=new FileReader;a.setFileReaderListener(d),d.readAsDataURL(this.files[c])}}else{var e=new FileReader;e.onload=function(b){a.value=b.target.result,a.refreshPreview(),a.onChange(!0),e=null},e.readAsDataURL(this.files[0])}})}this.preview=this.theme.getFormInputDescription(this.schema.description),this.container.appendChild(this.preview),this.control=this.theme.getFormControl(this.label,this.uploader||this.input,this.preview,this.infoButton),this.container.appendChild(this.control)},refreshPreview:function(){if(this.last_preview!==this.value&&(this.last_preview=this.value,this.preview.innerHTML="",this.value)){var a=this.value.match(/^data:([^;,]+)[;,]/);if(a&&(a=a[1]),a){if(this.preview.innerHTML="<strong>Type:</strong> "+a+", <strong>Size:</strong> "+Math.floor((this.value.length-this.value.split(",")[0].length-1)/1.33333)+" bytes","image"===a.substr(0,5)){this.preview.innerHTML+="<br>";var b=document.createElement("img");b.style.maxWidth="100%",b.style.maxHeight="100px",b.src=this.value,this.preview.appendChild(b)}}else this.preview.innerHTML="<em>Invalid data URI</em>"}},enable:function(){this.always_disabled||(this.uploader&&(this.uploader.disabled=!1),this._super())},disable:function(a){a&&(this.always_disabled=!0),this.uploader&&(this.uploader.disabled=!0),this._super()},setValue:function(a){this.value!==a&&(this.value=a,this.input.value=this.value,this.refreshPreview(),this.onChange())},destroy:function(){this.preview&&this.preview.parentNode&&this.preview.parentNode.removeChild(this.preview),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.uploader&&this.uploader.parentNode&&this.uploader.parentNode.removeChild(this.uploader),this._super()}}),h.defaults.editors.upload=h.AbstractEditor.extend({getNumColumns:function(){return 4},build:function(){var a=this;if(this.title=this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input),!this.schema.readOnly&&!this.schema.readonly){if(!this.jsoneditor.options.upload)throw"Upload handler required for upload editor";this.uploader=this.theme.getFormInputField("file"),this.uploader.addEventListener("change",function(b){if(b.preventDefault(),b.stopPropagation(),this.files&&this.files.length){var c=new FileReader;c.onload=function(b){a.preview_value=b.target.result,a.refreshPreview(),a.onChange(!0),c=null},c.readAsDataURL(this.files[0])}})}var b=this.schema.description;b||(b=""),this.preview=this.theme.getFormInputDescription(b),this.container.appendChild(this.preview),this.control=this.theme.getFormControl(this.label,this.uploader||this.input,this.preview),this.container.appendChild(this.control),window.requestAnimationFrame(function(){if(a.value){var b=document.createElement("img");b.style.maxWidth="100%",b.style.maxHeight="100px",b.onload=function(c){a.preview.appendChild(b)},b.onerror=function(a){console.error("upload error",a)},b.src=a.container.querySelector("a").href}})},refreshPreview:function(){if(this.last_preview!==this.preview_value&&(this.last_preview=this.preview_value,this.preview.innerHTML="",this.preview_value)){var a=this,b=this.preview_value.match(/^data:([^;,]+)[;,]/);b&&(b=b[1]),b||(b="unknown");var c=this.uploader.files[0];if(this.preview.innerHTML="<strong>Type:</strong> "+b+", <strong>Size:</strong> "+c.size+" bytes","image"===b.substr(0,5)){this.preview.innerHTML+="<br>";var d=document.createElement("img");d.style.maxWidth="100%",d.style.maxHeight="100px",d.src=this.preview_value,this.preview.appendChild(d)}this.preview.innerHTML+="<br>";var e=this.getButton("Upload","upload","Upload");this.preview.appendChild(e),e.addEventListener("click",function(b){b.preventDefault(),e.setAttribute("disabled","disabled"),a.theme.removeInputError(a.uploader),a.theme.getProgressBar&&(a.progressBar=a.theme.getProgressBar(),a.preview.appendChild(a.progressBar)),a.jsoneditor.options.upload(a.path,c,{success:function(b){a.setValue(b),a.parent?a.parent.onChildEditorChange(a):a.jsoneditor.onChange(),
          a.progressBar&&a.preview.removeChild(a.progressBar),e.removeAttribute("disabled")},failure:function(b){a.theme.addInputError(a.uploader,b),a.progressBar&&a.preview.removeChild(a.progressBar),e.removeAttribute("disabled")},updateProgress:function(b){a.progressBar&&(b?a.theme.updateProgressBar(a.progressBar,b):a.theme.updateProgressBarUnknown(a.progressBar))}})}),(this.jsoneditor.options.auto_upload||this.schema.options.auto_upload)&&(e.dispatchEvent(new MouseEvent("click")),this.preview.removeChild(e))}},enable:function(){this.always_disabled||(this.uploader&&(this.uploader.disabled=!1),this._super())},disable:function(a){a&&(this.always_disabled=!0),this.uploader&&(this.uploader.disabled=!0),this._super()},setValue:function(a){this.value!==a&&(this.value=a,this.input.value=this.value,this.onChange())},destroy:function(){this.preview&&this.preview.parentNode&&this.preview.parentNode.removeChild(this.preview),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.uploader&&this.uploader.parentNode&&this.uploader.parentNode.removeChild(this.uploader),this._super()}}),h.defaults.editors.checkbox=h.AbstractEditor.extend({setValue:function(a,b){this.value=!!a,this.input.checked=this.value,this.onChange()},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){return Math.min(12,Math.max(this.getTitle().length/7,2))},build:function(){var a=this;this.options.compact||(this.label=this.header=this.theme.getCheckboxLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.input=this.theme.getCheckbox(),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.input.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.value=this.checked,a.onChange(!0)}),this.container.appendChild(this.control)},enable:function(){this.always_disabled||(this.input.disabled=!1,this._super())},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this._super()},destroy:function(){this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this._super()},showValidationErrors:function(a){var b=this;if("always"===this.jsoneditor.options.show_errors);else if(!this.is_dirty&&this.previous_error_setting===this.jsoneditor.options.show_errors)return;this.previous_error_setting=this.jsoneditor.options.show_errors;var c=[];f(a,function(a,d){d.path===b.path&&c.push(d.message)}),this.input.controlgroup=this.control,c.length?this.theme.addInputError(this.input,c.join(". ")+"."):this.theme.removeInputError(this.input)}}),h.defaults.editors.arraySelectize=h.AbstractEditor.extend({build:function(){this.title=this.theme.getFormInputLabel(this.getTitle()),this.title_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.error_holder=document.createElement("div"),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description)),this.input=document.createElement("select"),this.input.setAttribute("multiple","multiple");var a=this.theme.getFormControl(this.title,this.input,this.description);this.container.appendChild(a),this.container.appendChild(this.error_holder),window.jQuery(this.input).selectize({delimiter:!1,createOnBlur:!0,create:!0})},postBuild:function(){var a=this;this.input.selectize.on("change",function(b){a.refreshValue(),a.onChange(!0)})},destroy:function(){this.empty(!0),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this._super()},empty:function(a){},setValue:function(a,b){var c=this;a=a||[],Array.isArray(a)||(a=[a]),this.input.selectize.clearOptions(),this.input.selectize.clear(!0),a.forEach(function(a){c.input.selectize.addOption({text:a,value:a})}),this.input.selectize.setValue(a),this.refreshValue(b)},refreshValue:function(a){this.value=this.input.selectize.getValue()},showValidationErrors:function(a){var b=this,c=[],d=[];if(f(a,function(a,e){e.path===b.path?c.push(e):d.push(e)}),this.error_holder)if(c.length){this.error_holder.innerHTML="",this.error_holder.style.display="",f(c,function(a,c){b.error_holder.appendChild(b.theme.getErrorMessage(c.message))})}else this.error_holder.style.display="none"}}),h.defaults.editors.starrating=h.defaults.editors.string.extend({build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.ratingContainer=document.createElement("div"),this.ratingContainer.classList.add("starrating"),this.enum_values=this.schema["enum"],this.radioGroup=[];for(var b=function(b){b.preventDefault(),b.stopPropagation(),a.setValue(this.value),a.onChange(!0)},c=this.enum_values.length-1;c>-1;c--){var d=this.key+"-"+c,e=this.theme.getFormInputField("radio");e.name=this.formname+"[starrating]",e.value=this.enum_values[c],e.id=d,e.addEventListener("change",b,!1),this.radioGroup.push(e);var f=document.createElement("label");f.htmlFor=d,f.title=this.enum_values[c],this.options.displayValue&&f.classList.add("starrating-display-enabled"),this.ratingContainer.appendChild(e),this.ratingContainer.appendChild(f)}if(this.options.displayValue&&(this.displayRating=document.createElement("div"),this.displayRating.classList.add("starrating-display"),this.displayRating.innerText=this.enum_values[0],this.ratingContainer.appendChild(this.displayRating)),this.schema.readOnly||this.schema.readonly){this.always_disabled=!0;for(var g=0;c<this.radioGroup.length;g++)this.radioGroup[g].disabled=!0;this.ratingContainer.classList.add("readonly")}var h=this.theme.getContainer();h.appendChild(this.ratingContainer),this.input=h,this.control=this.theme.getFormControl(this.label,h,this.description,this.infoButton),this.container.appendChild(this.control)},enable:function(){if(!this.always_disabled){for(var a=0;a<this.radioGroup.length;a++)this.radioGroup[a].disabled=!1;this.ratingContainer.classList.remove("readonly"),this._super()}},disable:function(a){a&&(this.always_disabled=!0);for(var b=0;b<this.radioGroup.length;b++)this.radioGroup[b].disabled=!0;this.ratingContainer.classList.add("readonly"),this._super()},destroy:function(){this.ratingContainer.parentNode&&this.ratingContainer.parentNode.parentNode&&this.ratingContainer.parentNode.parentNode.removeChild(this.ratingContainer.parentNode),this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this._super()},getNumColumns:function(){return 2},setValue:function(a){for(var b=0;b<this.radioGroup.length;b++)if(this.radioGroup[b].value==a){this.radioGroup[b].checked=!0,this.value=a,this.options.displayValue&&(this.displayRating.innerHTML=this.value),this.onChange();break}}}),h.defaults.editors.datetime=h.defaults.editors.string.extend({build:function(){if(this._super(),this.input&&window.flatpickr&&"object"==typeof this.options.flatpickr){this.options.flatpickr.enableTime="date"!=this.schema.format,this.options.flatpickr.noCalendar="time"==this.schema.format,"integer"==this.schema.type&&(this.options.flatpickr.mode="single"),this.input.setAttribute("data-input","");var a=this.input;if(this.options.flatpickr.wrap===!0){var c=[];if(this.options.flatpickr.showToggleButton!==!1){var d=this.getButton("","time"==this.schema.format?"time":"calendar",this.translate("flatpickr_toggle_button"));d.setAttribute("data-toggle",""),c.push(d)}if(this.options.flatpickr.showClearButton!==!1){var e=this.getButton("","clear",this.translate("flatpickr_clear_button"));e.setAttribute("data-clear",""),c.push(e)}var f=this.input.parentNode,g=this.input.nextSibling,h=this.theme.getInputGroup(this.input,c);h!==b?(this.options.flatpickr.inline=!1,f.insertBefore(h,g),a=h):this.options.flatpickr.wrap=!1}this.flatpickr=window.flatpickr(a,this.options.flatpickr),this.options.flatpickr.inline===!0&&this.options.flatpickr.inlineHideInput===!0&&this.input.setAttribute("type","hidden")}},getValue:function(){if(!this.dependenciesFulfilled)return b;if("string"==this.schema.type)return this.value;if(""===this.value||this.value===b)return b;var a="time"==this.schema.format?"1970-01-01 "+this.value:this.value;return parseInt(new Date(a).getTime()/1e3)},setValue:function(a,b,c){if("string"==this.schema.type)this._super(a,b,c),this.flatpickr&&this.flatpickr.setDate(a);else if(a>0){var d=new Date(1e3*a),e=d.getFullYear(),f=this.zeroPad(d.getMonth()+1),g=this.zeroPad(d.getDate()),h=this.zeroPad(d.getHours()),i=this.zeroPad(d.getMinutes()),j=this.zeroPad(d.getSeconds()),k=[e,f,g].join("-"),l=[h,i,j].join(":"),m=k+" "+l;"date"==this.schema.format?m=k:"time"==this.schema.format&&(m=l),this.input.value=m,this.flatpickr&&this.flatpickr.setDate(m)}},destroy:function(){this.flatpickr&&this.flatpickr.destroy(),this.flatpickr=null,this._super()},zeroPad:function(a){return("0"+a).slice(-2)}}),h.defaults.editors.signature=h.defaults.editors.string.extend({build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description));var b=this.formname.replace(/\W/g,"");if("function"==typeof SignaturePad){var c="json-editor-style-signature";document.getElementById(c);this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input);var d=document.createElement("div");d.classList.add("signature-container");var e=document.createElement("canvas");e.setAttribute("name",b),e.classList.add("signature"),d.appendChild(e),a.signaturePad=new window.SignaturePad(e,{onEnd:function(){a.signaturePad.isEmpty()?a.input.value="":a.input.value=a.signaturePad.toDataURL(),a.is_dirty=!0,a.refreshValue(),a.watch_listener(),a.jsoneditor.notifyWatchers(a.path),a.parent?a.parent.onChildEditorChange(a):a.jsoneditor.onChange()}});var g=document.createElement("div"),h=document.createElement("button");h.classList.add("tiny","button"),h.innerHTML="Clear signature",g.appendChild(h),d.appendChild(g),this.options.compact&&this.container.setAttribute("class",this.container.getAttribute("class")+" compact"),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,f(this.inputs,function(a,b){e.setAttribute("readOnly","readOnly"),b.disabled=!0})),h.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.signaturePad.clear(),a.signaturePad.strokeEnd()}),this.control=this.theme.getFormControl(this.label,d,this.description),this.container.appendChild(this.control),this.refreshValue(),e.width=d.offsetWidth,a.options&&a.options.canvas_height?e.height=a.options.canvas_height:e.height="300"}else{var i=document.createElement("p");i.innerHTML="Signature pad is not available, please include SignaturePad from https://github.com/szimek/signature_pad",this.container.appendChild(i)}},setValue:function(a){var b=this;if("function"==typeof SignaturePad){var c=(this.formname.replace(/\W/g,""),this.sanitize(a));if(this.value===c)return;return b.value=c,b.input.value=b.value,b.signaturePad.clear(),a&&""!=a&&b.signaturePad.fromDataURL(a),b.watch_listener(),b.jsoneditor.notifyWatchers(b.path),!1}},destroy:function(){var a=this;this.formname.replace(/\W/g,"");a.signaturePad.off(),delete a.signaturePad}});var i=function(){var a=document.documentElement;return a.matches?"matches":a.webkitMatchesSelector?"webkitMatchesSelector":a.mozMatchesSelector?"mozMatchesSelector":a.msMatchesSelector?"msMatchesSelector":a.oMatchesSelector?"oMatchesSelector":void 0}();return h.AbstractTheme=c.extend({getContainer:function(){return document.createElement("div")},getFloatRightLinkHolder:function(){var a=document.createElement("div");return a.style=a.style||{},a.style.cssFloat="right",a.style.marginLeft="10px",a},getModal:function(){var a=document.createElement("div");return a.style.backgroundColor="white",a.style.border="1px solid black",a.style.boxShadow="3px 3px black",a.style.position="absolute",a.style.zIndex="10",a.style.display="none",a},getGridContainer:function(){var a=document.createElement("div");return a},getGridRow:function(){var a=document.createElement("div");return a.classList.add("row"),a},getGridColumn:function(){var a=document.createElement("div");return a},setGridColumnSize:function(a,b){},getLink:function(a){var b=document.createElement("a");return b.setAttribute("href","#"),b.appendChild(document.createTextNode(a)),b},disableHeader:function(a){a.style.color="#ccc"},disableLabel:function(a){a.style.color="#ccc"},enableHeader:function(a){a.style.color=""},enableLabel:function(a){a.style.color=""},getInfoButton:function(a){var b=document.createElement("span");b.innerText="ⓘ",b.style.fontSize="16px",b.style.fontWeight="bold",b.style.padding=".25rem",b.style.position="relative",b.style.display="inline-block";var c=document.createElement("span");return c.style.fontSize="12px",b.style.fontWeight="normal",c.style["font-family"]="sans-serif",c.style.visibility="hidden",c.style["background-color"]="rgba(50, 50, 50, .75)",c.style.margin="0 .25rem",c.style.color="#FAFAFA",c.style.padding=".5rem 1rem",c.style["border-radius"]=".25rem",c.style.width="20rem",c.style.position="absolute",c.innerText=a,b.onmouseover=function(){c.style.visibility="visible"},b.onmouseleave=function(){c.style.visibility="hidden"},b.appendChild(c),b},getFormInputLabel:function(a){var b=document.createElement("label");return b.appendChild(document.createTextNode(a)),b},getCheckboxLabel:function(a){var b=this.getFormInputLabel(a);return b.style.fontWeight="normal",b},getHeader:function(a){var b=document.createElement("h3");return"string"==typeof a?b.textContent=a:b.appendChild(a),b},getCheckbox:function(){var a=this.getFormInputField("checkbox");return a.style.display="inline-block",a.style.width="auto",a},getMultiCheckboxHolder:function(a,b,c){var d=document.createElement("div");b&&(b.style.display="block",d.appendChild(b));for(var e in a)a.hasOwnProperty(e)&&(a[e].style.display="inline-block",a[e].style.marginRight="20px",d.appendChild(a[e]));return c&&d.appendChild(c),d},getSelectInput:function(a){var b=document.createElement("select");return a&&this.setSelectOptions(b,a),b},getSwitcher:function(a){var b=this.getSelectInput(a);return b.style.backgroundColor="transparent",b.style.display="inline-block",b.style.fontStyle="italic",b.style.fontWeight="normal",b.style.height="auto",b.style.marginBottom=0,b.style.marginLeft="5px",b.style.padding="0 0 0 3px",b.style.width="auto",b},getSwitcherOptions:function(a){return a.getElementsByTagName("option")},setSwitcherOptions:function(a,b,c){this.setSelectOptions(a,b,c)},setSelectOptions:function(a,b,c){c=c||[],a.innerHTML="";for(var d=0;d<b.length;d++){var e=document.createElement("option");e.setAttribute("value",b[d]),e.textContent=c[d]||b[d],a.appendChild(e)}},getTextareaInput:function(){var a=document.createElement("textarea");return a.style=a.style||{},a.style.width="100%",a.style.height="300px",a.style.boxSizing="border-box",a},getRangeInput:function(a,b,c){var d=this.getFormInputField("range");return d.setAttribute("min",a),d.setAttribute("max",b),d.setAttribute("step",c),d},getFormInputField:function(a){var b=document.createElement("input");return b.setAttribute("type",a),b},afterInputReady:function(a){},getFormControl:function(a,b,c,d){var e=document.createElement("div");return e.classList.add("form-control"),a&&e.appendChild(a),"checkbox"===b.type&&a?(a.insertBefore(b,a.firstChild),d&&a.appendChild(d)):(d&&a.appendChild(d),e.appendChild(b)),c&&e.appendChild(c),e},getIndentedPanel:function(){var a=document.createElement("div");return a.style=a.style||{},a.style.paddingLeft="10px",a.style.marginLeft="10px",a.style.borderLeft="1px solid #ccc",a},getTopIndentedPanel:function(){var a=document.createElement("div");return a.style=a.style||{},a.style.paddingLeft="10px",a.style.marginLeft="10px",a},getChildEditorHolder:function(){return document.createElement("div")},getDescription:function(a){var b=document.createElement("p");return b.innerHTML=a,b},getCheckboxDescription:function(a){return this.getDescription(a)},getFormInputDescription:function(a){return this.getDescription(a)},getHeaderButtonHolder:function(){return this.getButtonHolder()},getButtonHolder:function(){return document.createElement("div")},getButton:function(a,b,c){var d=document.createElement("button");return d.type="button",this.setButtonText(d,a,b,c),d},setButtonText:function(a,b,c,d){for(;a.firstChild;)a.removeChild(a.firstChild);c&&(a.appendChild(c),b=" "+b);var e=document.createElement("span");e.appendChild(document.createTextNode(b)),a.appendChild(e),d&&a.setAttribute("title",d)},getTable:function(){return document.createElement("table")},getTableRow:function(){return document.createElement("tr")},getTableHead:function(){return document.createElement("thead")},getTableBody:function(){return document.createElement("tbody")},getTableHeaderCell:function(a){var b=document.createElement("th");return b.textContent=a,b},getTableCell:function(){var a=document.createElement("td");return a},getErrorMessage:function(a){var b=document.createElement("p");return b.style=b.style||{},b.style.color="red",b.appendChild(document.createTextNode(a)),b},addInputError:function(a,b){},removeInputError:function(a){},addTableRowError:function(a){},removeTableRowError:function(a){},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<div style='float: left; width: 130px;' class='tabs' id='"+b+"'></div><div class='content' style='margin-left: 120px;' id='"+b+"'></div><div style='clear:both;'></div>",c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<div class='tabs' style='margin-left: 10px;' id='"+b+"'></div><div style='clear:both;'></div><div class='content' id='"+b+"'></div>",c},applyStyles:function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a.style[c]=b[c])},closest:function(a,b){for(;a&&a!==document;){if(!a[i])return!1;if(a[i](b))return a;a=a.parentNode}return!1},insertBasicTopTab:function(a,b){b.firstChild.insertBefore(a,b.firstChild.firstChild)},getTab:function(a,b){var c=document.createElement("div");return c.appendChild(a),c.id=b,c.style=c.style||{},this.applyStyles(c,{border:"1px solid #ccc",borderWidth:"1px 0 1px 1px",textAlign:"center",lineHeight:"30px",borderRadius:"5px",borderBottomRightRadius:0,borderTopRightRadius:0,fontWeight:"bold",cursor:"pointer"}),c},getTopTab:function(a,b){var c=document.createElement("div");return c.id=b,c.appendChild(a),c.style=c.style||{},this.applyStyles(c,{"float":"left",border:"1px solid #ccc",borderWidth:"1px 1px 0px 1px",textAlign:"center",lineHeight:"30px",borderRadius:"5px",paddingLeft:"5px",paddingRight:"5px",borderBottomRightRadius:0,borderBottomLeftRadius:0,fontWeight:"bold",cursor:"pointer"}),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){return this.getIndentedPanel()},getTopTabContent:function(){return this.getTopIndentedPanel()},markTabActive:function(a){this.applyStyles(a.tab,{opacity:1,background:"white"}),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){this.applyStyles(a.tab,{opacity:.5,background:""}),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)},getBlockLink:function(){var a=document.createElement("a");return a.style.display="block",a},getBlockLinkHolder:function(){var a=document.createElement("div");return a},getLinksHolder:function(){var a=document.createElement("div");return a},createMediaLink:function(a,b,c){a.appendChild(b),c.style.width="100%",a.appendChild(c)},createImageLink:function(a,b,c){a.appendChild(b),b.appendChild(c)},getFirstTab:function(a){return a.firstChild.firstChild},getInputGroup:function(a,c){return b}}),h.defaults.themes.bootstrap2=h.AbstractTheme.extend({getRangeInput:function(a,b,c){return this._super(a,b,c)},getGridContainer:function(){var a=document.createElement("div");return a.classList.add("container-fluid"),a},getGridRow:function(){var a=document.createElement("div");return a.classList.add("row-fluid"),a},getFormInputLabel:function(a){var b=this._super(a);return b.style.display="inline-block",b.style.fontWeight="bold",b},setGridColumnSize:function(a,b){a.classList.add("span"+b)},getSelectInput:function(a){var b=this._super(a);return b.style.width="auto",b.style.maxWidth="98%",b},getFormInputField:function(a){var b=this._super(a);return b.style.width="98%",b},afterInputReady:function(a){if(!a.controlgroup&&(a.controlgroup=this.closest(a,".control-group"),a.controls=this.closest(a,".controls"),this.closest(a,".compact")&&(a.controlgroup.className=a.controlgroup.className.replace(/control-group/g,"").replace(/[ ]{2,}/g," "),a.controls.className=a.controlgroup.className.replace(/controls/g,"").replace(/[ ]{2,}/g," "),a.style.marginBottom=0),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("well","well-small"),a.style.paddingBottom=0,a},getInfoButton:function(a){var b=document.createElement("span");b.classList.add("icon-info-sign","pull-right"),b.style.padding=".25rem",b.style.position="relative",b.style.display="inline-block";var c=document.createElement("span");return c.style["font-family"]="sans-serif",c.style.visibility="hidden",c.style["background-color"]="rgba(50, 50, 50, .75)",c.style.margin="0 .25rem",c.style.color="#FAFAFA",c.style.padding=".5rem 1rem",c.style["border-radius"]=".25rem",c.style.width="25rem",c.style.transform="translateX(-27rem) translateY(-.5rem)",c.style.position="absolute",c.innerText=a,b.onmouseover=function(){c.style.visibility="visible"},b.onmouseleave=function(){c.style.visibility="hidden"},b.appendChild(c),b},getFormInputDescription:function(a){var b=document.createElement("p");return b.classList.add("help-inline"),b.textContent=a,b},getFormControl:function(a,b,c,d){var e=document.createElement("div");e.classList.add("control-group");var f=document.createElement("div");return f.classList.add("controls"),a&&"checkbox"===b.getAttribute("type")?(e.appendChild(f),a.classList.add("checkbox"),a.appendChild(b),f.appendChild(a),d&&f.appendChild(d),f.style.height="30px"):(a&&(a.classList.add("control-label"),e.appendChild(a)),d&&f.appendChild(d),f.appendChild(b),e.appendChild(f)),c&&f.appendChild(c),e},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("btn-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("btn","btn-default"),d},getTable:function(){var a=document.createElement("table");return a.classList.add("table","table-bordered"),a.style.width="auto",a.style.maxWidth="none",a},addInputError:function(a,b){return a.controlgroup?void(a.controlgroup&&a.controls&&(a.controlgroup.classList.add("error"),a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("p"),a.errmsg.classList.add("help-block","errormsg"),a.controls.appendChild(a.errmsg)),a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.controlgroup||delete this.queuedInputErrorText,a.errmsg&&(a.errmsg.style.display="none",a.controlgroup.classList.remove("error"))},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("tabbable","tabs-left"),c.innerHTML="<ul class='nav nav-tabs' id='"+b+"'></ul><div class='tab-content well well-small' id='"+b+"'></div>",c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("tabbable","tabs-over"),c.innerHTML="<ul class='nav nav-tabs' id='"+b+"'></ul><div class='tab-content well well-small' id='"+b+"'></div>",c},getTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.add("active"):a.container.classList.add("active")},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.remove("active"):a.container.classList.remove("active")},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)},getProgressBar:function(){var a=document.createElement("div");a.classList.add("progress");var b=document.createElement("div");return b.classList.add("bar"),b.style.width="0%",a.appendChild(b),a},updateProgressBar:function(a,b){a&&(a.firstChild.style.width=b+"%")},updateProgressBarUnknown:function(a){a&&(a.classList.add("progress","progress-striped","active"),a.firstChild.style.width="100%")},getInputGroup:function(a,b){if(a){var c=document.createElement("div");c.classList.add("input-append"),c.appendChild(a);for(var d=0;d<b.length;d++)b[d].classList.add("btn"),c.appendChild(b[d]);return c}}}),h.defaults.themes.bootstrap3=h.AbstractTheme.extend({getSelectInput:function(a){var b=this._super(a);return b.classList.add("form-control"),b},setGridColumnSize:function(a,b){a.classList.add("col-md-"+b)},afterInputReady:function(a){if(!a.controlgroup&&(a.controlgroup=this.closest(a,".form-group"),this.closest(a,".compact")&&(a.controlgroup.style.marginBottom=0),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},getTextareaInput:function(){var a=document.createElement("textarea");return a.classList.add("form-control"),a},getRangeInput:function(a,b,c){return this._super(a,b,c)},getFormInputField:function(a){var b=this._super(a);return"checkbox"!==a&&b.classList.add("form-control"),b},getFormControl:function(a,b,c,d){var e=document.createElement("div");return a&&"checkbox"===b.type?(e.classList.add("checkbox"),a.appendChild(b),a.style.fontSize="14px",e.style.marginTop="0",d&&e.appendChild(d),e.appendChild(a),b.style.position="relative",b.style.cssFloat="left"):(e.classList.add("form-group"),a&&(a.classList.add("control-label"),e.appendChild(a)),d&&e.appendChild(d),e.appendChild(b)),c&&e.appendChild(c),e},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("well","well-sm"),a.style.paddingBottom=0,a},getInfoButton:function(a){var b=document.createElement("span");b.classList.add("glyphicon","glyphicon-info-sign","pull-right"),b.style.padding=".25rem",b.style.position="relative",b.style.display="inline-block";var c=document.createElement("span");return c.style["font-family"]="sans-serif",c.style.visibility="hidden",c.style["background-color"]="rgba(50, 50, 50, .75)",c.style.margin="0 .25rem",c.style.color="#FAFAFA",c.style.padding=".5rem 1rem",c.style["border-radius"]=".25rem",c.style.width="25rem",c.style.transform="translateX(-27rem) translateY(-.5rem)",c.style.position="absolute",c.innerText=a,b.onmouseover=function(){c.style.visibility="visible"},b.onmouseleave=function(){c.style.visibility="hidden"},b.appendChild(c),b},getFormInputDescription:function(a){var b=document.createElement("p");return b.classList.add("help-block"),b.innerHTML=a,b},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("btn-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("btn","btn-default"),d},getTable:function(){var a=document.createElement("table");return a.classList.add("table","table-bordered"),a.style.width="auto",a.style.maxWidth="none",a},addInputError:function(a,b){return a.controlgroup?(a.controlgroup.classList.add("has-error"),a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("p"),a.errmsg.classList.add("help-block","errormsg"),a.controlgroup.appendChild(a.errmsg)),void(a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.controlgroup||delete this.queuedInputErrorText,a.errmsg&&(a.errmsg.style.display="none",a.controlgroup.classList.remove("has-error"))},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<ul class='col-md-2 nav nav-pills nav-stacked' id='"+b+"' role='tablist'></ul><div class='col-md-10 tab-content well well-small' id='"+b+"'></div>",c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<ul class='nav nav-tabs' id='"+b+"' role='tablist'></ul><div class='tab-content well well-small' id='"+b+"'></div>",c},getTab:function(a,b){var c=document.createElement("li");c.setAttribute("role","presentation");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),d.setAttribute("aria-controls",b),d.setAttribute("role","tab"),d.setAttribute("data-toggle","tab"),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.setAttribute("role","presentation");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),d.setAttribute("aria-controls",b),d.setAttribute("role","tab"),d.setAttribute("data-toggle","tab"),c.appendChild(d),c},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.add("active"):a.container.classList.add("active")},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.remove("active"):a.container.classList.remove("active")},getProgressBar:function(){var a=0,b=100,c=0,d=document.createElement("div");d.classList.add("progress");var e=document.createElement("div");return e.classList.add("progress-bar"),e.setAttribute("role","progressbar"),e.setAttribute("aria-valuenow",c),
          e.setAttribute("aria-valuemin",a),e.setAttribute("aria-valuenax",b),e.innerHTML=c+"%",d.appendChild(e),d},updateProgressBar:function(a,b){if(a){var c=a.firstChild,d=b+"%";c.setAttribute("aria-valuenow",b),c.style.width=d,c.innerHTML=d}},updateProgressBarUnknown:function(a){if(a){var b=a.firstChild;a.classList.add("progress","progress-striped","active"),b.removeAttribute("aria-valuenow"),b.style.width="100%",b.innerHTML=""}},getInputGroup:function(a,b){if(a){var c=document.createElement("div");c.classList.add("input-group"),c.appendChild(a);var d=document.createElement("div");d.classList.add("input-group-btn"),c.appendChild(d);for(var e=0;e<b.length;e++)d.appendChild(b[e]);return c}}}),h.defaults.themes.bootstrap4=h.AbstractTheme.extend({getSelectInput:function(a){var b=this._super(a);return b.classList.add("form-control"),b},setGridColumnSize:function(a,b){a.classList.add("col-md-"+b)},afterInputReady:function(a){a.controlgroup||(a.controlgroup=this.closest(a,".form-group"),this.closest(a,".compact")&&(a.controlgroup.style.marginBottom=0))},getTextareaInput:function(){var a=document.createElement("textarea");return a.classList.add("form-control"),a},getRangeInput:function(a,b,c){return this._super(a,b,c)},getFormInputField:function(a){var b=this._super(a);return"checkbox"!==a&&b.classList.add("form-control"),b},getFormControl:function(a,b,c){var d=document.createElement("div");return a&&"checkbox"===b.type?(d.classList.add("checkbox"),a.appendChild(b),a.style.fontSize="14px",d.style.marginTop="0",d.appendChild(a),b.style.position="relative",b.style.cssFloat="left"):(d.classList.add("form-group"),a&&(a.classList.add("form-control-label"),d.appendChild(a)),d.appendChild(b)),c&&d.appendChild(c),d},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("card","card-body","bg-light"),a},getFormInputDescription:function(a){var b=document.createElement("p");return b.classList.add("form-text"),b.innerHTML=a,b},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("btn-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("btn","btn-secondary"),d},getTable:function(){var a=document.createElement("table");return a.classList.add("table-bordered","table-sm"),a.style.width="auto",a.style.maxWidth="none",a},addInputError:function(a,b){a.controlgroup&&(a.controlgroup.classList.add("has-danger"),a.classList.add("is-invalid"),a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("p"),a.errmsg.classList.add("form-text","invalid-feedback"),a.controlgroup.appendChild(a.errmsg)),a.errmsg.textContent=b)},removeInputError:function(a){a.errmsg&&(a.errmsg.style.display="none",a.classList.remove("is-invalid"),a.controlgroup.classList.remove("has-danger"))},getTabHolder:function(a){var b=document.createElement("div"),c="undefined"==typeof a?"":a;return b.innerHTML="<div class='col-md-2' id='"+c+"'><ul class='nav flex-column nav-pills'></ul></div><div class='tab-content col-md-10' id='"+c+"'></div>",b.classList.add("row"),b},addTab:function(a,b){a.children[0].children[0].appendChild(b)},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<ul class='nav nav-tabs' id='"+b+"'></ul><div class='card-body tab-content' id='"+b+"'></div>",c},getTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.classList.add("nav-link"),d.setAttribute("style","padding:10px;"),d.setAttribute("href","#"+b),d.setAttribute("data-toggle","tab"),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.classList.add("nav-link"),d.setAttribute("href","#"+b),d.setAttribute("data-toggle","tab"),d.appendChild(a),c.appendChild(d),c},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},markTabActive:function(a){a.tab.firstChild.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.add("active"):a.container.classList.add("active")},markTabInactive:function(a){a.tab.firstChild.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.remove("active"):a.container.classList.remove("active")},getProgressBar:function(){var a=0,b=100,c=0,d=document.createElement("div");d.classList.add("progress");var e=document.createElement("div");return e.classList.add("progress-bar"),e.setAttribute("role","progressbar"),e.setAttribute("aria-valuenow",c),e.setAttribute("aria-valuemin",a),e.setAttribute("aria-valuenax",b),e.innerHTML=c+"%",d.appendChild(e),d},updateProgressBar:function(a,b){if(a){var c=a.firstChild,d=b+"%";c.setAttribute("aria-valuenow",b),c.style.width=d,c.innerHTML=d}},updateProgressBarUnknown:function(a){if(a){var b=a.firstChild;a.classList.add("progress","progress-striped","active"),b.removeAttribute("aria-valuenow"),b.style.width="100%",b.innerHTML=""}},getInputGroup:function(a,b){if(a){var c=document.createElement("div");c.classList.add("input-group"),c.appendChild(a);var d=document.createElement("div");d.classList.add("input-group-prepend"),c.appendChild(d);for(var e=0;e<b.length;e++)d.appendChild(b[e]);return c}}}),h.defaults.themes.foundation=h.AbstractTheme.extend({getChildEditorHolder:function(){var a=document.createElement("div");return a.style.marginBottom="15px",a},getSelectInput:function(a){var b=this._super(a);return b.style.minWidth="none",b.style.padding="5px",b.style.marginTop="3px",b},getSwitcher:function(a){var b=this._super(a);return b.style.paddingRight="8px",b},afterInputReady:function(a){if(!a.group&&(this.closest(a,".compact")&&(a.style.marginBottom=0),a.group=this.closest(a,".form-control"),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},getFormInputLabel:function(a){var b=this._super(a);return b.style.display="inline-block",b},getFormInputField:function(a){var b=this._super(a);return b.style.width="100%",b.style.marginBottom="checkbox"===a?"0":"12px",b},getFormInputDescription:function(a){var b=document.createElement("p");return b.textContent=a,b.style.marginTop="-10px",b.style.fontStyle="italic",b},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("panel"),a.style.paddingBottom=0,a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.display="inline-block",a.style.marginLeft="10px",a.style.verticalAlign="middle",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("button-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("small","button"),d},addInputError:function(a,b){return a.group?(a.group.classList.add("error"),a.errmsg?a.errmsg.style.display="":(a.insertAdjacentHTML("afterend",'<small class="error"></small>'),a.errmsg=a.parentNode.getElementsByClassName("error")[0]),void(a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.group||delete this.queuedInputErrorText,a.errmsg&&(a.group.classList.remove("error"),a.errmsg.style.display="none")},getProgressBar:function(){var a=document.createElement("div");a.classList.add("progress");var b=document.createElement("span");return b.classList.add("meter"),b.style.width="0%",a.appendChild(b),a},updateProgressBar:function(a,b){a&&(a.firstChild.style.width=b+"%")},updateProgressBarUnknown:function(a){a&&(a.firstChild.style.width="100%")},getInputGroup:function(a,c){if(!a)return b;var d=document.createElement("div");d.classList.add("input-group"),a.classList.add("input-group-field"),d.appendChild(a);for(var e=0;e<c.length;e++){var f=document.createElement("div");f.classList.add("input-group-button"),f.style.verticalAlign="top",c[e].classList.remove("small"),f.appendChild(c[e]),d.appendChild(f)}return d}}),h.defaults.themes.foundation3=h.defaults.themes.foundation.extend({getHeaderButtonHolder:function(){var a=this._super();return a.style.fontSize=".6em",a},getFormInputLabel:function(a){var b=this._super(a);return b.style.fontWeight="bold",b},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("row"),c.innerHTML='<dl class="tabs vertical two columns" id="'+b+'"></dl><div class="tabs-content ten columns" id="'+b+'"></div>',c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("row"),c.innerHTML='<dl class="tabs horizontal" style="padding-left: 10px; margin-left: 10px;" id="'+b+'"></dl><div class="tabs-content twelve columns" style="padding: 10px; margin-left: 10px;" id="'+b+'"></div>',c},setGridColumnSize:function(a,b){var c=["zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve"];a.classList.add("columns",c[b])},getTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("content","active"),a.style.paddingLeft="5px",a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("content","active"),a.style.paddingLeft="5px",a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)}}),h.defaults.themes.foundation4=h.defaults.themes.foundation.extend({getHeaderButtonHolder:function(){var a=this._super();return a.style.fontSize=".6em",a},setGridColumnSize:function(a,b){a.classList.add("columns","large-"+b)},getFormInputDescription:function(a){var b=this._super(a);return b.style.fontSize=".8rem",b},getFormInputLabel:function(a){var b=this._super(a);return b.style.fontWeight="bold",b}}),h.defaults.themes.foundation5=h.defaults.themes.foundation.extend({getFormInputDescription:function(a){var b=this._super(a);return b.style.fontSize=".8rem",b},setGridColumnSize:function(a,b){a.classList.add("columns","medium-"+b)},getButton:function(a,b,c){var d=this._super(a,b,c);return d.className=d.className.replace(/\s*small/g,"")+" tiny",d},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML='<dl class="tabs vertical" id="'+b+'"></dl><div class="tabs-content vertical" id="'+b+'"></div>',c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("row"),c.innerHTML='<dl class="tabs horizontal" style="padding-left: 10px;" id="'+b+'"></dl><div class="tabs-content horizontal" style="padding: 10px;" id="'+b+'"></div>',c},getTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-content","active"),a.style.paddingLeft="5px",a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-content","active"),a.style.paddingLeft="5px",a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)}}),h.defaults.themes.foundation6=h.defaults.themes.foundation5.extend({getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("callout","secondary"),a.style="padding-left: 10px; margin-left: 10px;",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("button-group","tiny"),a.style.marginBottom=0,a},getFormInputLabel:function(a){var b=this._super(a);return b.style.display="block",b},getFormControl:function(a,b,c,d){var e=document.createElement("div");return e.classList.add("form-control"),a&&e.appendChild(a),"checkbox"===b.type?a.insertBefore(b,a.firstChild):a?(d&&a.appendChild(d),a.appendChild(b)):(d&&e.appendChild(d),e.appendChild(b)),c&&a.appendChild(c),e},addInputError:function(a,b){if(a.group){if(a.group.classList.add("error"),a.errmsg)a.errmsg.style.display="",a.className="";else{var c=document.createElement("span");c.classList.add("form-error","is-visible"),a.group.getElementsByTagName("label")[0].appendChild(c),a.classList.add("is-invalid-input"),a.errmsg=c}a.errmsg.textContent=b}},removeInputError:function(a){a.errmsg&&(a.classList.remove("is-invalid-input"),a.errmsg.parentNode&&a.errmsg.parentNode.removeChild(a.errmsg))},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("grid-x"),c.innerHTML='<div class="medium-2 cell" style="float: left;"><ul class="vertical tabs" data-tabs id="'+b+'"></ul></div><div class="medium-10 cell" style="float: left;"><div class="tabs-content" data-tabs-content="'+b+'"></div></div>',c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("grid-y"),c.innerHTML='<div className="cell"><ul class="tabs" data-tabs id="'+b+'"></ul><div class="tabs-content" data-tabs-content="'+b+'"></div></div>',c},insertBasicTopTab:function(a,b){b.firstChild.firstChild.insertBefore(a,b.firstChild.firstChild.firstChild)},getTab:function(a,b){var c=document.createElement("li");c.classList.add("tabs-title");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.classList.add("tabs-title");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1].firstChild},getTopTabContentHolder:function(a){return a.firstChild.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tabs-panel"),a.style.paddingLeft="5px",a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tabs-panel"),a.style.paddingLeft="5px",a},markTabActive:function(a){a.tab.classList.add("is-active"),a.tab.firstChild.setAttribute("aria-selected","true"),"undefined"!=typeof a.rowPane?(a.rowPane.classList.add("is-active"),a.rowPane.setAttribute("aria-selected","true")):(a.container.classList.add("is-active"),a.container.setAttribute("aria-selected","true"))},markTabInactive:function(a){a.tab.classList.remove("is-active"),a.tab.firstChild.removeAttribute("aria-selected"),"undefined"!=typeof a.rowPane?(a.rowPane.classList.remove("is-active"),a.rowPane.removeAttribute("aria-selected")):(a.container.classList.remove("is-active"),a.container.removeAttribute("aria-selected"))},addTab:function(a,b){a.children[0].firstChild.appendChild(b)},addTopTab:function(a,b){a.firstChild.children[0].appendChild(b)},getFirstTab:function(a){return a.firstChild.firstChild.firstChild}}),h.defaults.themes.html=h.AbstractTheme.extend({getFormInputLabel:function(a){var b=this._super(a);return b.style.display="block",b.style.marginBottom="3px",b.style.fontWeight="bold",b},getFormInputDescription:function(a){var b=this._super(a);return b.style.fontSize=".8em",b.style.margin=0,b.style.display="inline-block",b.style.fontStyle="italic",b},getIndentedPanel:function(){var a=this._super();return a.style.border="1px solid #ddd",a.style.padding="5px",a.style.margin="10px",a.style.borderRadius="3px",a},getTopIndentedPanel:function(){return this.getIndentedPanel()},getChildEditorHolder:function(){var a=this._super();return a.style.marginBottom="8px",a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.display="inline-block",a.style.marginLeft="10px",a.style.fontSize=".8em",a.style.verticalAlign="middle",a},getTable:function(){var a=this._super();return a.style.borderBottom="1px solid #ccc",a.style.marginBottom="5px",a},addInputError:function(a,b){if(a.style.borderColor="red",a.errmsg)a.errmsg.style.display="block";else{var c=this.closest(a,".form-control");a.errmsg=document.createElement("div"),a.errmsg.setAttribute("class","errmsg"),a.errmsg.style=a.errmsg.style||{},a.errmsg.style.color="red",c.appendChild(a.errmsg)}a.errmsg.innerHTML="",a.errmsg.appendChild(document.createTextNode(b))},removeInputError:function(a){a.style.borderColor="",a.errmsg&&(a.errmsg.style.display="none")},getProgressBar:function(){var a=100,b=0,c=document.createElement("progress");return c.setAttribute("max",a),c.setAttribute("value",b),c},updateProgressBar:function(a,b){a&&a.setAttribute("value",b)},updateProgressBarUnknown:function(a){a&&a.removeAttribute("value")}}),h.defaults.themes.jqueryui=h.AbstractTheme.extend({getTable:function(){var a=this._super();return a.setAttribute("cellpadding",5),a.setAttribute("cellspacing",0),a},getTableHeaderCell:function(a){var b=this._super(a);return b.classList.add("ui-state-active"),b.style.fontWeight="bold",b},getTableCell:function(){var a=this._super();return a.classList.add("ui-widget-content"),a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a.style.fontSize=".6em",a.style.display="inline-block",a},getFormInputDescription:function(a){var b=this.getDescription(a);return b.style.marginLeft="10px",b.style.display="inline-block",b},getFormControl:function(a,b,c,d){var e=this._super(a,b,c,d);return"checkbox"===b.type?(e.style.lineHeight="25px",e.style.padding="3px 0"):e.style.padding="4px 0 8px 0",e},getDescription:function(a){var b=document.createElement("span");return b.style.fontSize=".8em",b.style.fontStyle="italic",b.textContent=a,b},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("ui-buttonset"),a.style.fontSize=".7em",a},getFormInputLabel:function(a){var b=document.createElement("label");return b.style.fontWeight="bold",b.style.display="block",b.textContent=a,b},getButton:function(a,b,c){var d=document.createElement("button");d.classList.add("ui-button","ui-widget","ui-state-default","ui-corner-all"),b&&!a?(d.classList.add("ui-button-icon-only"),b.classList.add("ui-button-icon-primary","ui-icon-primary"),d.appendChild(b)):b?(d.classList.add("ui-button-text-icon-primary"),b.classList.add("ui-button-icon-primary","ui-icon-primary"),d.appendChild(b)):d.classList.add("ui-button-text-only");var e=document.createElement("span");return e.classList.add("ui-button-text"),e.textContent=a||c||".",d.appendChild(e),d.setAttribute("title",c),d},setButtonText:function(a,b,c,d){a.innerHTML="",a.classList.add("ui-button","ui-widget","ui-state-default","ui-corner-all"),c&&!b?(a.classList.add("ui-button-icon-only"),c.classList.add("ui-button-icon-primary","ui-icon-primary"),a.appendChild(c)):c?(a.classList.add("ui-button-text-icon-primary"),c.classList.add("ui-button-icon-primary","ui-icon-primary"),a.appendChild(c)):a.classList.add("ui-button-text-only");var e=document.createElement("span");e.classList.add("ui-button-text"),e.textContent=b||d||".",a.appendChild(e),a.setAttribute("title",d)},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("ui-widget-content","ui-corner-all"),a.style.padding="1em 1.4em",a.style.marginBottom="20px",a},afterInputReady:function(a){if(!a.controls&&(a.controls=this.closest(a,".form-control"),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},addInputError:function(a,b){return a.controls?(a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("div"),a.errmsg.classList.add("ui-state-error"),a.controls.appendChild(a.errmsg)),void(a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.controls||delete this.queuedInputErrorText,a.errmsg&&(a.errmsg.style.display="none")},markTabActive:function(a){a.tab.classList.remove("ui-widget-header"),a.tab.classList.add("ui-state-active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){a.tab.classList.add("ui-widget-header"),a.tab.classList.remove("ui-state-active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"}}),h.defaults.themes.barebones=h.AbstractTheme.extend({getFormInputLabel:function(a){var b=this._super(a);return b},getFormInputDescription:function(a){var b=this._super(a);return b},getIndentedPanel:function(){var a=this._super();return a},getChildEditorHolder:function(){var a=this._super();return a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a},getTable:function(){var a=this._super();return a},addInputError:function(a,b){if(a.errmsg)a.errmsg.style.display="block";else{var c=this.closest(a,".form-control");a.errmsg=document.createElement("div"),a.errmsg.setAttribute("class","errmsg"),c.appendChild(a.errmsg)}a.errmsg.innerHTML="",a.errmsg.appendChild(document.createTextNode(b))},removeInputError:function(a){a.style.borderColor="",a.errmsg&&(a.errmsg.style.display="none")},getProgressBar:function(){var a=100,b=0,c=document.createElement("progress");return c.setAttribute("max",a),c.setAttribute("value",b),c},updateProgressBar:function(a,b){a&&a.setAttribute("value",b)},updateProgressBarUnknown:function(a){a&&a.removeAttribute("value")}}),h.defaults.themes.materialize=h.AbstractTheme.extend({setGridColumnSize:function(a,b){a.classList.add("col"),a.classList.add("s"+b)},getHeaderButtonHolder:function(){return this.getButtonHolder()},getButtonHolder:function(){return document.createElement("span")},getButton:function(a,b,c){a&&(b.classList.add("left"),b.style.marginRight="5px");var d=this._super(a,b,c);return d.classList.add("waves-effect","waves-light","btn"),d.style.fontSize="0.75rem",d.style.height="24px",d.style.lineHeight="24px",d.style.marginLeft="5px",d.style.padding="0 0.5rem",d},getFormControl:function(a,b,c,d){var e,f=b.type;if(f&&"checkbox"===f){if(e=document.createElement("p"),a){var g=document.createElement("span");g.innerHTML=a.innerHTML,a.innerHTML="",a.setAttribute("for",b.id),e.appendChild(a),a.appendChild(b),a.appendChild(g)}else e.appendChild(b);return e}return e=this._super(a,b,c,d),f&&f.startsWith("select")||e.classList.add("input-field"),f&&"color"===f&&(b.style.height="3rem",b.style.width="100%",b.style.margin="5px 0 20px 0",b.style.padding="3px",a&&(a.style.transform="translateY(-14px) scale(0.8)",a.style["-webkit-transform"]="translateY(-14px) scale(0.8)",a.style["-webkit-transform-origin"]="0 0",a.style["transform-origin"]="0 0")),e},getDescription:function(a){var b=document.createElement("div");return b.classList.add("grey-text"),b.style.marginTop="-15px",b.innerHTML=a,b},getHeader:function(a){var b=document.createElement("h5");return"string"==typeof a?b.textContent=a:b.appendChild(a),b},getChildEditorHolder:function(){var a=document.createElement("div");return a.marginBottom="10px",a},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("card-panel"),a},getTable:function(){var a=document.createElement("table");return a.classList.add("striped","bordered"),a.style.marginBottom="10px",a},getTableRow:function(){return document.createElement("tr")},getTableHead:function(){return document.createElement("thead")},getTableBody:function(){return document.createElement("tbody")},getTableHeaderCell:function(a){var b=document.createElement("th");return b.textContent=a,b},getTableCell:function(){var a=document.createElement("td");return a},getTabHolder:function(){var a=['<div class="col s2">',' <ul class="tabs" style="height: auto; margin-top: 0.82rem; -ms-flex-direction: column; -webkit-flex-direction: column; flex-direction: column; display: -webkit-flex; display: flex;">'," </ul>","</div>",'<div class="col s10">',"<div>"].join("\n"),b=document.createElement("div");return b.classList.add("row","card-panel"),b.innerHTML=a,b},addTab:function(a,b){a.children[0].children[0].appendChild(b)},getTab:function(a){var b=document.createElement("li");return b.classList.add("tab"),b.style=b.style||{},this.applyStyles(b,{width:"100%",textAlign:"left",lineHeight:"24px",height:"24px",fontSize:"14px",cursor:"pointer"}),b.appendChild(a),b},markTabActive:function(a){a.style=a.style||{},this.applyStyles(a,{width:"100%",textAlign:"left",lineHeight:"24px",height:"24px",fontSize:"14px",cursor:"pointer",color:"rgba(238,110,115,1)",transition:"border-color .5s ease",borderRight:"3px solid #424242"})},markTabInactive:function(a){a.style=a.style||{},this.applyStyles(a,{width:"100%",textAlign:"left",lineHeight:"24px",height:"24px",fontSize:"14px",cursor:"pointer",color:"rgba(238,110,115,0.7)"})},getTabContentHolder:function(a){return a.children[1]},getTabContent:function(){return document.createElement("div")},addInputError:function(a,b){var c,d=a.parentNode;d&&(this.removeInputError(a),c=document.createElement("div"),c.classList.add("error-text","red-text"),c.textContent=b,d.appendChild(c))},removeInputError:function(a){var b,c=a.parentElement;if(c){b=c.getElementsByClassName("error-text");for(var d=0;d<b.length;d++)c.removeChild(b[d])}},addTableRowError:function(a){},removeTableRowError:function(a){},getSelectInput:function(a){var b=this._super(a);return b.classList.add("browser-default"),b},getTextareaInput:function(){var a=document.createElement("textarea");return a.style.marginBottom="5px",a.style.fontSize="1rem",a.style.fontFamily="monospace",a},getCheckbox:function(){var a=this.getFormInputField("checkbox");return a.id=this.createUuid(),a},getModal:function(){var a=document.createElement("div");return a.classList.add("card-panel","z-depth-3"),a.style.padding="5px",a.style.position="absolute",a.style.zIndex="10",a.style.display="none",a},createUuid:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"==a?b:3&b|8;return c.toString(16)})}}),h.AbstractIconLib=c.extend({mapping:{collapse:"",expand:"","delete":"",edit:"",add:"",cancel:"",save:"",moveup:"",movedown:""},icon_prefix:"",getIconClass:function(a){return this.mapping[a]?this.icon_prefix+this.mapping[a]:null},getIcon:function(a){var b=this.getIconClass(a);if(!b)return null;var c=document.createElement("i");return c.classList.add.apply(c.classList,b.split(" ")),c}}),h.defaults.iconlibs.bootstrap2=h.AbstractIconLib.extend({mapping:{collapse:"chevron-down",expand:"chevron-up","delete":"trash",edit:"pencil",add:"plus",cancel:"ban-circle",save:"ok",moveup:"arrow-up",movedown:"arrow-down",clear:"remove-circle",time:"time",calendar:"calendar"},icon_prefix:"icon-"}),h.defaults.iconlibs.bootstrap3=h.AbstractIconLib.extend({mapping:{collapse:"chevron-down",expand:"chevron-right","delete":"remove",edit:"pencil",add:"plus",cancel:"floppy-remove",save:"floppy-saved",moveup:"arrow-up",movedown:"arrow-down",clear:"remove-circle",time:"time",calendar:"calendar"},icon_prefix:"glyphicon glyphicon-"}),h.defaults.iconlibs.fontawesome3=h.AbstractIconLib.extend({mapping:{collapse:"chevron-down",expand:"chevron-right","delete":"remove",edit:"pencil",add:"plus",cancel:"ban-circle",save:"save",moveup:"arrow-up",movedown:"arrow-down",clear:"remove-circle",time:"time",calendar:"calendar"},icon_prefix:"icon-"}),h.defaults.iconlibs.fontawesome4=h.AbstractIconLib.extend({mapping:{collapse:"caret-square-o-down",expand:"caret-square-o-right","delete":"times",edit:"pencil",add:"plus",cancel:"ban",save:"save",moveup:"arrow-up",movedown:"arrow-down",copy:"files-o",clear:"times-circle-o",time:"clock-o",calendar:"calendar"},icon_prefix:"fa fa-"}),h.defaults.iconlibs.fontawesome5=h.AbstractIconLib.extend({mapping:{collapse:"caret-down",expand:"caret-right","delete":"times",edit:"pen",add:"plus",cancel:"ban",save:"save",moveup:"arrow-up",movedown:"arrow-down",copy:"copy",clear:"times-circle",time:"clock",calendar:"calendar"},icon_prefix:"fas fa-"}),h.defaults.iconlibs.foundation2=h.AbstractIconLib.extend({mapping:{collapse:"minus",expand:"plus","delete":"remove",edit:"edit",add:"add-doc",cancel:"error",save:"checkmark",moveup:"up-arrow",movedown:"down-arrow",clear:"remove",time:"clock",calendar:"calendar"},icon_prefix:"foundicon-"}),h.defaults.iconlibs.foundation3=h.AbstractIconLib.extend({mapping:{collapse:"minus",expand:"plus","delete":"x",edit:"pencil",add:"page-add",cancel:"x-circle",save:"save",moveup:"arrow-up",movedown:"arrow-down",clear:"x-circle",time:"clock",calendar:"calendar"},icon_prefix:"fi-"}),h.defaults.iconlibs.jqueryui=h.AbstractIconLib.extend({mapping:{collapse:"triangle-1-s",expand:"triangle-1-e","delete":"trash",edit:"pencil",add:"plusthick",cancel:"closethick",save:"disk",moveup:"arrowthick-1-n",movedown:"arrowthick-1-s",clear:"circle-close",time:"time",calendar:"calendar"},icon_prefix:"ui-icon ui-icon-"}),h.defaults.iconlibs.materialicons=h.AbstractIconLib.extend({mapping:{collapse:"arrow_drop_up",expand:"arrow_drop_down","delete":"delete",edit:"edit",add:"add",cancel:"cancel",save:"save",moveup:"arrow_upward",movedown:"arrow_downward",copy:"content_copy",clear:"highlight_off",time:"access_time",calendar:"calendar_today",upload:"cloud_upload"},icon_class:"material-icons",icon_prefix:"",getIconClass:function(a){return this.icon_class},getIcon:function(a){var b=this.mapping[a];if(!b)return null;var c=document.createElement("i");c.classList.add(this.icon_class);var d=document.createTextNode(b);return c.appendChild(d),c}}),h.defaults.templates["default"]=function(){return{compile:function(a){var b=a.match(/{{\s*([a-zA-Z0-9\-_ \.]+)\s*}}/g),c=b&&b.length;if(!c)return function(){return a};for(var d=[],e=function(a){var c,e=b[a].replace(/[{}]+/g,"").trim().split("."),f=e.length;if(f>1){var g;c=function(b){for(g=b,a=0;a<f&&(g=g[e[a]],g);a++);return g}}else e=e[0],c=function(a){return a[e]};d.push({s:b[a],r:c})},f=0;f<c;f++)e(f);return function(b){var e,g=a+"";for(f=0;f<c;f++)e=d[f],g=g.replace(e.s,e.r(b));return g}}}},h.defaults.templates.ejs=function(){return!!window.EJS&&{compile:function(a){var b=new window.EJS({text:a});return function(a){return b.render(a)}}}},h.defaults.templates.handlebars=function(){return window.Handlebars},h.defaults.templates.hogan=function(){return!!window.Hogan&&{compile:function(a){var b=window.Hogan.compile(a);return function(a){return b.render(a)}}}},h.defaults.templates.lodash=function(){return!!window._&&{compile:function(a){return function(b){return window._.template(a)(b)}}}},h.defaults.templates.markup=function(){return!(!window.Mark||!window.Mark.up)&&{compile:function(a){return function(b){return window.Mark.up(a,b)}}}},h.defaults.templates.mustache=function(){return!!window.Mustache&&{compile:function(a){return function(b){return window.Mustache.render(a,b)}}}},h.defaults.templates.swig=function(){return window.swig},h.defaults.templates.underscore=function(){
          return!!window._&&{compile:function(a){return function(b){return window._.template(a,b)}}}},h.defaults.theme="html",h.defaults.template="default",h.defaults.options={},h.defaults.options.prompt_before_delete=!0,h.defaults.options.upload=function(a,b,c){console.log("Upload handler required for upload editor")},h.defaults.translate=function(a,b){var c=h.defaults.languages[h.defaults.language];if(!c)throw"Unknown language "+h.defaults.language;var d=c[a]||h.defaults.languages[h.defaults.default_language][a];if("undefined"==typeof d)throw"Unknown translate string "+a;if(b)for(var e=0;e<b.length;e++)d=d.replace(new RegExp("\\{\\{"+e+"}}","g"),b[e]);return d},h.defaults.default_language="en",h.defaults.language=h.defaults.default_language,h.defaults.languages.en={error_notset:"Property must be set",error_notempty:"Value required",error_enum:"Value must be one of the enumerated values",error_anyOf:"Value must validate against at least one of the provided schemas",error_oneOf:"Value must validate against exactly one of the provided schemas. It currently validates against {{0}} of the schemas.",error_not:"Value must not validate against the provided schema",error_type_union:"Value must be one of the provided types",error_type:"Value must be of type {{0}}",error_disallow_union:"Value must not be one of the provided disallowed types",error_disallow:"Value must not be of type {{0}}",error_multipleOf:"Value must be a multiple of {{0}}",error_maximum_excl:"Value must be less than {{0}}",error_maximum_incl:"Value must be at most {{0}}",error_minimum_excl:"Value must be greater than {{0}}",error_minimum_incl:"Value must be at least {{0}}",error_maxLength:"Value must be at most {{0}} characters long",error_minLength:"Value must be at least {{0}} characters long",error_pattern:"Value must match the pattern {{0}}",error_additionalItems:"No additional items allowed in this array",error_maxItems:"Value must have at most {{0}} items",error_minItems:"Value must have at least {{0}} items",error_uniqueItems:"Array must have unique items",error_maxProperties:"Object must have at most {{0}} properties",error_minProperties:"Object must have at least {{0}} properties",error_required:"Object is missing the required property '{{0}}'",error_additional_properties:"No additional properties allowed, but property {{0}} is set",error_dependency:"Must have property {{0}}",error_date:"Date must be in the format {{0}}",error_time:"Time must be in the format {{0}}",error_datetime_local:"Datetime must be in the format {{0}}",error_invalid_epoch:"Date must be greater than 1 January 1970",button_delete_all:"All",button_delete_all_title:"Delete All",button_delete_last:"Last {{0}}",button_delete_last_title:"Delete Last {{0}}",button_add_row_title:"Add {{0}}",button_move_down_title:"Move down",button_move_up_title:"Move up",button_delete_row_title:"Delete {{0}}",button_delete_row_title_short:"Delete",button_collapse:"Collapse",button_expand:"Expand",flatpickr_toggle_button:"Toggle",flatpickr_clear_button:"Clear"},h.plugins={ace:{theme:""},SimpleMDE:{},sceditor:{},select2:{},selectize:{}},f(h.defaults.editors,function(a,b){h.defaults.editors[a].options=b.options||{}}),h.defaults.resolvers.unshift(function(a){if("string"!=typeof a.type)return"multiple"}),h.defaults.resolvers.unshift(function(a){if(!a.type&&a.properties)return"object"}),h.defaults.resolvers.unshift(function(a){if("string"==typeof a.type)return a.type}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&"signature"===a.format)return"signature"}),h.defaults.resolvers.unshift(function(a){if("integer"===a.type&&"rating"===a.format)return"rating"}),h.defaults.resolvers.unshift(function(a){if("boolean"===a.type)return"checkbox"===a.format||a.options&&a.options.checkbox?"checkbox":h.plugins.selectize.enable?"selectize":"select"}),h.defaults.resolvers.unshift(function(a){if("any"===a.type)return"multiple"}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&a.media&&"base64"===a.media.binaryEncoding)return"base64"}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&"url"===a.format&&a.options&&a.options.upload===!0&&window.FileReader)return"upload"}),h.defaults.resolvers.unshift(function(a){if("array"===a.type&&"table"===a.format)return"table"}),h.defaults.resolvers.unshift(function(a){if(a.enumSource)return h.plugins.selectize.enable?"selectize":"select"}),h.defaults.resolvers.unshift(function(a){if(a["enum"]){if("array"===a.type||"object"===a.type)return"enum";if("number"===a.type||"integer"===a.type||"string"===a.type)return h.plugins.selectize.enable?"selectize":"select"}}),h.defaults.resolvers.unshift(function(a){if("array"===a.type&&a.items&&!Array.isArray(a.items)&&a.uniqueItems&&["string","number","integer"].indexOf(a.items.type)>=0){if(a.items["enum"])return"multiselect";if(h.plugins.selectize.enable&&"string"===a.items.type)return"arraySelectize"}}),h.defaults.resolvers.unshift(function(a){if(a.oneOf||a.anyOf)return"multiple"}),h.defaults.resolvers.unshift(function(a){if(["string","integer"].indexOf(a.type)!==-1&&["date","time","datetime-local"].indexOf(a.format)!==-1)return"datetime"}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&"starrating"===a.format)return"starrating"}),function(){if(window.jQuery||window.Zepto){var a=window.jQuery||window.Zepto;a.jsoneditor=h.defaults,a.fn.jsoneditor=function(a){var b=this,c=this.data("jsoneditor");if("value"===a){if(!c)throw"Must initialize jsoneditor before getting/setting the value";if(!(arguments.length>1))return c.getValue();c.setValue(arguments[1])}else{if("validate"===a){if(!c)throw"Must initialize jsoneditor before validating";return arguments.length>1?c.validate(arguments[1]):c.validate()}"destroy"===a?c&&(c.destroy(),this.data("jsoneditor",null)):(c&&c.destroy(),c=new h(this.get(0),a),this.data("jsoneditor",c),c.on("change",function(){b.trigger("change")}),c.on("ready",function(){b.trigger("ready")}))}return this}}}(),h});
          //# sourceMappingURL=jsoneditor.min.js.map
          )====="
          -

          Definition at line 2 of file js_jsoneditor.h.

          - -
          -
          - - - - - - diff --git a/docs/js__jsoneditor_8h__dep__incl.md5 b/docs/js__jsoneditor_8h__dep__incl.md5 deleted file mode 100644 index c3adcfaee..000000000 --- a/docs/js__jsoneditor_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -ccbe1c79b461133368b7074920888d22 \ No newline at end of file diff --git a/docs/js__jsoneditor_8h__dep__incl.png b/docs/js__jsoneditor_8h__dep__incl.png deleted file mode 100644 index adb6d2285..000000000 Binary files a/docs/js__jsoneditor_8h__dep__incl.png and /dev/null differ diff --git a/docs/js__jsoneditor_8h__incl.md5 b/docs/js__jsoneditor_8h__incl.md5 deleted file mode 100644 index 45890bf95..000000000 --- a/docs/js__jsoneditor_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -052bd1d536defb9b8ece1e9fbe1fd99e \ No newline at end of file diff --git a/docs/js__jsoneditor_8h__incl.png b/docs/js__jsoneditor_8h__incl.png deleted file mode 100644 index 45673fb8d..000000000 Binary files a/docs/js__jsoneditor_8h__incl.png and /dev/null differ diff --git a/docs/js__jsoneditor_8h_source.html b/docs/js__jsoneditor_8h_source.html deleted file mode 100644 index abd41df4c..000000000 --- a/docs/js__jsoneditor_8h_source.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - -SensESP: src/net/web/js_jsoneditor.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          js_jsoneditor.h
          -
          -
          -Go to the documentation of this file.
          1 #include <pgmspace.h>
          2 const char PAGE_js_jsoneditor[] PROGMEM = R"=====(
          14 !function(a,b){"use strict";var c=b(a);"object"==typeof module&&null!=module&&module.exports?module.exports=c:"function"==typeof define&&define.amd?define(function(){return c}):a.JSONEditor=c}("undefined"!=typeof window?window:this,function(a,b){var c;!function(){var a=!1,b=/xyz/.test(function(){window.postMessage("xyz")})?/\b_super\b/:/.*/;return c=function(){},c.extend=function d(c){function e(){!a&&this.init&&this.init.apply(this,arguments)}var f=this.prototype;a=!0;var g=new this;a=!1;for(var h in c)g[h]="function"==typeof c[h]&&"function"==typeof f[h]&&b.test(c[h])?function(a,b){return function(){var c=this._super;this._super=f[a];var d=b.apply(this,arguments);return this._super=c,d}}(h,c[h]):c[h];return e.prototype=g,e.prototype.constructor=e,e.extend=d,e},c}(),function(){function a(a,c){c=c||{bubbles:!1,cancelable:!1,detail:b};var d=document.createEvent("CustomEvent");return d.initCustomEvent(a,c.bubbles,c.cancelable,c.detail),d}a.prototype=window.Event.prototype,window.CustomEvent=a}(),function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!window.requestAnimationFrame;++c)window.requestAnimationFrame=window[b[c]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[b[c]+"CancelAnimationFrame"]||window[b[c]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(b,c){var d=(new Date).getTime(),e=Math.max(0,16-(d-a)),f=window.setTimeout(function(){b(d+e)},e);return a=d+e,f}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(a){clearTimeout(a)})}(),function(){Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)})}();var d=function(a){return!("object"!=typeof a||a.nodeType||null!==a&&a===a.window)&&!(a.constructor&&!Object.prototype.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))},e=function(a){var b,c,f;for(c=1;c<arguments.length;c++){b=arguments[c];for(f in b)b.hasOwnProperty(f)&&(b[f]&&d(b[f])?(a.hasOwnProperty(f)||(a[f]={}),e(a[f],b[f])):a[f]=b[f])}return a},f=function(a,b){if(a&&"object"==typeof a){var c;if(Array.isArray(a)||"number"==typeof a.length&&a.length>0&&a.length-1 in a){for(c=0;c<a.length;c++)if(b(c,a[c])===!1)return}else if(Object.keys){var d=Object.keys(a);for(c=0;c<d.length;c++)if(b(d[c],a[d[c]])===!1)return}else for(c in a)if(a.hasOwnProperty(c)&&b(c,a[c])===!1)return}},g=function(a,b){var c=document.createEvent("HTMLEvents");c.initEvent(b,!0,!0),a.dispatchEvent(c)},h=function(a,b){if(!(a instanceof Element))throw new Error("element should be an instance of Element");b=e({},h.defaults.options,b||{}),this.element=a,this.options=b,this.init()};h.prototype={constructor:h,init:function(){var a=this;this.ready=!1,this.copyClipboard=null,this.refs_with_info={},this.refs_prefix="#/counter/",this.refs_counter=1;var b=h.defaults.themes[this.options.theme||h.defaults.theme];if(!b)throw"Unknown theme "+(this.options.theme||h.defaults.theme);this.schema=this.options.schema,this.theme=new b,this.template=this.options.template,this.refs=this.options.refs||{},this.uuid=0,this.__data={};var c=h.defaults.iconlibs[this.options.iconlib||h.defaults.iconlib];c&&(this.iconlib=new c),this.root_container=this.theme.getContainer(),this.element.appendChild(this.root_container),this.translate=this.options.translate||h.defaults.translate;var d=document.location.toString(),e=this._getFileBase();this._loadExternalRefs(this.schema,function(){a._getDefinitions(a.schema,d+"#/definitions/");var b={};a.options.custom_validators&&(b.custom_validators=a.options.custom_validators),a.validator=new h.Validator(a,null,b);var c=a.expandRefs(a.schema),e=a.getEditorClass(c);a.root=a.createEditor(e,{jsoneditor:a,schema:c,required:!0,container:a.root_container}),a.root.preBuild(),a.root.build(),a.root.postBuild(),a.options.hasOwnProperty("startval")&&a.root.setValue(a.options.startval),a.validation_results=a.validator.validate(a.root.getValue()),a.root.showValidationErrors(a.validation_results),a.ready=!0,window.requestAnimationFrame(function(){a.ready&&(a.validation_results=a.validator.validate(a.root.getValue()),a.root.showValidationErrors(a.validation_results),a.trigger("ready"),a.trigger("change"))})},d,e)},getValue:function(){if(!this.ready)throw"JSON Editor not ready yet. Listen for 'ready' event before getting the value";return this.root.getValue()},setValue:function(a){if(!this.ready)throw"JSON Editor not ready yet. Listen for 'ready' event before setting the value";return this.root.setValue(a),this},validate:function(a){if(!this.ready)throw"JSON Editor not ready yet. Listen for 'ready' event before validating";return 1===arguments.length?this.validator.validate(a):this.validation_results},destroy:function(){this.destroyed||this.ready&&(this.schema=null,this.options=null,this.root.destroy(),this.root=null,this.root_container=null,this.validator=null,this.validation_results=null,this.theme=null,this.iconlib=null,this.template=null,this.__data=null,this.ready=!1,this.element.innerHTML="",this.destroyed=!0)},on:function(a,b){return this.callbacks=this.callbacks||{},this.callbacks[a]=this.callbacks[a]||[],this.callbacks[a].push(b),this},off:function(a,b){if(a&&b){this.callbacks=this.callbacks||{},this.callbacks[a]=this.callbacks[a]||[];for(var c=[],d=0;d<this.callbacks[a].length;d++)this.callbacks[a][d]!==b&&c.push(this.callbacks[a][d]);this.callbacks[a]=c}else a?(this.callbacks=this.callbacks||{},this.callbacks[a]=[]):this.callbacks={};return this},trigger:function(a){if(this.callbacks&&this.callbacks[a]&&this.callbacks[a].length)for(var b=0;b<this.callbacks[a].length;b++)this.callbacks[a][b].apply(this,[]);return this},setOption:function(a,b){if("show_errors"!==a)throw"Option "+a+" must be set during instantiation and cannot be changed later";return this.options.show_errors=b,this.onChange(),this},getEditorClass:function(a){var b;if(a=this.expandSchema(a),f(h.defaults.resolvers,function(c,d){var e=d(a);if(e&&h.defaults.editors[e])return b=e,!1}),!b)throw"Unknown editor for schema "+JSON.stringify(a);if(!h.defaults.editors[b])throw"Unknown editor "+b;return h.defaults.editors[b]},createEditor:function(a,b){return b=e({},a.options||{},b),new a(b)},onChange:function(){if(this.ready&&!this.firing_change){this.firing_change=!0;var a=this;return window.requestAnimationFrame(function(){a.firing_change=!1,a.ready&&(a.validation_results=a.validator.validate(a.root.getValue()),"never"!==a.options.show_errors?a.root.showValidationErrors(a.validation_results):a.root.showValidationErrors([]),a.trigger("change"))}),this}},compileTemplate:function(a,b){b=b||h.defaults.template;var c;if("string"==typeof b){if(!h.defaults.templates[b])throw"Unknown template engine "+b;if(c=h.defaults.templates[b](),!c)throw"Template engine "+b+" missing required library."}else c=b;if(!c)throw"No template engine set";if(!c.compile)throw"Invalid template engine set";return c.compile(a)},_data:function(a,b,c){if(3!==arguments.length)return a.hasAttribute("data-jsoneditor-"+b)?this.__data[a.getAttribute("data-jsoneditor-"+b)]:null;var d;a.hasAttribute("data-jsoneditor-"+b)?d=a.getAttribute("data-jsoneditor-"+b):(d=this.uuid++,a.setAttribute("data-jsoneditor-"+b,d)),this.__data[d]=c},registerEditor:function(a){return this.editors=this.editors||{},this.editors[a.path]=a,this},unregisterEditor:function(a){return this.editors=this.editors||{},this.editors[a.path]=null,this},getEditor:function(a){if(this.editors)return this.editors[a]},watch:function(a,b){return this.watchlist=this.watchlist||{},this.watchlist[a]=this.watchlist[a]||[],this.watchlist[a].push(b),this},unwatch:function(a,b){if(!this.watchlist||!this.watchlist[a])return this;if(!b)return this.watchlist[a]=null,this;for(var c=[],d=0;d<this.watchlist[a].length;d++)this.watchlist[a][d]!==b&&c.push(this.watchlist[a][d]);return this.watchlist[a]=c.length?c:null,this},notifyWatchers:function(a){if(!this.watchlist||!this.watchlist[a])return this;for(var b=0;b<this.watchlist[a].length;b++)this.watchlist[a][b]()},isEnabled:function(){return!this.root||this.root.isEnabled()},enable:function(){this.root.enable()},disable:function(){this.root.disable()},_getDefinitions:function(a,b){if(a.definitions)for(var c in a.definitions)a.definitions.hasOwnProperty(c)&&(this.refs[b+c]=a.definitions[c],a.definitions[c].definitions&&this._getDefinitions(a.definitions[c],b+c+"/definitions/"))},_getExternalRefs:function(a,b){var c={},d=function(a){for(var b in a)a.hasOwnProperty(b)&&(c[b]=!0)};if(a.$ref&&"object"!=typeof a.$ref){var e=this.refs_prefix+this.refs_counter++;"#"===a.$ref.substr(0,1)||this.refs[a.$ref]||(c[a.$ref]=!0),this.refs_with_info[e]={fetchUrl:b,$ref:a.$ref},a.$ref=e}for(var f in a)if(a.hasOwnProperty(f)&&a[f]&&"object"==typeof a[f])if(Array.isArray(a[f]))for(var g=0;g<a[f].length;g++)a[f][g]&&"object"==typeof a[f][g]&&d(this._getExternalRefs(a[f][g],b));else d(this._getExternalRefs(a[f],b));return c},_getFileBase:function(){var a=this.options.ajaxBase;return"undefined"==typeof a&&(a=this._getFileBaseFromFileLocation(document.location.toString())),a},_getFileBaseFromFileLocation:function(a){var b=a.split("/");return b.pop(),b.join("/")+"/"},_loadExternalRefs:function(a,b,c,d){var e=this,g=this._getExternalRefs(a,c),h=0,i=0,j=!1;f(g,function(a){if(!e.refs[a]){if(!e.options.ajax)throw"Must set ajax option to true to load external ref "+a;e.refs[a]="loading",i++;var c=a;d!=a.substr(0,d.length)&&"http"!=a.substr(0,4)&&"/"!=a.substr(0,1)&&(c=d+a);var f=new XMLHttpRequest;f.overrideMimeType("application/json"),f.open("GET",c,!0),e.options.ajaxCredentials&&(f.withCredentials=e.options.ajaxCredentials),f.onreadystatechange=function(){if(4==f.readyState){if(200!==f.status)throw window.console.log(f),"Failed to fetch ref via ajax- "+a;var d;try{d=JSON.parse(f.responseText)}catch(g){throw window.console.log(g),"Failed to parse external ref "+c}if("boolean"!=typeof d&&"object"!=typeof d||null===d||Array.isArray(d))throw"External ref does not contain a valid schema - "+c;e.refs[a]=d;var k=e._getFileBaseFromFileLocation(c);e._getDefinitions(d,c+"#/definitions/"),e._loadExternalRefs(d,function(){h++,h>=i&&!j&&(j=!0,b())},c,k)}},f.send()}}),i||b()},expandRefs:function(a){for(a=e({},a);a.$ref;){var b=this.refs_with_info[a.$ref];delete a.$ref;var c="";b.$ref.startsWith("#")&&(c=b.fetchUrl);var d=c+b.$ref;this.refs[d]||(d=c+decodeURIComponent(b.$ref)),a=this.extendSchemas(a,e({},this.refs[d]))}return a},expandSchema:function(a,b){var c,d=this,g=e({},a);if("object"==typeof a.type&&(Array.isArray(a.type)?f(a.type,function(b,c){"object"==typeof c&&(a.type[b]=d.expandSchema(c))}):a.type=d.expandSchema(a.type)),"object"==typeof a.disallow&&(Array.isArray(a.disallow)?f(a.disallow,function(b,c){"object"==typeof c&&(a.disallow[b]=d.expandSchema(c))}):a.disallow=d.expandSchema(a.disallow)),a.anyOf&&f(a.anyOf,function(b,c){a.anyOf[b]=d.expandSchema(c)}),a.dependencies&&f(a.dependencies,function(b,c){"object"!=typeof c||Array.isArray(c)||(a.dependencies[b]=d.expandSchema(c))}),a.not&&(a.not=this.expandSchema(a.not)),a.allOf){for(c=0;c<a.allOf.length;c++)g=this.extendSchemas(g,this.expandSchema(a.allOf[c]));delete g.allOf}if(a["extends"]){if(Array.isArray(a["extends"]))for(c=0;c<a["extends"].length;c++)g=this.extendSchemas(g,this.expandSchema(a["extends"][c]));else g=this.extendSchemas(g,this.expandSchema(a["extends"]));delete g["extends"]}if(a.oneOf){var h=e({},g);for(delete h.oneOf,c=0;c<a.oneOf.length;c++)g.oneOf[c]=this.extendSchemas(this.expandSchema(a.oneOf[c]),h)}return this.expandRefs(g)},extendSchemas:function(a,b){a=e({},a),b=e({},b);var c=this,d={};return f(a,function(a,e){"undefined"!=typeof b[a]?"required"!==a&&"defaultProperties"!==a||"object"!=typeof e||!Array.isArray(e)?"type"!==a||"string"!=typeof e&&!Array.isArray(e)?"object"==typeof e&&Array.isArray(e)?d[a]=e.filter(function(c){return b[a].indexOf(c)!==-1}):"object"==typeof e&&null!==e?d[a]=c.extendSchemas(e,b[a]):d[a]=e:("string"==typeof e&&(e=[e]),"string"==typeof b.type&&(b.type=[b.type]),b.type&&b.type.length?d.type=e.filter(function(a){return b.type.indexOf(a)!==-1}):d.type=e,1===d.type.length&&"string"==typeof d.type[0]?d.type=d.type[0]:0===d.type.length&&delete d.type):d[a]=e.concat(b[a]).reduce(function(a,b){return a.indexOf(b)<0&&a.push(b),a},[]):d[a]=e}),f(b,function(b,c){"undefined"==typeof a[b]&&(d[b]=c)}),d},setCopyClipboardContents:function(a){this.copyClipboard=a},getCopyClipboardContents:function(){return this.copyClipboard}},h.defaults={themes:{},templates:{},iconlibs:{},editors:{},languages:{},resolvers:[],custom_validators:[]},h.Validator=c.extend({init:function(a,b,c){this.jsoneditor=a,this.schema=b||this.jsoneditor.schema,this.options=c||{},this.translate=this.jsoneditor.translate||h.defaults.translate},validate:function(a){return this._validateSchema(this.schema,a)},_validateSchema:function(a,c,d){var g,i,j,k=this,l=[],m=JSON.stringify(c);if(d=d||"root",a=e({},this.jsoneditor.expandRefs(a)),"undefined"==typeof c)return("undefined"!=typeof a.required&&a.required===!0||"undefined"==typeof a.required&&this.jsoneditor.options.required_by_default===!0)&&l.push({path:d,property:"required",message:this.translate("error_notset")}),l;if(a["enum"]){for(g=!1,i=0;i<a["enum"].length;i++)m===JSON.stringify(a["enum"][i])&&(g=!0);g||l.push({path:d,property:"enum",message:this.translate("error_enum")})}if(a["extends"])for(i=0;i<a["extends"].length;i++)l=l.concat(this._validateSchema(a["extends"][i],c,d));if(a.allOf)for(i=0;i<a.allOf.length;i++)l=l.concat(this._validateSchema(a.allOf[i],c,d));if(a.anyOf){for(g=!1,i=0;i<a.anyOf.length;i++)if(!this._validateSchema(a.anyOf[i],c,d).length){g=!0;break}g||l.push({path:d,property:"anyOf",message:this.translate("error_anyOf")})}if(a.oneOf){g=0;var n=[];for(i=0;i<a.oneOf.length;i++){var o=this._validateSchema(a.oneOf[i],c,d);for(o.length||g++,j=0;j<o.length;j++)o[j].path=d+".oneOf["+i+"]"+o[j].path.substr(d.length);n=n.concat(o)}1!==g&&(l.push({path:d,property:"oneOf",message:this.translate("error_oneOf",[g])}),l=l.concat(n))}if(a.not&&(this._validateSchema(a.not,c,d).length||l.push({path:d,property:"not",message:this.translate("error_not")})),a.type)if(Array.isArray(a.type)){for(g=!1,i=0;i<a.type.length;i++)if(this._checkType(a.type[i],c)){g=!0;break}g||l.push({path:d,property:"type",message:this.translate("error_type_union")})}else["date","time","datetime-local"].indexOf(a.format)!=-1&&"integer"==a.type?this._checkType("string",""+c)||l.push({path:d,property:"type",message:this.translate("error_type",[a.format])}):this._checkType(a.type,c)||l.push({path:d,property:"type",message:this.translate("error_type",[a.type])});if(a.disallow)if(Array.isArray(a.disallow)){for(g=!0,i=0;i<a.disallow.length;i++)if(this._checkType(a.disallow[i],c)){g=!1;break}g||l.push({path:d,property:"disallow",message:this.translate("error_disallow_union")})}else this._checkType(a.disallow,c)&&l.push({path:d,property:"disallow",message:this.translate("error_disallow",[a.disallow])});if("number"==typeof c){if(a.multipleOf||a.divisibleBy){var p=a.multipleOf||a.divisibleBy;g=c/p===Math.floor(c/p),window.math?g=window.math.mod(window.math.bignumber(c),window.math.bignumber(p)).equals(0):window.Decimal&&(g=new window.Decimal(c).mod(new window.Decimal(p)).equals(0)),g||l.push({path:d,property:a.multipleOf?"multipleOf":"divisibleBy",message:this.translate("error_multipleOf",[p])})}a.hasOwnProperty("maximum")&&(g=a.exclusiveMaximum?c<a.maximum:c<=a.maximum,window.math?g=window.math[a.exclusiveMaximum?"smaller":"smallerEq"](window.math.bignumber(c),window.math.bignumber(a.maximum)):window.Decimal&&(g=new window.Decimal(c)[a.exclusiveMaximum?"lt":"lte"](new window.Decimal(a.maximum))),g||l.push({path:d,property:"maximum",message:this.translate(a.exclusiveMaximum?"error_maximum_excl":"error_maximum_incl",[a.maximum])})),a.hasOwnProperty("minimum")&&(g=a.exclusiveMinimum?c>a.minimum:c>=a.minimum,window.math?g=window.math[a.exclusiveMinimum?"larger":"largerEq"](window.math.bignumber(c),window.math.bignumber(a.minimum)):window.Decimal&&(g=new window.Decimal(c)[a.exclusiveMinimum?"gt":"gte"](new window.Decimal(a.minimum))),g||l.push({path:d,property:"minimum",message:this.translate(a.exclusiveMinimum?"error_minimum_excl":"error_minimum_incl",[a.minimum])}))}else if("string"==typeof c)a.maxLength&&(c+"").length>a.maxLength&&l.push({path:d,property:"maxLength",message:this.translate("error_maxLength",[a.maxLength])}),a.minLength&&(c+"").length<a.minLength&&l.push({path:d,property:"minLength",message:this.translate(1===a.minLength?"error_notempty":"error_minLength",[a.minLength])}),a.pattern&&(new RegExp(a.pattern).test(c)||l.push({path:d,property:"pattern",message:this.translate("error_pattern",[a.pattern])}));else if("object"==typeof c&&null!==c&&Array.isArray(c)){if(a.items)if(Array.isArray(a.items))for(i=0;i<c.length;i++)if(a.items[i])l=l.concat(this._validateSchema(a.items[i],c[i],d+"."+i));else{if(a.additionalItems===!0)break;if(!a.additionalItems){if(a.additionalItems===!1){l.push({path:d,property:"additionalItems",message:this.translate("error_additionalItems")});break}break}l=l.concat(this._validateSchema(a.additionalItems,c[i],d+"."+i))}else for(i=0;i<c.length;i++)l=l.concat(this._validateSchema(a.items,c[i],d+"."+i));if(a.maxItems&&c.length>a.maxItems&&l.push({path:d,property:"maxItems",message:this.translate("error_maxItems",[a.maxItems])}),a.minItems&&c.length<a.minItems&&l.push({path:d,property:"minItems",message:this.translate("error_minItems",[a.minItems])}),a.uniqueItems){var q={};for(i=0;i<c.length;i++){if(g=JSON.stringify(c[i]),q[g]){l.push({path:d,property:"uniqueItems",message:this.translate("error_uniqueItems")});break}q[g]=!0}}}else if("object"==typeof c&&null!==c){if(a.maxProperties){g=0;for(i in c)c.hasOwnProperty(i)&&g++;g>a.maxProperties&&l.push({path:d,property:"maxProperties",message:this.translate("error_maxProperties",[a.maxProperties])})}if(a.minProperties){g=0;for(i in c)c.hasOwnProperty(i)&&g++;g<a.minProperties&&l.push({path:d,property:"minProperties",message:this.translate("error_minProperties",[a.minProperties])})}if("undefined"!=typeof a.required&&Array.isArray(a.required))for(i=0;i<a.required.length;i++)"undefined"==typeof c[a.required[i]]&&l.push({path:d,property:"required",message:this.translate("error_required",[a.required[i]])});var r={};for(i in a.properties)a.properties.hasOwnProperty(i)&&(r[i]=!0,l=l.concat(this._validateSchema(a.properties[i],c[i],d+"."+i)));if(a.patternProperties)for(i in a.patternProperties)if(a.patternProperties.hasOwnProperty(i)){var s=new RegExp(i);for(j in c)c.hasOwnProperty(j)&&s.test(j)&&(r[j]=!0,l=l.concat(this._validateSchema(a.patternProperties[i],c[j],d+"."+j)))}if("undefined"!=typeof a.additionalProperties||!this.jsoneditor.options.no_additional_properties||a.oneOf||a.anyOf||(a.additionalProperties=!1),"undefined"!=typeof a.additionalProperties)for(i in c)if(c.hasOwnProperty(i)&&!r[i]){if(!a.additionalProperties){l.push({path:d,property:"additionalProperties",message:this.translate("error_additional_properties",[i])});break}if(a.additionalProperties===!0)break;l=l.concat(this._validateSchema(a.additionalProperties,c[i],d+"."+i))}if(a.dependencies)for(i in a.dependencies)if(a.dependencies.hasOwnProperty(i)&&"undefined"!=typeof c[i])if(Array.isArray(a.dependencies[i]))for(j=0;j<a.dependencies[i].length;j++)"undefined"==typeof c[a.dependencies[i][j]]&&l.push({path:d,property:"dependencies",message:this.translate("error_dependency",[a.dependencies[i][j]])});else l=l.concat(this._validateSchema(a.dependencies[i],c,d))}if(["date","time","datetime-local"].indexOf(a.format)!=-1){var t={date:/^(\d{4}\D\d{2}\D\d{2})?$/,time:/^(\d{2}:\d{2}(?::\d{2})?)?$/,"datetime-local":/^(\d{4}\D\d{2}\D\d{2} \d{2}:\d{2}(?::\d{2})?)?$/},u={date:'"YYYY-MM-DD"',time:'"HH:MM"',"datetime-local":'"YYYY-MM-DD HH:MM"'},v=this.jsoneditor.getEditor(d),w=v.flatpickr?v.flatpickr.config.dateFormat:u[v.format];if("integer"==a.type)1*c<1?l.push({path:d,property:"format",message:this.translate("error_invalid_epoch")}):c!=Math.abs(parseInt(c))&&l.push({path:d,property:"format",message:this.translate("error_"+v.format.replace(/-/g,"_"),[w])});else if(v.flatpickr){if(""!==c){var x;if("single"!=v.flatpickr.config.mode){var y="range"==v.flatpickr.config.mode?v.flatpickr.l10n.rangeSeparator:", ",z=v.flatpickr.selectedDates.map(function(a){return v.flatpickr.formatDate(a,v.flatpickr.config.dateFormat)});x=z.join(y)}try{if(x){if(x!=c)throw v.flatpickr.config.mode+" mismatch"}else if(v.flatpickr.formatDate(v.flatpickr.parseDate(c,v.flatpickr.config.dateFormat),v.flatpickr.config.dateFormat)!=c)throw"mismatch"}catch(A){var B=v.flatpickr.config.errorDateFormat!==b?v.flatpickr.config.errorDateFormat:v.flatpickr.config.dateFormat;l.push({path:d,property:"format",message:this.translate("error_"+v.format.replace(/-/g,"_"),[B])})}}}else t[v.format].test(c)||l.push({path:d,property:"format",message:this.translate("error_"+v.format.replace(/-/g,"_"),[u[v.format]])})}return f(h.defaults.custom_validators,function(b,e){l=l.concat(e.call(k,a,c,d))}),this.options.custom_validators&&f(this.options.custom_validators,function(b,e){l=l.concat(e.call(k,a,c,d))}),l},_checkType:function(a,b){return"string"==typeof a?"string"===a?"string"==typeof b:"number"===a?"number"==typeof b:"integer"===a?"number"==typeof b&&b===Math.floor(b):"boolean"===a?"boolean"==typeof b:"array"===a?Array.isArray(b):"object"===a?null!==b&&!Array.isArray(b)&&"object"==typeof b:"null"!==a||null===b:!this._validateSchema(a,b).length}}),h.AbstractEditor=c.extend({onChildEditorChange:function(a){this.onChange(!0)},notify:function(){this.path&&this.jsoneditor.notifyWatchers(this.path)},change:function(){this.parent?this.parent.onChildEditorChange(this):this.jsoneditor&&this.jsoneditor.onChange()},onChange:function(a){this.notify(),this.watch_listener&&this.watch_listener(),a&&this.change()},register:function(){this.jsoneditor.registerEditor(this),this.onChange()},unregister:function(){this.jsoneditor&&this.jsoneditor.unregisterEditor(this)},getNumColumns:function(){return 12},init:function(a){this.jsoneditor=a.jsoneditor,this.theme=this.jsoneditor.theme,this.template_engine=this.jsoneditor.template,this.iconlib=this.jsoneditor.iconlib,this.translate=this.jsoneditor.translate||h.defaults.translate,this.original_schema=a.schema,this.schema=this.jsoneditor.expandSchema(this.original_schema),this.options=e({},this.options||{},this.schema.options||{},a.schema.options||{},a),a.path||this.schema.id||(this.schema.id="root"),this.path=a.path||"root",this.formname=a.formname||this.path.replace(/\.([^.]+)/g,"[$1]"),this.jsoneditor.options.form_name_root&&(this.formname=this.formname.replace(/^root\[/,this.jsoneditor.options.form_name_root+"[")),this.key=this.path.split(".").pop(),this.parent=a.parent,this.link_watchers=[],a.container&&this.setContainer(a.container),this.registerDependencies()},registerDependencies:function(){this.dependenciesFulfilled=!0;var a=this.options.dependencies;if(a){var b=this;Object.keys(a).forEach(function(c){var d=b.path.split(".");d[d.length-1]=c,d=d.join(".");var e=a[c];b.jsoneditor.watch(d,function(){b.checkDependency(d,e)})})}},checkDependency:function(a,c){var d=this.control||this.container;if(this.path!==a&&d){var e=this,f=this.jsoneditor.getEditor(a),g=f?f.getValue():b,h=this.dependenciesFulfilled;this.dependenciesFulfilled=!1,f&&f.dependenciesFulfilled?Array.isArray(c)?c.some(function(a){if(g===a)return e.dependenciesFulfilled=!0,!0}):"object"==typeof c?"object"!=typeof g?this.dependenciesFulfilled=c===g:Object.keys(c).some(function(a){return!!c.hasOwnProperty(a)&&(g.hasOwnProperty(a)&&c[a]===g[a]?void(e.dependenciesFulfilled=!0):(e.dependenciesFulfilled=!1,!0))}):"string"==typeof c||"number"==typeof c?this.dependenciesFulfilled=g===c:"boolean"==typeof c&&(c?this.dependenciesFulfilled=g&&g.length>0:this.dependenciesFulfilled=!g||0===g.length):this.dependenciesFulfilled=!1,this.dependenciesFulfilled!==h&&this.notify(),this.dependenciesFulfilled?d.style.display="block":d.style.display="none"}},setContainer:function(a){this.container=a,this.schema.id&&this.container.setAttribute("data-schemaid",this.schema.id),this.schema.type&&"string"==typeof this.schema.type&&this.container.setAttribute("data-schematype",this.schema.type),this.container.setAttribute("data-schemapath",this.path)},preBuild:function(){},build:function(){},postBuild:function(){this.setupWatchListeners(),this.addLinks(),this.setValue(this.getDefault(),!0),this.updateHeaderText(),this.register(),this.onWatchedFieldChange()},setupWatchListeners:function(){var a=this;if(this.watched={},this.schema.vars&&(this.schema.watch=this.schema.vars),this.watched_values={},this.watch_listener=function(){a.refreshWatchedFieldValues()&&a.onWatchedFieldChange()},this.schema.hasOwnProperty("watch")){var b,c,d,e,f;for(var g in this.schema.watch)if(this.schema.watch.hasOwnProperty(g)){if(b=this.schema.watch[g],Array.isArray(b)){if(b.length<2)continue;c=[b[0]].concat(b[1].split("."))}else c=b.split("."),a.theme.closest(a.container,'[data-schemaid="'+c[0]+'"]')||c.unshift("#");if(d=c.shift(),"#"===d&&(d=a.jsoneditor.schema.id||"root"),e=a.theme.closest(a.container,'[data-schemaid="'+d+'"]'),!e)throw"Could not find ancestor node with id "+d;f=e.getAttribute("data-schemapath")+"."+c.join("."),a.jsoneditor.watch(f,a.watch_listener),a.watched[g]=f}}this.schema.headerTemplate&&(this.header_template=this.jsoneditor.compileTemplate(this.schema.headerTemplate,this.template_engine))},addLinks:function(){if(!this.no_link_holder&&(this.link_holder=this.theme.getLinksHolder(),this.container.appendChild(this.link_holder),this.schema.links))for(var a=0;a<this.schema.links.length;a++)this.addLink(this.getLink(this.schema.links[a]))},onMove:function(){},getButton:function(a,b,c){var d="json-editor-btn-"+b;b=this.iconlib?this.iconlib.getIcon(b):null,!b&&c&&(a=c,c=null);var e=this.theme.getButton(a,b,c);return e.classList.add(d),e},setButtonText:function(a,b,c,d){return c=this.iconlib?this.iconlib.getIcon(c):null,!c&&d&&(b=d,d=null),this.theme.setButtonText(a,b,c,d)},addLink:function(a){this.link_holder&&this.link_holder.appendChild(a)},getLink:function(a){var b,c,d=a.mediaType||"application/javascript",e=d.split("/")[0],f=this.jsoneditor.compileTemplate(a.href,this.template_engine),g=this.jsoneditor.compileTemplate(a.rel?a.rel:a.href,this.template_engine),h=null;if(a.download&&(h=a.download),h&&h!==!0&&(h=this.jsoneditor.compileTemplate(h,this.template_engine)),"image"===e){b=this.theme.getBlockLinkHolder(),c=document.createElement("a"),c.setAttribute("target","_blank");var i=document.createElement("img");this.theme.createImageLink(b,c,i),this.link_watchers.push(function(a){var b=f(a),d=g(a);c.setAttribute("href",b),c.setAttribute("title",d||b),i.setAttribute("src",b)})}else if(["audio","video"].indexOf(e)>=0){b=this.theme.getBlockLinkHolder(),c=this.theme.getBlockLink(),c.setAttribute("target","_blank");var j=document.createElement(e);j.setAttribute("controls","controls"),this.theme.createMediaLink(b,c,j),this.link_watchers.push(function(a){var b=f(a),d=g(a);c.setAttribute("href",b),c.textContent=d||b,j.setAttribute("src",b)})}else c=b=this.theme.getBlockLink(),b.setAttribute("target","_blank"),b.textContent=a.rel,this.link_watchers.push(function(a){var c=f(a),d=g(a);b.setAttribute("href",c),b.textContent=d||c});return h&&c&&(h===!0?c.setAttribute("download",""):this.link_watchers.push(function(a){c.setAttribute("download",h(a))})),a["class"]&&c.classList.add(a["class"]),b},refreshWatchedFieldValues:function(){if(this.watched_values){var a={},b=!1,c=this;if(this.watched){var d,e;for(var f in this.watched)this.watched.hasOwnProperty(f)&&(e=c.jsoneditor.getEditor(this.watched[f]),d=e?e.getValue():null,c.watched_values[f]!==d&&(b=!0),a[f]=d)}return a.self=this.getValue(),this.watched_values.self!==a.self&&(b=!0),this.watched_values=a,b}},getWatchedFieldValues:function(){return this.watched_values},updateHeaderText:function(){if(this.header)if(this.header.children.length){for(var a=0;a<this.header.childNodes.length;a++)if(3===this.header.childNodes[a].nodeType){this.header.childNodes[a].nodeValue=this.getHeaderText();break}}else this.header.textContent=this.getHeaderText()},getHeaderText:function(a){return this.header_text?this.header_text:a?this.schema.title:this.getTitle()},onWatchedFieldChange:function(){var a;if(this.header_template){a=e(this.getWatchedFieldValues(),{key:this.key,i:this.key,i0:1*this.key,i1:1*this.key+1,title:this.getTitle()});var b=this.header_template(a);b!==this.header_text&&(this.header_text=b,this.updateHeaderText(),this.notify())}if(this.link_watchers.length){a=this.getWatchedFieldValues();for(var c=0;c<this.link_watchers.length;c++)this.link_watchers[c](a)}},setValue:function(a){this.value=a},getValue:function(){return this.dependenciesFulfilled?this.value:b},refreshValue:function(){},getChildEditors:function(){return!1},destroy:function(){var a=this;this.unregister(this),f(this.watched,function(b,c){a.jsoneditor.unwatch(c,a.watch_listener)}),this.watched=null,this.watched_values=null,this.watch_listener=null,this.header_text=null,this.header_template=null,this.value=null,this.container&&this.container.parentNode&&this.container.parentNode.removeChild(this.container),this.container=null,this.jsoneditor=null,this.schema=null,this.path=null,this.key=null,this.parent=null},getDefault:function(){if("undefined"!=typeof this.schema["default"])return this.schema["default"];if("undefined"!=typeof this.schema["enum"])return this.schema["enum"][0];var a=this.schema.type||this.schema.oneOf;if(a&&Array.isArray(a)&&(a=a[0]),a&&"object"==typeof a&&(a=a.type),a&&Array.isArray(a)&&(a=a[0]),"string"==typeof a){if("number"===a)return 0;if("boolean"===a)return!1;if("integer"===a)return 0;if("string"===a)return"";if("object"===a)return{};if("array"===a)return[]}return null},getTitle:function(){return this.schema.title||this.key},enable:function(){this.disabled=!1},disable:function(){this.disabled=!0},isEnabled:function(){return!this.disabled},isRequired:function(){return"boolean"==typeof this.schema.required?this.schema.required:this.parent&&this.parent.schema&&Array.isArray(this.parent.schema.required)?this.parent.schema.required.indexOf(this.key)>-1:!!this.jsoneditor.options.required_by_default},getDisplayText:function(a){var b=[],c={};f(a,function(a,b){b.title&&(c[b.title]=c[b.title]||0,c[b.title]++),b.description&&(c[b.description]=c[b.description]||0,c[b.description]++),b.format&&(c[b.format]=c[b.format]||0,c[b.format]++),b.type&&(c[b.type]=c[b.type]||0,c[b.type]++)}),f(a,function(a,d){var e;e="string"==typeof d?d:d.title&&c[d.title]<=1?d.title:d.format&&c[d.format]<=1?d.format:d.type&&c[d.type]<=1?d.type:d.description&&c[d.description]<=1?d.descripton:d.title?d.title:d.format?d.format:d.type?d.type:d.description?d.description:JSON.stringify(d).length<500?JSON.stringify(d):"type",b.push(e)});var d={};return f(b,function(a,e){d[e]=d[e]||0,d[e]++,c[e]>1&&(b[a]=e+" "+d[e])}),b},getValidId:function(a){return a=a===b?"":a.toString(),a.replace(/\s+/g,"-")},setInputAttributes:function(a){if(this.schema.options&&this.schema.options.inputAttributes){var b=this.schema.options.inputAttributes,c=["name","type"].concat(a);for(var d in b)b.hasOwnProperty(d)&&c.indexOf(d.toLowerCase())==-1&&this.input.setAttribute(d,b[d])}},getOption:function(a){try{throw"getOption is deprecated"}catch(b){window.console.error(b)}return this.options[a]},showValidationErrors:function(a){}}),h.defaults.editors["null"]=h.AbstractEditor.extend({getValue:function(){return this.dependenciesFulfilled?null:b},setValue:function(){this.onChange()},getNumColumns:function(){return 2}}),h.defaults.editors.string=h.AbstractEditor.extend({register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},setValue:function(a,b,c){if((!this.template||c)&&(null===a||"undefined"==typeof a?a="":"object"==typeof a?a=JSON.stringify(a):"string"!=typeof a&&(a=""+a),
          15 a!==this.serialized)){var d=this.sanitize(a);if(this.input.value!==d){this.input.value=d,this.sceditor_instance?this.sceditor_instance.val(d):this.SimpleMDE?this.SimpleMDE.value(d):this.ace_editor&&(this.ace_editor.setValue(d),this.ace_editor.session.getSelection().clearSelection(),this.ace_editor.resize());var e=c||this.getValue()!==a;this.refreshValue(),b?this.is_dirty=!1:"change"===this.jsoneditor.options.show_errors&&(this.is_dirty=!0),this.adjust_height&&this.adjust_height(this.input),this.onChange(e)}}},getNumColumns:function(){var a,b=Math.ceil(Math.max(this.getTitle().length,this.schema.maxLength||0,this.schema.minLength||0)/5);return a="textarea"===this.input_type?6:["text","email"].indexOf(this.input_type)>=0?4:2,Math.min(12,Math.max(b,a))},build:function(){var a=this;if(this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.format=this.schema.format,!this.format&&this.schema.media&&this.schema.media.type&&(this.format=this.schema.media.type.replace(/(^(application|text)\/(x-)?(script\.)?)|(-source$)/g,"")),!this.format&&this.options.default_format&&(this.format=this.options.default_format),this.options.format&&(this.format=this.options.format),this.format)if("textarea"===this.format)this.input_type="textarea",this.input=this.theme.getTextareaInput();else if("range"===this.format){this.input_type="range";var b=this.schema.minimum||0,c=this.schema.maximum||Math.max(100,b+1),d=1;this.schema.multipleOf&&(b%this.schema.multipleOf&&(b=Math.ceil(b/this.schema.multipleOf)*this.schema.multipleOf),c%this.schema.multipleOf&&(c=Math.floor(c/this.schema.multipleOf)*this.schema.multipleOf),d=this.schema.multipleOf),this.input=this.theme.getRangeInput(b,c,d)}else["actionscript","batchfile","bbcode","c","c++","cpp","coffee","csharp","css","dart","django","ejs","erlang","golang","groovy","handlebars","haskell","haxe","html","ini","jade","java","javascript","json","less","lisp","lua","makefile","markdown","matlab","mysql","objectivec","pascal","perl","pgsql","php","python","r","ruby","sass","scala","scss","smarty","sql","sqlserver","stylus","svg","twig","vbscript","xml","yaml"].indexOf(this.format)>=0?(this.input_type=this.format,this.source_code=!0,this.input=this.theme.getTextareaInput()):(this.input_type=this.format,this.input=this.theme.getFormInputField(this.input_type));else this.input_type="text",this.input=this.theme.getFormInputField(this.input_type);if("undefined"!=typeof this.schema.maxLength&&this.input.setAttribute("maxlength",this.schema.maxLength),"undefined"!=typeof this.schema.pattern?this.input.setAttribute("pattern",this.schema.pattern):"undefined"!=typeof this.schema.minLength&&this.input.setAttribute("pattern",".{"+this.schema.minLength+",}"),this.options.compact?this.container.classList.add("compact"):this.options.input_width&&(this.input.style.width=this.options.input_width),(this.schema.readOnly||this.schema.readonly||this.schema.template)&&(this.always_disabled=!0,this.input.setAttribute("readonly","true")),this.setInputAttributes(["maxlength","pattern","readonly","min","max","step"]),this.input.addEventListener("change",function(b){if(b.preventDefault(),b.stopPropagation(),a.schema.template)return void(this.value=a.value);var c=this.value,d=a.sanitize(c);c!==d&&(this.value=d),a.is_dirty=!0,a.refreshValue(),a.onChange(!0)}),this.options.input_height&&(this.input.style.height=this.options.input_height),this.options.expand_height&&(this.adjust_height=function(a){if(a){var b,c=a.offsetHeight;if(a.offsetHeight<a.scrollHeight)for(b=0;a.offsetHeight<a.scrollHeight+3&&!(b>100);)b++,c++,a.style.height=c+"px";else{for(b=0;a.offsetHeight>=a.scrollHeight+3&&!(b>100);)b++,c--,a.style.height=c+"px";a.style.height=c+1+"px"}}},this.input.addEventListener("keyup",function(b){a.adjust_height(this)}),this.input.addEventListener("change",function(b){a.adjust_height(this)}),this.adjust_height()),this.format&&this.input.setAttribute("data-schemaformat",this.format),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),"range"===this.format){var e=document.createElement("output");e.setAttribute("class","range-output"),this.control.appendChild(e),e.value=this.schema["default"],this.input.addEventListener("change",function(){e.value=a.input.value}),this.input.addEventListener("input",function(){e.value=a.input.value})}this.container.appendChild(this.control),window.requestAnimationFrame(function(){a.input.parentNode&&a.afterInputReady(),a.adjust_height&&a.adjust_height(a.input)}),this.schema.template?(this.template=this.jsoneditor.compileTemplate(this.schema.template,this.template_engine),this.refreshValue()):this.refreshValue()},postBuild:function(){this._super(),window.Cleave&&this.schema.options&&"object"==typeof this.schema.options.cleave&&(this.cleave=new window.Cleave(this.input,this.schema.options.cleave))},enable:function(){this.always_disabled||(this.input.disabled=!1,this._super())},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this._super()},afterInputReady:function(){var a,b=this;if(this.source_code)if(this.options.wysiwyg&&["html","bbcode"].indexOf(this.input_type)>=0&&window.jQuery&&window.jQuery.fn&&window.jQuery.fn.sceditor)a=e({},{plugins:"html"===b.input_type?"xhtml":"bbcode",emoticonsEnabled:!1,width:"100%",height:300},h.plugins.sceditor,b.options.sceditor_options||{}),window.jQuery(b.input).sceditor(a),b.sceditor_instance=window.jQuery(b.input).sceditor("instance"),b.sceditor_instance.blur(function(){var a=window.jQuery("<div>"+b.sceditor_instance.val()+"</div>");window.jQuery("#sceditor-start-marker,#sceditor-end-marker,.sceditor-nlf",a).remove(),b.input.value=a.html(),b.value=b.input.value,b.is_dirty=!0,b.onChange(!0)});else if("markdown"===this.input_type&&window.SimpleMDE)a=e({},h.plugins.SimpleMDE,{element:this.input}),this.SimpleMDE=new window.SimpleMDE(a),this.SimpleMDE.codemirror.on("change",function(){b.value=b.SimpleMDE.value(),b.is_dirty=!0,b.onChange(!0)});else if(window.ace){var c=this.input_type;"cpp"!==c&&"c++"!==c&&"c"!==c||(c="c_cpp"),this.ace_container=document.createElement("div"),this.ace_container.style.width="100%",this.ace_container.style.position="relative",this.ace_container.style.height="400px",this.input.parentNode.insertBefore(this.ace_container,this.input),this.input.style.display="none",this.ace_editor=window.ace.edit(this.ace_container);var d=this.schema.options&&this.schema.options.ace;d&&this.ace_editor.setOptions(d),this.ace_editor.setValue(this.getValue()),this.ace_editor.session.getSelection().clearSelection(),this.ace_editor.resize(),h.plugins.ace.theme&&this.ace_editor.setTheme("ace/theme/"+h.plugins.ace.theme),this.ace_editor.getSession().setMode("ace/mode/"+this.schema.format),this.ace_editor.on("change",function(){var a=b.ace_editor.getValue();b.input.value=a,b.refreshValue(),b.is_dirty=!0,b.onChange(!0)})}b.theme.afterInputReady(b.input)},refreshValue:function(){this.value=this.input.value,"string"!=typeof this.value&&(this.value=""),this.serialized=this.value},destroy:function(){this.sceditor_instance?this.sceditor_instance.destroy():this.SimpleMDE?(this.SimpleMDE.toTextArea(),this.SimpleMDE=null):this.ace_editor&&this.ace_editor.destroy(),this.cleave&&this.cleave.destroy(),this.template=null,this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this._super()},sanitize:function(a){return a},onWatchedFieldChange:function(){var a;this.template&&(a=this.getWatchedFieldValues(),this.setValue(this.template(a),!1,!0)),this._super()},showValidationErrors:function(a){var b=this;if("always"===this.jsoneditor.options.show_errors);else if(!this.is_dirty&&this.previous_error_setting===this.jsoneditor.options.show_errors)return;this.previous_error_setting=this.jsoneditor.options.show_errors;var c=[];f(a,function(a,d){d.path===b.path&&c.push(d.message)}),c.length?this.theme.addInputError(this.input,c.join(". ")+"."):this.theme.removeInputError(this.input)}}),h.defaults.editors.hidden=h.AbstractEditor.extend({register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},setValue:function(a,b,c){if((!this.template||c)&&(null===a||"undefined"==typeof a?a="":"object"==typeof a?a=JSON.stringify(a):"string"!=typeof a&&(a=""+a),a!==this.serialized)){var d=this.sanitize(a);if(this.input.value!==d){this.input.value=d;var e=c||this.getValue()!==a;this.refreshValue(),b?this.is_dirty=!1:"change"===this.jsoneditor.options.show_errors&&(this.is_dirty=!0),this.adjust_height&&this.adjust_height(this.input),this.onChange(e)}}},getNumColumns:function(){return 2},enable:function(){this._super()},disable:function(){this._super()},refreshValue:function(){this.value=this.input.value,"string"!=typeof this.value&&(this.value=""),this.serialized=this.value},destroy:function(){this.template=null,this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this._super()},sanitize:function(a){return a},onWatchedFieldChange:function(){var a;this.template&&(a=this.getWatchedFieldValues(),this.setValue(this.template(a),!1,!0)),this._super()},build:function(){this.format=this.schema.format,!this.format&&this.options.default_format&&(this.format=this.options.default_format),this.options.format&&(this.format=this.options.format),this.input_type="hidden",this.input=this.theme.getFormInputField(this.input_type),this.format&&this.input.setAttribute("data-schemaformat",this.format),this.container.appendChild(this.input),this.schema.template?(this.template=this.jsoneditor.compileTemplate(this.schema.template,this.template_engine),this.refreshValue()):this.refreshValue()}}),h.defaults.editors.number=h.defaults.editors.string.extend({build:function(){if(this._super(),"undefined"!=typeof this.schema.minimum){var a=this.schema.minimum;"undefined"!=typeof this.schema.exclusiveMinimum&&(a+=1),this.input.setAttribute("min",a)}if("undefined"!=typeof this.schema.maximum){var b=this.schema.maximum;"undefined"!=typeof this.schema.exclusiveMaximum&&(b-=1),this.input.setAttribute("max",b)}if("undefined"!=typeof this.schema.step){var c=this.schema.step||1;this.input.setAttribute("step",c)}this.setInputAttributes(["maxlength","pattern","readonly","min","max","step"])},sanitize:function(a){return(a+"").replace(/[^0-9\.\-eE]/g,"")},getNumColumns:function(){return 2},getValue:function(){return this.dependenciesFulfilled?""===this.value?b:1*this.value:b}}),h.defaults.editors.integer=h.defaults.editors.number.extend({sanitize:function(a){return a+="",a.replace(/[^0-9\-]/g,"")},getNumColumns:function(){return 2}}),h.defaults.editors.rating=h.defaults.editors.integer.extend({build:function(){var a,b=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description));var c="json-editor-style-rating",d=document.getElementById(c);if(!d){var e=document.createElement("style");e.id=c,e.type="text/css",e.innerHTML=" .rating-container { display: inline-block; clear: both; } .rating { float:left; } /* :not(:checked) is a filter, so that browsers that don’t support :checked don’t follow these rules. Every browser that supports :checked also supports :not(), so it doesn’t make the test unnecessarily selective */ .rating:not(:checked) > input { position:absolute; top:-9999px; clip:rect(0,0,0,0); } .rating:not(:checked) > label { float:right; width:1em; padding:0 .1em; overflow:hidden; white-space:nowrap; cursor:pointer; color:#ddd; } .rating:not(:checked) > label:before { content: '★ '; } .rating > input:checked ~ label { color: #FFB200; } .rating:not([readOnly]):not(:checked) > label:hover, .rating:not([readOnly]):not(:checked) > label:hover ~ label { color: #FFDA00; } .rating:not([readOnly]) > input:checked + label:hover, .rating:not([readOnly]) > input:checked + label:hover ~ label, .rating:not([readOnly]) > input:checked ~ label:hover, .rating:not([readOnly]) > input:checked ~ label:hover ~ label, .rating:not([readOnly]) > label:hover ~ input:checked ~ label { color: #FF8C0D; } .rating:not([readOnly]) > label:active { position:relative; top:2px; left:2px; }",document.getElementsByTagName("head")[0].appendChild(e)}this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input);var g=document.createElement("div");g.classList.add("rating-container");var h=document.createElement("div");h.setAttribute("name",this.formname),h.classList.add("rating"),g.appendChild(h),this.options.compact&&this.container.setAttribute("class",this.container.getAttribute("class")+" compact");var i=this.schema.maximum?this.schema.maximum:5;for(this.schema.exclusiveMaximum&&i--,this.inputs=[],a=i;a>0;a--){var j=this.formname+a,k=this.theme.getFormInputField("radio");k.setAttribute("id",j),k.setAttribute("value",a),k.setAttribute("name",this.formname),h.appendChild(k),this.inputs.push(k);var l=document.createElement("label");l.setAttribute("for",j),l.appendChild(document.createTextNode(a+(1==a?" star":" stars"))),h.appendChild(l)}(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,f(this.inputs,function(a,b){h.setAttribute("readOnly","readOnly"),b.disabled=!0})),g.addEventListener("change",function(a){a.preventDefault(),a.stopPropagation(),b.input.value=a.srcElement.value,b.is_dirty=!0,b.refreshValue(),b.watch_listener(),b.jsoneditor.notifyWatchers(b.path),b.parent?b.parent.onChildEditorChange(b):b.jsoneditor.onChange()}),this.control=this.theme.getFormControl(this.label,g,this.description),this.container.appendChild(this.control),this.refreshValue()},setValue:function(a){var b=this.sanitize(a);if(this.value!==b){var c=this;f(this.inputs,function(a,d){if(d.value===b)return d.checked=!0,c.value=b,c.input.value=c.value,c.watch_listener(),c.jsoneditor.notifyWatchers(c.path),!1})}}}),h.defaults.editors.object=h.AbstractEditor.extend({getDefault:function(){return e({},this.schema["default"]||{})},getChildEditors:function(){return this.editors},register:function(){if(this._super(),this.editors)for(var a in this.editors)this.editors.hasOwnProperty(a)&&this.editors[a].register()},unregister:function(){if(this._super(),this.editors)for(var a in this.editors)this.editors.hasOwnProperty(a)&&this.editors[a].unregister()},getNumColumns:function(){return Math.max(Math.min(12,this.maxwidth),3)},enable:function(){if(!this.always_disabled&&(this.editjson_button&&(this.editjson_button.disabled=!1),this.addproperty_button&&(this.addproperty_button.disabled=!1),this._super(),this.editors))for(var a in this.editors)this.editors.hasOwnProperty(a)&&this.editors[a].enable()},disable:function(a){if(a&&(this.always_disabled=!0),this.editjson_button&&(this.editjson_button.disabled=!0),this.addproperty_button&&(this.addproperty_button.disabled=!0),this.hideEditJSON(),this._super(),this.editors)for(var b in this.editors)this.editors.hasOwnProperty(b)&&this.editors[b].disable(a)},layoutEditors:function(){var a,b,c=this;if(this.row_container){this.property_order=Object.keys(this.editors),this.property_order=this.property_order.sort(function(a,b){var d=c.editors[a].schema.propertyOrder,e=c.editors[b].schema.propertyOrder;return"number"!=typeof d&&(d=1e3),"number"!=typeof e&&(e=1e3),d-e});var d,e="categories"===this.format;if("grid"===this.format){var h=[];for(f(this.property_order,function(a,b){var d=c.editors[b];if(!d.property_removed){for(var e=!1,f=d.options.hidden?0:d.options.grid_columns||d.getNumColumns(),g=d.options.hidden?0:d.container.offsetHeight,i=0;i<h.length;i++)h[i].width+f<=12&&(!g||.5*h[i].minh<g&&2*h[i].maxh>g)&&(e=i);e===!1&&(h.push({width:0,minh:999999,maxh:0,editors:[]}),e=h.length-1),h[e].editors.push({key:b,width:f,height:g}),h[e].width+=f,h[e].minh=Math.min(h[e].minh,g),h[e].maxh=Math.max(h[e].maxh,g)}}),a=0;a<h.length;a++)if(h[a].width<12){var i=!1,j=0;for(b=0;b<h[a].editors.length;b++)i===!1?i=b:h[a].editors[b].width>h[a].editors[i].width&&(i=b),h[a].editors[b].width*=12/h[a].width,h[a].editors[b].width=Math.floor(h[a].editors[b].width),j+=h[a].editors[b].width;j<12&&(h[a].editors[i].width+=12-j),h[a].width=12}if(this.layout===JSON.stringify(h))return!1;for(this.layout=JSON.stringify(h),d=document.createElement("div"),a=0;a<h.length;a++){var k=this.theme.getGridRow();for(d.appendChild(k),b=0;b<h[a].editors.length;b++){var l=h[a].editors[b].key,m=this.editors[l];m.options.hidden?m.container.style.display="none":this.theme.setGridColumnSize(m.container,h[a].editors[b].width),k.appendChild(m.container)}}}else{if(d=document.createElement("div"),e){var n=document.createElement("div"),o=this.theme.getTopTabHolder(this.schema.title),p=this.theme.getTopTabContentHolder(o);for(f(this.property_order,function(a,b){var d=c.editors[b];if(!d.property_removed){var e=c.theme.getTabContent(),f=d.schema&&("object"===d.schema.type||"array"===d.schema.type);e.isObjOrArray=f;var g=c.theme.getGridRow();d.tab||("undefined"==typeof c.basicPane?c.addRow(d,o,e):c.addRow(d,o,c.basicPane)),e.id=c.getValidId(d.tab_text.textContent),f?(e.appendChild(g),p.appendChild(e),c.theme.addTopTab(o,d.tab)):(n.appendChild(g),p.childElementCount>0?p.firstChild.isObjOrArray&&(e.appendChild(n),p.insertBefore(e,p.firstChild),c.theme.insertBasicTopTab(d.tab,o),d.basicPane=e):(e.appendChild(n),p.appendChild(e),c.theme.addTopTab(o,d.tab),d.basicPane=e)),d.options.hidden?d.container.style.display="none":c.theme.setGridColumnSize(d.container,12),g.appendChild(d.container),d.rowPane=e}});this.tabPanesContainer.firstChild;)this.tabPanesContainer.removeChild(this.tabPanesContainer.firstChild);var q=this.tabs_holder.parentNode;q.removeChild(q.firstChild),q.appendChild(o),this.tabPanesContainer=p,this.tabs_holder=o;var r=this.theme.getFirstTab(this.tabs_holder);return void(r&&g(r,"click"))}f(this.property_order,function(a,b){var e=c.editors[b];if(!e.property_removed){var f=c.theme.getGridRow();d.appendChild(f),e.options.hidden?e.container.style.display="none":c.theme.setGridColumnSize(e.container,12),f.appendChild(e.container)}})}for(;this.row_container.firstChild;)this.row_container.removeChild(this.row_container.firstChild);this.row_container.appendChild(d)}},getPropertySchema:function(a){var b=this.schema.properties[a]||{};b=e({},b);var c=!!this.schema.properties[a];if(this.schema.patternProperties)for(var d in this.schema.patternProperties)if(this.schema.patternProperties.hasOwnProperty(d)){var f=new RegExp(d);f.test(a)&&(b.allOf=b.allOf||[],b.allOf.push(this.schema.patternProperties[d]),c=!0)}return!c&&this.schema.additionalProperties&&"object"==typeof this.schema.additionalProperties&&(b=e({},this.schema.additionalProperties)),b},preBuild:function(){this._super(),this.editors={},this.cached_editors={};var a=this;if(this.format=this.options.layout||this.options.object_layout||this.schema.format||this.jsoneditor.options.object_layout||"normal",this.schema.properties=this.schema.properties||{},this.minwidth=0,this.maxwidth=0,this.options.table_row)f(this.schema.properties,function(b,c){var d=a.jsoneditor.getEditorClass(c);a.editors[b]=a.jsoneditor.createEditor(d,{jsoneditor:a.jsoneditor,schema:c,path:a.path+"."+b,parent:a,compact:!0,required:!0}),a.editors[b].preBuild();var e=a.editors[b].options.hidden?0:a.editors[b].options.grid_columns||a.editors[b].getNumColumns();a.minwidth+=e,a.maxwidth+=e}),this.no_link_holder=!0;else{if(this.options.table)throw"Not supported yet";this.schema.defaultProperties||(this.jsoneditor.options.display_required_only||this.options.display_required_only?(this.schema.defaultProperties=[],f(this.schema.properties,function(b,c){a.isRequired({key:b,schema:c})&&a.schema.defaultProperties.push(b)})):a.schema.defaultProperties=Object.keys(a.schema.properties)),a.maxwidth+=1,f(this.schema.defaultProperties,function(b,c){a.addObjectProperty(c,!0),a.editors[c]&&(a.minwidth=Math.max(a.minwidth,a.editors[c].options.grid_columns||a.editors[c].getNumColumns()),a.maxwidth+=a.editors[c].options.grid_columns||a.editors[c].getNumColumns())})}this.property_order=Object.keys(this.editors),this.property_order=this.property_order.sort(function(b,c){var d=a.editors[b].schema.propertyOrder,e=a.editors[c].schema.propertyOrder;return"number"!=typeof d&&(d=1e3),"number"!=typeof e&&(e=1e3),d-e})},addTab:function(a){var b=this,c=b.rows[a].schema&&("object"===b.rows[a].schema.type||"array"===b.rows[a].schema.type);b.tabs_holder&&(b.rows[a].tab_text=document.createElement("span"),c?b.rows[a].tab_text.textContent=b.rows[a].getHeaderText():b.rows[a].tab_text.textContent="undefined"==typeof b.schema.basicCategoryTitle?"Basic":b.schema.basicCategoryTitle,b.rows[a].tab=b.theme.getTopTab(b.rows[a].tab_text,this.getValidId(b.rows[a].tab_text.textContent)),b.rows[a].tab.addEventListener("click",function(c){b.active_tab=b.rows[a].tab,b.refreshTabs(),c.preventDefault(),c.stopPropagation()}))},addRow:function(a,b,c){var d=this,e=this.rows.length,f="object"===a.schema.type||"array"===a.schema.type;d.rows[e]=a,d.rows[e].rowPane=c,f?(d.addTab(e),d.theme.addTopTab(b,d.rows[e].tab)):"undefined"==typeof d.basicTab?(d.addTab(e),d.basicTab=e,d.basicPane=c,d.theme.addTopTab(b,d.rows[e].tab)):(d.rows[e].tab=d.rows[d.basicTab].tab,d.rows[e].tab_text=d.rows[d.basicTab].tab_text,d.rows[e].rowPane=d.rows[d.basicTab].rowPane)},refreshTabs:function(a){var b=this,c="undefined"!=typeof b.basicTab,d=!1;f(this.rows,function(e,f){f.tab&&f.rowPane&&f.rowPane.parentNode&&(c&&f.tab==b.rows[b.basicTab].tab&&d||(a?f.tab_text.textContent=f.getHeaderText():(c&&f.tab==b.rows[b.basicTab].tab&&(d=!0),f.tab===b.active_tab?b.theme.markTabActive(f):b.theme.markTabInactive(f))))})},build:function(){var a=this,b="categories"===this.format;if(this.rows=[],this.active_tab=null,this.options.table_row)this.editor_holder=this.container,f(this.editors,function(b,c){var d=a.theme.getTableCell();a.editor_holder.appendChild(d),c.setContainer(d),c.build(),c.postBuild(),a.editors[b].options.hidden&&(d.style.display="none"),a.editors[b].options.input_width&&(d.style.width=a.editors[b].options.input_width)});else{if(this.options.table)throw"Not supported yet";this.header=document.createElement("span"),this.header.textContent=this.getTitle(),this.title=this.theme.getHeader(this.header),this.container.appendChild(this.title),this.container.style.position="relative",this.editjson_holder=this.theme.getModal(),this.editjson_textarea=this.theme.getTextareaInput(),this.editjson_textarea.style.height="170px",this.editjson_textarea.style.width="300px",this.editjson_textarea.style.display="block",this.editjson_save=this.getButton("Save","save","Save"),this.editjson_save.classList.add("json-editor-btntype-save"),this.editjson_save.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.saveJSON()}),this.editjson_copy=this.getButton("Copy","copy","Copy"),this.editjson_copy.classList.add("json-editor-btntype-copy"),this.editjson_copy.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.copyJSON()}),this.editjson_cancel=this.getButton("Cancel","cancel","Cancel"),this.editjson_cancel.classList.add("json-editor-btntype-cancel"),this.editjson_cancel.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.hideEditJSON()}),this.editjson_holder.appendChild(this.editjson_textarea),this.editjson_holder.appendChild(this.editjson_save),this.editjson_holder.appendChild(this.editjson_copy),this.editjson_holder.appendChild(this.editjson_cancel),this.addproperty_holder=this.theme.getModal(),this.addproperty_list=document.createElement("div"),this.addproperty_list.style.width="295px",this.addproperty_list.style.maxHeight="160px",this.addproperty_list.style.padding="5px 0",this.addproperty_list.style.overflowY="auto",this.addproperty_list.style.overflowX="hidden",this.addproperty_list.style.paddingLeft="5px",this.addproperty_list.setAttribute("class","property-selector"),this.addproperty_add=this.getButton("add","add","add"),this.addproperty_add.classList.add("json-editor-btntype-add"),this.addproperty_input=this.theme.getFormInputField("text"),this.addproperty_input.setAttribute("placeholder","Property name..."),this.addproperty_input.style.width="220px",this.addproperty_input.style.marginBottom="0",this.addproperty_input.style.display="inline-block",this.addproperty_add.addEventListener("click",function(b){if(b.preventDefault(),b.stopPropagation(),a.addproperty_input.value){if(a.editors[a.addproperty_input.value])return void window.alert("there is already a property with that name");a.addObjectProperty(a.addproperty_input.value),a.editors[a.addproperty_input.value]&&a.editors[a.addproperty_input.value].disable(),a.onChange(!0)}}),this.addproperty_holder.appendChild(this.addproperty_list),this.addproperty_holder.appendChild(this.addproperty_input),this.addproperty_holder.appendChild(this.addproperty_add);var c=document.createElement("div");c.style.clear="both",this.addproperty_holder.appendChild(c),document.addEventListener("click",function(a){!this.addproperty_holder.contains(a.target)&&this.adding_property&&(a.preventDefault(),a.stopPropagation(),this.toggleAddProperty())}.bind(this)),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description),this.container.appendChild(this.description)),this.error_holder=document.createElement("div"),this.container.appendChild(this.error_holder),this.editor_holder=this.theme.getIndentedPanel(),this.container.appendChild(this.editor_holder),this.row_container=this.theme.getGridContainer(),b?(this.tabs_holder=this.theme.getTopTabHolder(this.getValidId(this.schema.title)),this.tabPanesContainer=this.theme.getTopTabContentHolder(this.tabs_holder),this.editor_holder.appendChild(this.tabs_holder)):(this.tabs_holder=this.theme.getTabHolder(this.getValidId(this.schema.title)),this.tabPanesContainer=this.theme.getTabContentHolder(this.tabs_holder),this.editor_holder.appendChild(this.row_container)),f(this.editors,function(c,d){var e=a.theme.getTabContent(),f=a.theme.getGridColumn(),g=!(!d.schema||"object"!==d.schema.type&&"array"!==d.schema.type);if(e.isObjOrArray=g,b){if(g){var h=a.theme.getGridContainer();h.appendChild(f),e.appendChild(h),a.tabPanesContainer.appendChild(e),a.row_container=h}else"undefined"==typeof a.row_container_basic&&(a.row_container_basic=a.theme.getGridContainer(),e.appendChild(a.row_container_basic),0==a.tabPanesContainer.childElementCount?a.tabPanesContainer.appendChild(e):a.tabPanesContainer.insertBefore(e,a.tabPanesContainer.childNodes[1])),a.row_container_basic.appendChild(f);a.addRow(d,a.tabs_holder,e),e.id=a.getValidId(d.schema.title)}else a.row_container.appendChild(f);d.setContainer(f),d.build(),d.postBuild()}),this.rows[0]&&g(this.rows[0].tab,"click"),this.title_controls=this.theme.getHeaderButtonHolder(),this.editjson_controls=this.theme.getHeaderButtonHolder(),this.addproperty_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.title.appendChild(this.editjson_controls),this.title.appendChild(this.addproperty_controls),this.collapsed=!1,this.toggle_button=this.getButton("","collapse",this.translate("button_collapse")),this.toggle_button.classList.add("json-editor-btntype-toggle"),this.title_controls.appendChild(this.toggle_button),this.toggle_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.collapsed?(a.editor_holder.style.display="",a.collapsed=!1,a.setButtonText(a.toggle_button,"","collapse",a.translate("button_collapse"))):(a.editor_holder.style.display="none",a.collapsed=!0,a.setButtonText(a.toggle_button,"","expand",a.translate("button_expand")))}),this.options.collapsed&&g(this.toggle_button,"click"),this.schema.options&&"undefined"!=typeof this.schema.options.disable_collapse?this.schema.options.disable_collapse&&(this.toggle_button.style.display="none"):this.jsoneditor.options.disable_collapse&&(this.toggle_button.style.display="none"),this.editjson_button=this.getButton("JSON","edit","Edit JSON"),this.editjson_button.classList.add("json-editor-btntype-editjson"),this.editjson_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.toggleEditJSON()}),this.editjson_controls.appendChild(this.editjson_button),this.editjson_controls.appendChild(this.editjson_holder),this.schema.options&&"undefined"!=typeof this.schema.options.disable_edit_json?this.schema.options.disable_edit_json&&(this.editjson_button.style.display="none"):this.jsoneditor.options.disable_edit_json&&(this.editjson_button.style.display="none"),this.addproperty_button=this.getButton("Properties","edit","Object Properties"),this.addproperty_button.classList.add("json-editor-btntype-properties"),this.addproperty_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.toggleAddProperty()}),this.addproperty_controls.appendChild(this.addproperty_button),this.addproperty_controls.appendChild(this.addproperty_holder),this.refreshAddProperties()}this.options.table_row?(this.editor_holder=this.container,f(this.property_order,function(b,c){a.editor_holder.appendChild(a.editors[c].container)})):(this.layoutEditors(),this.layoutEditors())},showEditJSON:function(){this.editjson_holder&&(this.hideAddProperty(),this.editjson_holder.style.left=this.editjson_button.offsetLeft+"px",this.editjson_holder.style.top=this.editjson_button.offsetTop+this.editjson_button.offsetHeight+"px",this.editjson_textarea.value=JSON.stringify(this.getValue(),null,2),this.disable(),this.editjson_holder.style.display="",this.editjson_button.disabled=!1,this.editing_json=!0)},hideEditJSON:function(){this.editjson_holder&&this.editing_json&&(this.editjson_holder.style.display="none",this.enable(),this.editing_json=!1)},copyJSON:function(){if(this.editjson_holder){var a=document.createElement("textarea");a.value=this.editjson_textarea.value,a.setAttribute("readonly",""),a.style.position="absolute",a.style.left="-9999px",document.body.appendChild(a),a.select(),document.execCommand("copy"),document.body.removeChild(a)}},saveJSON:function(){if(this.editjson_holder)try{var a=JSON.parse(this.editjson_textarea.value);this.setValue(a),this.hideEditJSON(),this.onChange(!0)}catch(b){throw window.alert("invalid JSON"),b}},toggleEditJSON:function(){this.editing_json?this.hideEditJSON():this.showEditJSON()},insertPropertyControlUsingPropertyOrder:function(a,b,c){var d;this.schema.properties[a]&&(d=this.schema.properties[a].propertyOrder),"number"!=typeof d&&(d=1e3),b.propertyOrder=d;for(var e=0;e<c.childNodes.length;e++){var f=c.childNodes[e];if(b.propertyOrder<f.propertyOrder){this.addproperty_list.insertBefore(b,f),b=null;break}}b&&this.addproperty_list.appendChild(b)},addPropertyCheckbox:function(a){var b,c,d,e,f=this;return b=f.theme.getCheckbox(),b.style.width="auto",d=this.schema.properties[a]&&this.schema.properties[a].title?this.schema.properties[a].title:a,c=f.theme.getCheckboxLabel(d),e=f.theme.getFormControl(c,b),e.style.paddingBottom=e.style.marginBottom=e.style.paddingTop=e.style.marginTop=0,e.style.height="auto",this.insertPropertyControlUsingPropertyOrder(a,e,this.addproperty_list),
          16 b.checked=a in this.editors,b.addEventListener("change",function(){b.checked?f.addObjectProperty(a):f.removeObjectProperty(a),f.onChange(!0)}),f.addproperty_checkboxes[a]=b,b},showAddProperty:function(){this.addproperty_holder&&(this.hideEditJSON(),this.addproperty_holder.style.left=this.addproperty_button.offsetLeft+"px",this.addproperty_holder.style.top=this.addproperty_button.offsetTop+this.addproperty_button.offsetHeight+"px",this.disable(),this.adding_property=!0,this.addproperty_button.disabled=!1,this.addproperty_holder.style.display="",this.refreshAddProperties())},hideAddProperty:function(){this.addproperty_holder&&this.adding_property&&(this.addproperty_holder.style.display="none",this.enable(),this.adding_property=!1)},toggleAddProperty:function(){this.adding_property?this.hideAddProperty():this.showAddProperty()},removeObjectProperty:function(a){this.editors[a]&&(this.editors[a].unregister(),delete this.editors[a],this.refreshValue(),this.layoutEditors())},addObjectProperty:function(a,b){var c=this;if(!this.editors[a]){if(this.cached_editors[a]){if(this.editors[a]=this.cached_editors[a],b)return;this.editors[a].register()}else{if(!(this.canHaveAdditionalProperties()||this.schema.properties&&this.schema.properties[a]))return;var d=c.getPropertySchema(a);"number"!=typeof d.propertyOrder&&(d.propertyOrder=Object.keys(c.editors).length+1e3);var e=c.jsoneditor.getEditorClass(d);if(c.editors[a]=c.jsoneditor.createEditor(e,{jsoneditor:c.jsoneditor,schema:d,path:c.path+"."+a,parent:c}),c.editors[a].preBuild(),!b){var f=c.theme.getChildEditorHolder();c.editor_holder.appendChild(f),c.editors[a].setContainer(f),c.editors[a].build(),c.editors[a].postBuild()}c.cached_editors[a]=c.editors[a]}b||(c.refreshValue(),c.layoutEditors())}},onChildEditorChange:function(a){this.refreshValue(),this._super(a)},canHaveAdditionalProperties:function(){return"boolean"==typeof this.schema.additionalProperties?this.schema.additionalProperties:!this.jsoneditor.options.no_additional_properties},destroy:function(){f(this.cached_editors,function(a,b){b.destroy()}),this.editor_holder&&(this.editor_holder.innerHTML=""),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.error_holder&&this.error_holder.parentNode&&this.error_holder.parentNode.removeChild(this.error_holder),this.editors=null,this.cached_editors=null,this.editor_holder&&this.editor_holder.parentNode&&this.editor_holder.parentNode.removeChild(this.editor_holder),this.editor_holder=null,this._super()},getValue:function(){if(!this.dependenciesFulfilled)return b;var a=this._super();if(this.jsoneditor.options.remove_empty_properties||this.options.remove_empty_properties)for(var c in a)a.hasOwnProperty(c)&&("undefined"==typeof a[c]||""===a[c]||a[c]===Object(a[c])&&0==Object.keys(a[c]).length&&a[c].constructor==Object)&&delete a[c];return a},refreshValue:function(){this.value={};for(var a in this.editors)this.editors.hasOwnProperty(a)&&(this.value[a]=this.editors[a].getValue());this.adding_property&&this.refreshAddProperties()},refreshAddProperties:function(){if(this.options.disable_properties||this.options.disable_properties!==!1&&this.jsoneditor.options.disable_properties)return void(this.addproperty_controls.style.display="none");var a,b=!1,c=!1,d=0,e=!1;for(a in this.editors)this.editors.hasOwnProperty(a)&&d++;b=this.canHaveAdditionalProperties()&&!("undefined"!=typeof this.schema.maxProperties&&d>=this.schema.maxProperties),this.addproperty_checkboxes&&(this.addproperty_list.innerHTML=""),this.addproperty_checkboxes={};for(a in this.cached_editors)this.cached_editors.hasOwnProperty(a)&&(this.addPropertyCheckbox(a),this.isRequired(this.cached_editors[a])&&a in this.editors&&(this.addproperty_checkboxes[a].disabled=!0),"undefined"!=typeof this.schema.minProperties&&d<=this.schema.minProperties?(this.addproperty_checkboxes[a].disabled=this.addproperty_checkboxes[a].checked,this.addproperty_checkboxes[a].checked||(e=!0)):a in this.editors?(e=!0,c=!0):b||this.schema.properties.hasOwnProperty(a)?(this.addproperty_checkboxes[a].disabled=!1,e=!0):this.addproperty_checkboxes[a].disabled=!0);this.canHaveAdditionalProperties()&&(e=!0);for(a in this.schema.properties)this.schema.properties.hasOwnProperty(a)&&(this.cached_editors[a]||(e=!0,this.addPropertyCheckbox(a)));e?this.canHaveAdditionalProperties()?b?this.addproperty_add.disabled=!1:this.addproperty_add.disabled=!0:(this.addproperty_add.style.display="none",this.addproperty_input.style.display="none"):(this.hideAddProperty(),this.addproperty_controls.style.display="none")},isRequired:function(a){return"boolean"==typeof a.schema.required?a.schema.required:Array.isArray(this.schema.required)?this.schema.required.indexOf(a.key)>-1:!!this.jsoneditor.options.required_by_default},setValue:function(a,b){var c=this;a=a||{},("object"!=typeof a||Array.isArray(a))&&(a={}),f(this.cached_editors,function(d,e){"undefined"!=typeof a[d]?(c.addObjectProperty(d),e.setValue(a[d],b)):b||c.isRequired(e)?e.setValue(e.getDefault(),b):c.removeObjectProperty(d)}),f(a,function(a,d){c.cached_editors[a]||(c.addObjectProperty(a),c.editors[a]&&c.editors[a].setValue(d,b))}),this.refreshValue(),this.layoutEditors(),this.onChange()},showValidationErrors:function(a){var b=this,c=[],d=[];if(f(a,function(a,e){e.path===b.path?c.push(e):d.push(e)}),this.error_holder)if(c.length){this.error_holder.innerHTML="",this.error_holder.style.display="",f(c,function(a,c){b.error_holder.appendChild(b.theme.getErrorMessage(c.message))})}else this.error_holder.style.display="none";this.options.table_row&&(c.length?this.theme.addTableRowError(this.container):this.theme.removeTableRowError(this.container)),f(this.editors,function(a,b){b.showValidationErrors(d)})}}),h.defaults.editors.array=h.AbstractEditor.extend({askConfirmation:function(){return this.jsoneditor.options.prompt_before_delete!==!0||confirm("Are you sure you want to remove this node?")!==!1},getDefault:function(){return this.schema["default"]||[]},register:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].register()},unregister:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].unregister()},getNumColumns:function(){var a=this.getItemInfo(0);return this.tabs_holder&&"tabs-top"!==this.schema.format?Math.max(Math.min(12,a.width+2),4):a.width},enable:function(){if(!this.always_disabled){if(this.add_row_button&&(this.add_row_button.disabled=!1),this.remove_all_rows_button&&(this.remove_all_rows_button.disabled=!1),this.delete_last_row_button&&(this.delete_last_row_button.disabled=!1),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].enable(),this.rows[a].moveup_button&&(this.rows[a].moveup_button.disabled=!1),this.rows[a].movedown_button&&(this.rows[a].movedown_button.disabled=!1),this.rows[a].delete_button&&(this.rows[a].delete_button.disabled=!1);this._super()}},disable:function(a){if(a&&(this.always_disabled=!0),this.add_row_button&&(this.add_row_button.disabled=!0),this.remove_all_rows_button&&(this.remove_all_rows_button.disabled=!0),this.delete_last_row_button&&(this.delete_last_row_button.disabled=!0),this.rows)for(var b=0;b<this.rows.length;b++)this.rows[b].disable(a),this.rows[b].moveup_button&&(this.rows[b].moveup_button.disabled=!0),this.rows[b].movedown_button&&(this.rows[b].movedown_button.disabled=!0),this.rows[b].delete_button&&(this.rows[b].delete_button.disabled=!0);this._super()},preBuild:function(){this._super(),this.rows=[],this.row_cache=[],this.hide_delete_buttons=this.options.disable_array_delete||this.jsoneditor.options.disable_array_delete,this.hide_delete_all_rows_buttons=this.hide_delete_buttons||this.options.disable_array_delete_all_rows||this.jsoneditor.options.disable_array_delete_all_rows,this.hide_delete_last_row_buttons=this.hide_delete_buttons||this.options.disable_array_delete_last_row||this.jsoneditor.options.disable_array_delete_last_row,this.hide_move_buttons=this.options.disable_array_reorder||this.jsoneditor.options.disable_array_reorder,this.hide_add_button=this.options.disable_array_add||this.jsoneditor.options.disable_array_add,this.show_copy_button=this.options.enable_array_copy||this.jsoneditor.options.enable_array_copy,this.array_controls_top=this.options.array_controls_top||this.jsoneditor.options.array_controls_top},build:function(){this.options.compact?(this.panel=this.theme.getIndentedPanel(),this.container.appendChild(this.panel),this.title_controls=this.theme.getHeaderButtonHolder(),this.panel.appendChild(this.title_controls),this.controls=this.theme.getButtonHolder(),this.panel.appendChild(this.controls),this.row_holder=document.createElement("div"),this.panel.appendChild(this.row_holder)):(this.header=document.createElement("span"),this.header.textContent=this.getTitle(),this.title=this.theme.getHeader(this.header),this.container.appendChild(this.title),this.title_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description),this.container.appendChild(this.description)),this.error_holder=document.createElement("div"),this.container.appendChild(this.error_holder),"tabs-top"===this.schema.format?(this.controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.controls),this.tabs_holder=this.theme.getTopTabHolder(this.getValidId(this.getItemTitle())),this.container.appendChild(this.tabs_holder),this.row_holder=this.theme.getTopTabContentHolder(this.tabs_holder),this.active_tab=null):"tabs"===this.schema.format?(this.controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.controls),this.tabs_holder=this.theme.getTabHolder(this.getValidId(this.getItemTitle())),this.container.appendChild(this.tabs_holder),this.row_holder=this.theme.getTabContentHolder(this.tabs_holder),this.active_tab=null):(this.panel=this.theme.getIndentedPanel(),this.container.appendChild(this.panel),this.row_holder=document.createElement("div"),this.panel.appendChild(this.row_holder),this.controls=this.theme.getButtonHolder(),this.array_controls_top?this.title.appendChild(this.controls):this.panel.appendChild(this.controls))),this.addControls()},onChildEditorChange:function(a){this.refreshValue(),this.refreshTabs(!0),this._super(a)},getItemTitle:function(){if(!this.item_title)if(this.schema.items&&!Array.isArray(this.schema.items)){var a=this.jsoneditor.expandRefs(this.schema.items);this.item_title=a.title||"item"}else this.item_title="item";return this.item_title},getItemSchema:function(a){return Array.isArray(this.schema.items)?a>=this.schema.items.length?this.schema.additionalItems===!0?{}:this.schema.additionalItems?e({},this.schema.additionalItems):void 0:e({},this.schema.items[a]):this.schema.items?e({},this.schema.items):{}},getItemInfo:function(a){var b=this.getItemSchema(a);this.item_info=this.item_info||{};var c=JSON.stringify(b);return"undefined"!=typeof this.item_info[c]?this.item_info[c]:(b=this.jsoneditor.expandRefs(b),this.item_info[c]={title:b.title||"item","default":b["default"],width:12,child_editors:b.properties||b.items},this.item_info[c])},getElementEditor:function(a){var b=this.getItemInfo(a),c=this.getItemSchema(a);c=this.jsoneditor.expandRefs(c),c.title=b.title+" "+(a+1);var d,e=this.jsoneditor.getEditorClass(c);this.tabs_holder?(d="tabs-top"===this.schema.format?this.theme.getTopTabContent():this.theme.getTabContent(),d.id=this.path+"."+a):d=b.child_editors?this.theme.getChildEditorHolder():this.theme.getIndentedPanel(),this.row_holder.appendChild(d);var f=this.jsoneditor.createEditor(e,{jsoneditor:this.jsoneditor,schema:c,container:d,path:this.path+"."+a,parent:this,required:!0});return f.preBuild(),f.build(),f.postBuild(),f.title_controls||(f.array_controls=this.theme.getButtonHolder(),d.appendChild(f.array_controls)),f},destroy:function(){this.empty(!0),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.row_holder&&this.row_holder.parentNode&&this.row_holder.parentNode.removeChild(this.row_holder),this.controls&&this.controls.parentNode&&this.controls.parentNode.removeChild(this.controls),this.panel&&this.panel.parentNode&&this.panel.parentNode.removeChild(this.panel),this.rows=this.row_cache=this.title=this.description=this.row_holder=this.panel=this.controls=null,this._super()},empty:function(a){if(this.rows){var b=this;f(this.rows,function(c,d){a&&(d.tab&&d.tab.parentNode&&d.tab.parentNode.removeChild(d.tab),b.destroyRow(d,!0),b.row_cache[c]=null),b.rows[c]=null}),b.rows=[],a&&(b.row_cache=[])}},destroyRow:function(a,b){var c=a.container;b?(a.destroy(),c.parentNode&&c.parentNode.removeChild(c),a.tab&&a.tab.parentNode&&a.tab.parentNode.removeChild(a.tab)):(a.tab&&(a.tab.style.display="none"),c.style.display="none",a.unregister())},getMax:function(){return Array.isArray(this.schema.items)&&this.schema.additionalItems===!1?Math.min(this.schema.items.length,this.schema.maxItems||1/0):this.schema.maxItems||1/0},refreshTabs:function(a){var b=this;f(this.rows,function(c,d){d.tab&&(a?d.tab_text.textContent=d.getHeaderText():d.tab===b.active_tab?b.theme.markTabActive(d):b.theme.markTabInactive(d))})},setValue:function(a,b){a=a||[],Array.isArray(a)||(a=[a]);var c=JSON.stringify(a);if(c!==this.serialized){if(this.schema.minItems)for(;a.length<this.schema.minItems;)a.push(this.getItemInfo(a.length)["default"]);this.getMax()&&a.length>this.getMax()&&(a=a.slice(0,this.getMax()));var d=this;f(a,function(a,c){d.rows[a]?d.rows[a].setValue(c,b):d.row_cache[a]?(d.rows[a]=d.row_cache[a],d.rows[a].setValue(c,b),d.rows[a].container.style.display="",d.rows[a].tab&&(d.rows[a].tab.style.display=""),d.rows[a].register()):d.addRow(c,b)});for(var e=a.length;e<d.rows.length;e++)d.destroyRow(d.rows[e]),d.rows[e]=null;d.rows=d.rows.slice(0,a.length);var g=null;f(d.rows,function(a,b){if(b.tab===d.active_tab)return g=b.tab,!1}),!g&&d.rows.length&&(g=d.rows[0].tab),d.active_tab=g,d.refreshValue(b),d.refreshTabs(!0),d.refreshTabs(),d.onChange()}},refreshValue:function(a){var b=this,c=this.value?this.value.length:0;if(this.value=[],f(this.rows,function(a,c){b.value[a]=c.getValue()}),c!==this.value.length||a){var d=this.schema.minItems&&this.schema.minItems>=this.rows.length;f(this.rows,function(a,c){c.movedown_button&&(a===b.rows.length-1?c.movedown_button.style.display="none":c.movedown_button.style.display=""),c.delete_button&&(d?c.delete_button.style.display="none":c.delete_button.style.display=""),b.value[a]=c.getValue()});var e=!1;this.value.length?1===this.value.length?(this.remove_all_rows_button.style.display="none",d||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",e=!0)):(d||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",e=!0),d||this.hide_delete_all_rows_buttons?this.remove_all_rows_button.style.display="none":(this.remove_all_rows_button.style.display="",e=!0)):(this.delete_last_row_button.style.display="none",this.remove_all_rows_button.style.display="none"),this.getMax()&&this.getMax()<=this.rows.length||this.hide_add_button?this.add_row_button.style.display="none":(this.add_row_button.style.display="",e=!0),!this.collapsed&&e?this.controls.style.display="inline-block":this.controls.style.display="none"}},addRow:function(a,b){var c=this,d=this.rows.length;c.rows[d]=this.getElementEditor(d),c.row_cache[d]=c.rows[d],c.tabs_holder&&(c.rows[d].tab_text=document.createElement("span"),c.rows[d].tab_text.textContent=c.rows[d].getHeaderText(),"tabs-top"===c.schema.format?(c.rows[d].tab=c.theme.getTopTab(c.rows[d].tab_text,this.getValidId(c.rows[d].path)),c.theme.addTopTab(c.tabs_holder,c.rows[d].tab)):(c.rows[d].tab=c.theme.getTab(c.rows[d].tab_text,this.getValidId(c.rows[d].path)),c.theme.addTab(c.tabs_holder,c.rows[d].tab)),c.rows[d].tab.addEventListener("click",function(a){c.active_tab=c.rows[d].tab,c.refreshTabs(),a.preventDefault(),a.stopPropagation()}));var e=c.rows[d].title_controls||c.rows[d].array_controls;c.hide_delete_buttons||(c.rows[d].delete_button=this.getButton(c.getItemTitle(),"delete",this.translate("button_delete_row_title",[c.getItemTitle()])),c.rows[d].delete_button.classList.add("delete","json-editor-btntype-delete"),c.rows[d].delete_button.setAttribute("data-i",d),c.rows[d].delete_button.addEventListener("click",function(a){if(a.preventDefault(),a.stopPropagation(),!c.askConfirmation())return!1;var b=1*this.getAttribute("data-i"),d=c.getValue(),e=[],g=null;f(d,function(a,c){a!==b&&e.push(c)}),c.empty(!0),c.setValue(e),c.rows[b]?g=c.rows[b].tab:c.rows[b-1]&&(g=c.rows[b-1].tab),g&&(c.active_tab=g,c.refreshTabs()),c.onChange(!0),c.jsoneditor.trigger("deleteRow")}),e&&e.appendChild(c.rows[d].delete_button)),c.show_copy_button&&(c.rows[d].copy_button=this.getButton(c.getItemTitle(),"copy","Copy "+c.getItemTitle()),c.rows[d].copy_button.classList.add("copy","json-editor-btntype-copy"),c.rows[d].copy_button.setAttribute("data-i",d),c.rows[d].copy_button.addEventListener("click",function(a){var b=c.getValue();a.preventDefault(),a.stopPropagation();var d=1*this.getAttribute("data-i");f(b,function(a,c){a===d&&b.push(c)}),c.setValue(b),c.refreshValue(!0),c.onChange(!0)}),e.appendChild(c.rows[d].copy_button)),d&&!c.hide_move_buttons&&(c.rows[d].moveup_button=this.getButton("","moveup",this.translate("button_move_up_title")),c.rows[d].moveup_button.classList.add("moveup","json-editor-btntype-move"),c.rows[d].moveup_button.setAttribute("data-i",d),c.rows[d].moveup_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var b=1*this.getAttribute("data-i");if(!(b<=0)){var d=c.getValue(),e=d[b-1];d[b-1]=d[b],d[b]=e,c.setValue(d),c.active_tab=c.rows[b-1].tab,c.refreshTabs(),c.onChange(!0),c.jsoneditor.trigger("moveRow")}}),e&&e.appendChild(c.rows[d].moveup_button)),c.hide_move_buttons||(c.rows[d].movedown_button=this.getButton("","movedown",this.translate("button_move_down_title")),c.rows[d].movedown_button.classList.add("movedown","json-editor-btntype-move"),c.rows[d].movedown_button.setAttribute("data-i",d),c.rows[d].movedown_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var b=1*this.getAttribute("data-i"),d=c.getValue();if(!(b>=d.length-1)){var e=d[b+1];d[b+1]=d[b],d[b]=e,c.setValue(d),c.active_tab=c.rows[b+1].tab,c.refreshTabs(),c.onChange(!0),c.jsoneditor.trigger("moveRow")}}),e&&e.appendChild(c.rows[d].movedown_button)),a&&c.rows[d].setValue(a,b),c.refreshTabs()},addControls:function(){var a=this;this.collapsed=!1,this.toggle_button=this.getButton("","collapse",this.translate("button_collapse")),this.toggle_button.classList.add("json-editor-btntype-toggle"),this.title_controls.appendChild(this.toggle_button);var b=a.row_holder.style.display,c=a.controls.style.display;this.toggle_button.addEventListener("click",function(d){d.preventDefault(),d.stopPropagation(),a.collapsed?(a.collapsed=!1,a.panel&&(a.panel.style.display=""),a.row_holder.style.display=b,a.tabs_holder&&(a.tabs_holder.style.display=""),a.controls.style.display=c,a.setButtonText(this,"","collapse",a.translate("button_collapse"))):(a.collapsed=!0,a.row_holder.style.display="none",a.tabs_holder&&(a.tabs_holder.style.display="none"),a.controls.style.display="none",a.panel&&(a.panel.style.display="none"),a.setButtonText(this,"","expand",a.translate("button_expand")))}),this.options.collapsed&&g(this.toggle_button,"click"),this.schema.options&&"undefined"!=typeof this.schema.options.disable_collapse?this.schema.options.disable_collapse&&(this.toggle_button.style.display="none"):this.jsoneditor.options.disable_collapse&&(this.toggle_button.style.display="none"),this.add_row_button=this.getButton(this.getItemTitle(),"add",this.translate("button_add_row_title",[this.getItemTitle()])),this.add_row_button.classList.add("json-editor-btntype-add"),this.add_row_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation();var c=a.rows.length;a.row_cache[c]?(a.rows[c]=a.row_cache[c],a.rows[c].setValue(a.rows[c].getDefault(),!0),a.rows[c].container.style.display="",a.rows[c].tab&&(a.rows[c].tab.style.display=""),a.rows[c].register()):a.addRow(),a.active_tab=a.rows[c].tab,a.refreshTabs(),a.refreshValue(),a.onChange(!0),a.jsoneditor.trigger("addRow")}),a.controls.appendChild(this.add_row_button),this.delete_last_row_button=this.getButton(this.translate("button_delete_last",[this.getItemTitle()]),"delete",this.translate("button_delete_last_title",[this.getItemTitle()])),this.delete_last_row_button.classList.add("json-editor-btntype-deletelast"),this.delete_last_row_button.addEventListener("click",function(b){if(b.preventDefault(),b.stopPropagation(),!a.askConfirmation())return!1;var c=a.getValue(),d=null;c.pop(),a.empty(!0),a.setValue(c),a.rows[a.rows.length-1]&&(d=a.rows[a.rows.length-1].tab),d&&(a.active_tab=d,a.refreshTabs()),a.onChange(!0),a.jsoneditor.trigger("deleteRow")}),a.controls.appendChild(this.delete_last_row_button),this.remove_all_rows_button=this.getButton(this.translate("button_delete_all"),"delete",this.translate("button_delete_all_title")),this.remove_all_rows_button.classList.add("json-editor-btntype-deleteall"),this.remove_all_rows_button.addEventListener("click",function(b){return b.preventDefault(),b.stopPropagation(),!!a.askConfirmation()&&(a.empty(!0),a.setValue([]),a.onChange(!0),void a.jsoneditor.trigger("deleteAllRows"))}),a.controls.appendChild(this.remove_all_rows_button),a.tabs&&(this.add_row_button.style.width="100%",this.add_row_button.style.textAlign="left",this.add_row_button.style.marginBottom="3px",this.delete_last_row_button.style.width="100%",this.delete_last_row_button.style.textAlign="left",this.delete_last_row_button.style.marginBottom="3px",this.remove_all_rows_button.style.width="100%",this.remove_all_rows_button.style.textAlign="left",this.remove_all_rows_button.style.marginBottom="3px")},showValidationErrors:function(a){var b=this,c=[],d=[];if(f(a,function(a,e){e.path===b.path?c.push(e):d.push(e)}),this.error_holder)if(c.length){this.error_holder.innerHTML="",this.error_holder.style.display="",f(c,function(a,c){b.error_holder.appendChild(b.theme.getErrorMessage(c.message))})}else this.error_holder.style.display="none";f(this.rows,function(a,b){b.showValidationErrors(d)})}}),h.defaults.editors.table=h.defaults.editors.array.extend({register:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].register()},unregister:function(){if(this._super(),this.rows)for(var a=0;a<this.rows.length;a++)this.rows[a].unregister()},getNumColumns:function(){return Math.max(Math.min(12,this.width),3)},preBuild:function(){var a=this.jsoneditor.expandRefs(this.schema.items||{});this.item_title=a.title||"row",this.item_default=a["default"]||null,this.item_has_child_editors=a.properties||a.items,this.width=12,this._super()},build:function(){var a=this;this.table=this.theme.getTable(),this.container.appendChild(this.table),this.thead=this.theme.getTableHead(),this.table.appendChild(this.thead),this.header_row=this.theme.getTableRow(),this.thead.appendChild(this.header_row),this.row_holder=this.theme.getTableBody(),this.table.appendChild(this.row_holder);var b=this.getElementEditor(0,!0);if(this.item_default=b.getDefault(),this.width=b.getNumColumns()+2,this.options.compact?(this.panel=document.createElement("div"),this.container.appendChild(this.panel)):(this.title=this.theme.getHeader(this.getTitle()),this.container.appendChild(this.title),this.title_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description),this.container.appendChild(this.description)),this.panel=this.theme.getIndentedPanel(),this.container.appendChild(this.panel),this.error_holder=document.createElement("div"),this.panel.appendChild(this.error_holder)),this.panel.appendChild(this.table),this.controls=this.theme.getButtonHolder(),this.panel.appendChild(this.controls),this.item_has_child_editors)for(var c=b.getChildEditors(),d=b.property_order||Object.keys(c),e=0;e<d.length;e++){var f=a.theme.getTableHeaderCell(c[d[e]].getTitle());c[d[e]].options.hidden&&(f.style.display="none"),a.header_row.appendChild(f)}else a.header_row.appendChild(a.theme.getTableHeaderCell(this.item_title));b.destroy(),this.row_holder.innerHTML="",this.controls_header_cell=a.theme.getTableHeaderCell(" "),a.header_row.appendChild(this.controls_header_cell),this.addControls()},onChildEditorChange:function(a){this.refreshValue(),this._super()},getItemDefault:function(){return e({},{"default":this.item_default})["default"]},getItemTitle:function(){return this.item_title},getElementEditor:function(a,b){var c=e({},this.schema.items),d=this.jsoneditor.getEditorClass(c,this.jsoneditor),f=this.row_holder.appendChild(this.theme.getTableRow()),g=f;this.item_has_child_editors||(g=this.theme.getTableCell(),f.appendChild(g));var h=this.jsoneditor.createEditor(d,{jsoneditor:this.jsoneditor,schema:c,container:g,path:this.path+"."+a,parent:this,compact:!0,table_row:!0});return h.preBuild(),b||(h.build(),h.postBuild(),h.controls_cell=f.appendChild(this.theme.getTableCell()),h.row=f,h.table_controls=this.theme.getButtonHolder(),h.controls_cell.appendChild(h.table_controls),h.table_controls.style.margin=0,h.table_controls.style.padding=0),h},destroy:function(){this.innerHTML="",this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.row_holder&&this.row_holder.parentNode&&this.row_holder.parentNode.removeChild(this.row_holder),this.table&&this.table.parentNode&&this.table.parentNode.removeChild(this.table),this.panel&&this.panel.parentNode&&this.panel.parentNode.removeChild(this.panel),this.rows=this.title=this.description=this.row_holder=this.table=this.panel=null,this._super()},setValue:function(a,b){if(a=a||[],this.schema.minItems)for(;a.length<this.schema.minItems;)a.push(this.getItemDefault());this.schema.maxItems&&a.length>this.schema.maxItems&&(a=a.slice(0,this.schema.maxItems));var c=JSON.stringify(a);if(c!==this.serialized){var d=!1,e=this;f(a,function(a,b){e.rows[a]?e.rows[a].setValue(b):(e.addRow(b),d=!0)});for(var g=a.length;g<e.rows.length;g++){var h=e.rows[g].container;e.item_has_child_editors||e.rows[g].row.parentNode.removeChild(e.rows[g].row),e.rows[g].destroy(),h.parentNode&&h.parentNode.removeChild(h),e.rows[g]=null,d=!0}e.rows=e.rows.slice(0,a.length),e.refreshValue(),(d||b)&&e.refreshRowButtons(),e.onChange()}},refreshRowButtons:function(){var a=this,b=this.schema.minItems&&this.schema.minItems>=this.rows.length,c=!1;f(this.rows,function(d,e){e.movedown_button&&(d===a.rows.length-1?e.movedown_button.style.display="none":(c=!0,e.movedown_button.style.display="")),e.delete_button&&(b?e.delete_button.style.display="none":(c=!0,e.delete_button.style.display="")),e.moveup_button&&(c=!0)}),f(this.rows,function(a,b){c?b.controls_cell.style.display="":b.controls_cell.style.display="none"}),c?this.controls_header_cell.style.display="":this.controls_header_cell.style.display="none";var d=!1;this.value.length?1===this.value.length?(this.table.style.display="",this.remove_all_rows_button.style.display="none",b||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",d=!0)):(this.table.style.display="",b||this.hide_delete_last_row_buttons?this.delete_last_row_button.style.display="none":(this.delete_last_row_button.style.display="",d=!0),b||this.hide_delete_all_rows_buttons?this.remove_all_rows_button.style.display="none":(this.remove_all_rows_button.style.display="",d=!0)):(this.delete_last_row_button.style.display="none",this.remove_all_rows_button.style.display="none",this.table.style.display="none"),this.schema.maxItems&&this.schema.maxItems<=this.rows.length||this.hide_add_button?this.add_row_button.style.display="none":(this.add_row_button.style.display="",d=!0),d?this.controls.style.display="":this.controls.style.display="none"},refreshValue:function(){var a=this;this.value=[],f(this.rows,function(b,c){a.value[b]=c.getValue()}),this.serialized=JSON.stringify(this.value)},addRow:function(a){var b=this,c=this.rows.length;b.rows[c]=this.getElementEditor(c);var d=b.rows[c].table_controls;this.hide_delete_buttons||(b.rows[c].delete_button=this.getButton("","delete",this.translate("button_delete_row_title_short")),b.rows[c].delete_button.classList.add("delete","json-editor-btntype-delete"),b.rows[c].delete_button.setAttribute("data-i",c),b.rows[c].delete_button.addEventListener("click",function(a){if(a.preventDefault(),a.stopPropagation(),!b.askConfirmation())return!1;var c=1*this.getAttribute("data-i"),d=b.getValue(),e=[];f(d,function(a,b){a!==c&&e.push(b)}),b.setValue(e),b.onChange(!0)}),d.appendChild(b.rows[c].delete_button)),c&&!this.hide_move_buttons&&(b.rows[c].moveup_button=this.getButton("","moveup",this.translate("button_move_up_title")),b.rows[c].moveup_button.classList.add("moveup","json-editor-btntype-move"),b.rows[c].moveup_button.setAttribute("data-i",c),b.rows[c].moveup_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var c=1*this.getAttribute("data-i");if(!(c<=0)){var d=b.getValue(),e=d[c-1];d[c-1]=d[c],d[c]=e,b.setValue(d),b.onChange(!0)}}),d.appendChild(b.rows[c].moveup_button)),this.hide_move_buttons||(b.rows[c].movedown_button=this.getButton("","movedown",this.translate("button_move_down_title")),b.rows[c].movedown_button.classList.add("movedown","json-editor-btntype-move"),b.rows[c].movedown_button.setAttribute("data-i",c),b.rows[c].movedown_button.addEventListener("click",function(a){a.preventDefault(),a.stopPropagation();var c=1*this.getAttribute("data-i"),d=b.getValue();if(!(c>=d.length-1)){var e=d[c+1];d[c+1]=d[c],d[c]=e,b.setValue(d),b.onChange(!0)}}),d.appendChild(b.rows[c].movedown_button)),a&&b.rows[c].setValue(a)},addControls:function(){var a=this;this.collapsed=!1,this.toggle_button=this.getButton("","collapse",this.translate("button_collapse")),this.toggle_button.classList.add("json-editor-btntype-toggle"),this.title_controls&&(this.title_controls.appendChild(this.toggle_button),this.toggle_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.collapsed?(a.collapsed=!1,a.panel.style.display="",a.setButtonText(this,"","collapse",a.translate("button_collapse"))):(a.collapsed=!0,a.panel.style.display="none",a.setButtonText(this,"","expand",a.translate("button_expand")))}),this.options.collapsed&&g(this.toggle_button,"click"),this.schema.options&&"undefined"!=typeof this.schema.options.disable_collapse?this.schema.options.disable_collapse&&(this.toggle_button.style.display="none"):this.jsoneditor.options.disable_collapse&&(this.toggle_button.style.display="none")),this.add_row_button=this.getButton(this.getItemTitle(),"add",this.translate("button_add_row_title",[this.getItemTitle()])),this.add_row_button.classList.add("json-editor-btntype-add"),this.add_row_button.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.addRow(),a.refreshValue(),a.refreshRowButtons(),a.onChange(!0)}),a.controls.appendChild(this.add_row_button),this.delete_last_row_button=this.getButton(this.translate("button_delete_last",[this.getItemTitle()]),"delete",this.translate("button_delete_last_title",[this.getItemTitle()])),this.delete_last_row_button.classList.add("json-editor-btntype-deletelast"),this.delete_last_row_button.addEventListener("click",function(b){if(b.preventDefault(),b.stopPropagation(),!a.askConfirmation())return!1;var c=a.getValue();c.pop(),a.setValue(c),a.onChange(!0)}),a.controls.appendChild(this.delete_last_row_button),this.remove_all_rows_button=this.getButton(this.translate("button_delete_all"),"delete",this.translate("button_delete_all_title")),
          17 this.remove_all_rows_button.classList.add("json-editor-btntype-deleteall"),this.remove_all_rows_button.addEventListener("click",function(b){return b.preventDefault(),b.stopPropagation(),!!a.askConfirmation()&&(a.setValue([]),void a.onChange(!0))}),a.controls.appendChild(this.remove_all_rows_button)}}),h.defaults.editors.multiple=h.AbstractEditor.extend({register:function(){if(this.editors){for(var a=0;a<this.editors.length;a++)this.editors[a]&&this.editors[a].unregister();this.editors[this.type]&&this.editors[this.type].register()}this._super()},unregister:function(){if(this._super(),this.editors)for(var a=0;a<this.editors.length;a++)this.editors[a]&&this.editors[a].unregister()},getNumColumns:function(){return this.editors[this.type]?Math.max(this.editors[this.type].getNumColumns(),4):4},enable:function(){if(!this.always_disabled){if(this.editors)for(var a=0;a<this.editors.length;a++)this.editors[a]&&this.editors[a].enable();this.switcher.disabled=!1,this._super()}},disable:function(a){if(a&&(this.always_disabled=!0),this.editors)for(var b=0;b<this.editors.length;b++)this.editors[b]&&this.editors[b].disable(a);this.switcher.disabled=!0,this._super()},switchEditor:function(a){var b=this;this.editors[a]||this.buildChildEditor(a);var c=b.getValue();b.type=a,b.register(),f(b.editors,function(a,d){d&&(b.type===a?(b.keep_values&&d.setValue(c,!0),d.container.style.display=""):d.container.style.display="none")}),b.refreshValue(),b.refreshHeaderText()},buildChildEditor:function(a){var b=this,c=this.types[a],d=b.theme.getChildEditorHolder();b.editor_holder.appendChild(d);var f;"string"==typeof c?(f=e({},b.schema),f.type=c):(f=e({},b.schema,c),f=b.jsoneditor.expandRefs(f),c&&c.required&&Array.isArray(c.required)&&b.schema.required&&Array.isArray(b.schema.required)&&(f.required=b.schema.required.concat(c.required)));var g=b.jsoneditor.getEditorClass(f);b.editors[a]=b.jsoneditor.createEditor(g,{jsoneditor:b.jsoneditor,schema:f,container:d,path:b.path,parent:b,required:!0}),b.editors[a].preBuild(),b.editors[a].build(),b.editors[a].postBuild(),b.editors[a].header&&(b.editors[a].header.style.display="none"),b.editors[a].option=b.switcher_options[a],d.addEventListener("change_header_text",function(){b.refreshHeaderText()}),a!==b.type&&(d.style.display="none")},preBuild:function(){if(this.types=[],this.type=0,this.editors=[],this.validators=[],this.keep_values=!0,"undefined"!=typeof this.jsoneditor.options.keep_oneof_values&&(this.keep_values=this.jsoneditor.options.keep_oneof_values),"undefined"!=typeof this.options.keep_oneof_values&&(this.keep_values=this.options.keep_oneof_values),this.schema.oneOf)this.oneOf=!0,this.types=this.schema.oneOf,delete this.schema.oneOf;else if(this.schema.anyOf)this.anyOf=!0,this.types=this.schema.anyOf,delete this.schema.anyOf;else{if(this.schema.type&&"any"!==this.schema.type)Array.isArray(this.schema.type)?this.types=this.schema.type:this.types=[this.schema.type];else if(this.types=["string","number","integer","boolean","object","array","null"],this.schema.disallow){var a=this.schema.disallow;"object"==typeof a&&Array.isArray(a)||(a=[a]);var b=[];f(this.types,function(c,d){a.indexOf(d)===-1&&b.push(d)}),this.types=b}delete this.schema.type}this.display_text=this.getDisplayText(this.types)},build:function(){var a=this,b=this.container;this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.container.appendChild(this.header),this.switcher=this.theme.getSwitcher(this.display_text),b.appendChild(this.switcher),this.switcher.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.switchEditor(a.display_text.indexOf(this.value)),a.onChange(!0)}),this.editor_holder=document.createElement("div"),b.appendChild(this.editor_holder);var c={};a.jsoneditor.options.custom_validators&&(c.custom_validators=a.jsoneditor.options.custom_validators),this.switcher_options=this.theme.getSwitcherOptions(this.switcher),f(this.types,function(b,d){a.editors[b]=!1;var f;"string"==typeof d?(f=e({},a.schema),f.type=d):(f=e({},a.schema,d),d.required&&Array.isArray(d.required)&&a.schema.required&&Array.isArray(a.schema.required)&&(f.required=a.schema.required.concat(d.required))),a.validators[b]=new h.Validator(a.jsoneditor,f,c)}),this.switchEditor(0)},onChildEditorChange:function(a){this.editors[this.type]&&(this.refreshValue(),this.refreshHeaderText()),this._super()},refreshHeaderText:function(){var a=this.getDisplayText(this.types);f(this.switcher_options,function(b,c){c.textContent=a[b]})},refreshValue:function(){this.value=this.editors[this.type].getValue()},setValue:function(a,b){var c=this,d=this.type;f(this.validators,function(b,d){if(!d.validate(a).length)return c.type=b,c.switcher.value=c.display_text[b],!1});var e=this.type!=d;e&&this.switchEditor(this.type),this.editors[this.type].setValue(a,b),this.refreshValue(),c.onChange(e)},destroy:function(){f(this.editors,function(a,b){b&&b.destroy()}),this.editor_holder&&this.editor_holder.parentNode&&this.editor_holder.parentNode.removeChild(this.editor_holder),this.switcher&&this.switcher.parentNode&&this.switcher.parentNode.removeChild(this.switcher),this._super()},showValidationErrors:function(a){var b=this;if(this.oneOf||this.anyOf){var c=this.oneOf?"oneOf":"anyOf";f(this.editors,function(d,g){if(g){var h=b.path+"."+c+"["+d+"]",i=[];f(a,function(a,c){if(c.path.substr(0,h.length)===h){var d=e({},c);d.path=b.path+d.path.substr(h.length),i.push(d)}}),g.showValidationErrors(i)}})}else f(this.editors,function(b,c){c&&c.showValidationErrors(a)})}}),h.defaults.editors["enum"]=h.AbstractEditor.extend({getNumColumns:function(){return 4},build:function(){this.container;this.title=this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.container.appendChild(this.title),this.options.enum_titles=this.options.enum_titles||[],this["enum"]=this.schema["enum"],this.selected=0,this.select_options=[],this.html_values=[];for(var a=this,b=0;b<this["enum"].length;b++)this.select_options[b]=this.options.enum_titles[b]||"Value "+(b+1),this.html_values[b]=this.getHTML(this["enum"][b]);this.switcher=this.theme.getSwitcher(this.select_options),this.container.appendChild(this.switcher),this.display_area=this.theme.getIndentedPanel(),this.container.appendChild(this.display_area),this.options.hide_display&&(this.display_area.style.display="none"),this.switcher.addEventListener("change",function(){a.selected=a.select_options.indexOf(this.value),a.value=a["enum"][a.selected],a.refreshValue(),a.onChange(!0)}),this.value=this["enum"][0],this.refreshValue(),1===this["enum"].length&&(this.switcher.style.display="none")},refreshValue:function(){var a=this;a.selected=-1;var b=JSON.stringify(this.value);return f(this["enum"],function(c,d){if(b===JSON.stringify(d))return a.selected=c,!1}),a.selected<0?void a.setValue(a["enum"][0]):(this.switcher.value=this.select_options[this.selected],void(this.display_area.innerHTML=this.html_values[this.selected]))},enable:function(){this.always_disabled||(this.switcher.disabled=!1,this._super())},disable:function(a){a&&(this.always_disabled=!0),this.switcher.disabled=!0,this._super()},getHTML:function(a){var b=this;if(null===a)return"<em>null</em>";if("object"==typeof a){var c="";return f(a,function(d,e){var f=b.getHTML(e);Array.isArray(a)||(f="<div><em>"+d+"</em>: "+f+"</div>"),c+="<li>"+f+"</li>"}),c=Array.isArray(a)?"<ol>"+c+"</ol>":"<ul style='margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;'>"+c+"</ul>"}return"boolean"==typeof a?a?"true":"false":"string"==typeof a?a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"):a},setValue:function(a){this.value!==a&&(this.value=a,this.refreshValue(),this.onChange())},destroy:function(){this.display_area&&this.display_area.parentNode&&this.display_area.parentNode.removeChild(this.display_area),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.switcher&&this.switcher.parentNode&&this.switcher.parentNode.removeChild(this.switcher),this._super()}}),h.defaults.editors.select=h.AbstractEditor.extend({setValue:function(a,b){a=this.typecast(a||"");var c=a;this.enum_values.indexOf(c)<0&&(c=this.enum_values[0]),this.value!==c&&(b?this.is_dirty=!1:"change"===this.jsoneditor.options.show_errors&&(this.is_dirty=!0),this.input.value=this.enum_options[this.enum_values.indexOf(c)],this.select2&&(this.select2v4?this.select2.val(this.input.value).trigger("change"):this.select2.select2("val",this.input.value)),this.value=c,this.onChange(),this.change())},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){if(!this.enum_options)return 3;for(var a=this.getTitle().length,b=0;b<this.enum_options.length;b++)a=Math.max(a,this.enum_options[b].length+4);return Math.min(12,Math.max(a/7,2))},typecast:function(a){return"boolean"===this.schema.type?!!a:"number"===this.schema.type?1*a:"integer"===this.schema.type?Math.floor(1*a):""+a},getValue:function(){return this.dependenciesFulfilled?this.typecast(this.value):b},preBuild:function(){var a=this;this.input_type="select",this.enum_options=[],this.enum_values=[],this.enum_display=[];var c;if(this.schema["enum"]){var d=this.schema.options&&this.schema.options.enum_titles||[];f(this.schema["enum"],function(b,c){a.enum_options[b]=""+c,a.enum_display[b]=""+(d[b]||c),a.enum_values[b]=a.typecast(c)}),this.isRequired()||(a.enum_display.unshift(" "),a.enum_options.unshift("undefined"),a.enum_values.unshift(b))}else if("boolean"===this.schema.type)a.enum_display=this.schema.options&&this.schema.options.enum_titles||["true","false"],a.enum_options=["1",""],a.enum_values=[!0,!1],this.isRequired()||(a.enum_display.unshift(" "),a.enum_options.unshift("undefined"),a.enum_values.unshift(b));else{if(!this.schema.enumSource)throw"'select' editor requires the enum property to be set.";if(this.enumSource=[],this.enum_display=[],this.enum_options=[],this.enum_values=[],Array.isArray(this.schema.enumSource))for(c=0;c<this.schema.enumSource.length;c++)"string"==typeof this.schema.enumSource[c]?this.enumSource[c]={source:this.schema.enumSource[c]}:Array.isArray(this.schema.enumSource[c])?this.enumSource[c]=this.schema.enumSource[c]:this.enumSource[c]=e({},this.schema.enumSource[c]);else this.schema.enumValue?this.enumSource=[{source:this.schema.enumSource,value:this.schema.enumValue}]:this.enumSource=[{source:this.schema.enumSource}];for(c=0;c<this.enumSource.length;c++)this.enumSource[c].value&&(this.enumSource[c].value=this.jsoneditor.compileTemplate(this.enumSource[c].value,this.template_engine)),this.enumSource[c].title&&(this.enumSource[c].title=this.jsoneditor.compileTemplate(this.enumSource[c].title,this.template_engine)),this.enumSource[c].filter&&(this.enumSource[c].filter=this.jsoneditor.compileTemplate(this.enumSource[c].filter,this.template_engine))}},build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.input=this.theme.getSelectInput(this.enum_options),this.theme.setSelectOptions(this.input,this.enum_options,this.enum_display),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.setInputAttributes([]),this.input.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.onInputChange()}),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),this.container.appendChild(this.control),this.value=this.enum_values[0]},onInputChange:function(){var a,b=this.typecast(this.input.value);a=this.enum_values.indexOf(b)===-1?this.enum_values[0]:this.enum_values[this.enum_values.indexOf(b)],a!==this.value&&(this.is_dirty=!0,this.value=a,this.onChange(!0))},setupSelect2:function(){if(window.jQuery&&window.jQuery.fn&&window.jQuery.fn.select2&&(this.enum_options.length>2||this.enum_options.length&&this.enumSource)){var a=e({},h.plugins.select2);this.schema.options&&this.schema.options.select2_options&&(a=e(a,this.schema.options.select2_options)),this.select2=window.jQuery(this.input).select2(a),this.select2v4=this.select2.select2.hasOwnProperty("amd");var b=this;this.select2.on("select2-blur",function(){b.select2v4?b.input.value=b.select2.val():b.input.value=b.select2.select2("val"),b.onInputChange()}),this.select2.on("change",function(){b.select2v4?b.input.value=b.select2.val():b.input.value=b.select2.select2("val"),b.onInputChange()})}else this.select2=null},postBuild:function(){this._super(),this.theme.afterInputReady(this.input),this.setupSelect2()},onWatchedFieldChange:function(){var a,b;if(this.enumSource){a=this.getWatchedFieldValues();for(var c=[],d=[],e=0;e<this.enumSource.length;e++)if(Array.isArray(this.enumSource[e]))c=c.concat(this.enumSource[e]),d=d.concat(this.enumSource[e]);else{var f=[];if(f=Array.isArray(this.enumSource[e].source)?this.enumSource[e].source:a[this.enumSource[e].source]){if(this.enumSource[e].slice&&(f=Array.prototype.slice.apply(f,this.enumSource[e].slice)),this.enumSource[e].filter){var g=[];for(b=0;b<f.length;b++)this.enumSource[e].filter({i:b,item:f[b],watched:a})&&g.push(f[b]);f=g}var h=[],i=[];for(b=0;b<f.length;b++){var j=f[b];this.enumSource[e].value?i[b]=this.typecast(this.enumSource[e].value({i:b,item:j})):i[b]=f[b],this.enumSource[e].title?h[b]=this.enumSource[e].title({i:b,item:j}):h[b]=i[b]}c=c.concat(i),d=d.concat(h)}}var k=this.value;this.theme.setSelectOptions(this.input,c,d),this.enum_options=c,this.enum_display=d,this.enum_values=c,this.select2&&this.select2.select2("destroy"),c.indexOf(k)!==-1?(this.input.value=k,this.value=k):(this.input.value=c[0],this.value=this.typecast(c[0]||""),this.parent?this.parent.onChildEditorChange(this):this.jsoneditor.onChange(),this.jsoneditor.notifyWatchers(this.path)),this.setupSelect2()}this._super()},enable:function(){this.always_disabled||(this.input.disabled=!1,this.select2&&(this.select2v4?this.select2.prop("disabled",!1):this.select2.select2("enable",!0))),this._super()},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this.select2&&(this.select2v4?this.select2.prop("disabled",!0):this.select2.select2("enable",!1)),this._super()},destroy:function(){this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.select2&&(this.select2.select2("destroy"),this.select2=null),this._super()},showValidationErrors:function(a){var b=this;if("always"===this.jsoneditor.options.show_errors);else if(!this.is_dirty&&this.previous_error_setting===this.jsoneditor.options.show_errors)return;this.previous_error_setting=this.jsoneditor.options.show_errors;var c=[];f(a,function(a,d){d.path===b.path&&c.push(d.message)}),c.length?this.theme.addInputError(this.input,c.join(". ")+"."):this.theme.removeInputError(this.input)}}),h.defaults.editors.selectize=h.AbstractEditor.extend({setValue:function(a,b){a=this.typecast(a||"");var c=a;this.enum_values.indexOf(c)<0&&(c=this.enum_values[0]),this.value!==c&&(this.input.value=this.enum_options[this.enum_values.indexOf(c)],this.selectize&&this.selectize[0].selectize.addItem(c),this.value=c,this.onChange())},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){if(!this.enum_options)return 3;for(var a=this.getTitle().length,b=0;b<this.enum_options.length;b++)a=Math.max(a,this.enum_options[b].length+4);return Math.min(12,Math.max(a/7,2))},typecast:function(a){return"boolean"===this.schema.type?!!a:"number"===this.schema.type?1*a:"integer"===this.schema.type?Math.floor(1*a):""+a},getValue:function(){return this.dependenciesFulfilled?this.value:b},preBuild:function(){var a=this;this.input_type="select",this.enum_options=[],this.enum_values=[],this.enum_display=[];var b;if(this.schema["enum"]){var c=this.schema.options&&this.schema.options.enum_titles||[];f(this.schema["enum"],function(b,d){a.enum_options[b]=""+d,a.enum_display[b]=""+(c[b]||d),a.enum_values[b]=a.typecast(d)})}else if("boolean"===this.schema.type)a.enum_display=this.schema.options&&this.schema.options.enum_titles||["true","false"],a.enum_options=["1","0"],a.enum_values=[!0,!1];else{if(!this.schema.enumSource)throw"'select' editor requires the enum property to be set.";if(this.enumSource=[],this.enum_display=[],this.enum_options=[],this.enum_values=[],Array.isArray(this.schema.enumSource))for(b=0;b<this.schema.enumSource.length;b++)"string"==typeof this.schema.enumSource[b]?this.enumSource[b]={source:this.schema.enumSource[b]}:Array.isArray(this.schema.enumSource[b])?this.enumSource[b]=this.schema.enumSource[b]:this.enumSource[b]=e({},this.schema.enumSource[b]);else this.schema.enumValue?this.enumSource=[{source:this.schema.enumSource,value:this.schema.enumValue}]:this.enumSource=[{source:this.schema.enumSource}];for(b=0;b<this.enumSource.length;b++)this.enumSource[b].value&&(this.enumSource[b].value=this.jsoneditor.compileTemplate(this.enumSource[b].value,this.template_engine)),this.enumSource[b].title&&(this.enumSource[b].title=this.jsoneditor.compileTemplate(this.enumSource[b].title,this.template_engine)),this.enumSource[b].filter&&(this.enumSource[b].filter=this.jsoneditor.compileTemplate(this.enumSource[b].filter,this.template_engine))}},build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.input=this.theme.getSelectInput(this.enum_options),this.theme.setSelectOptions(this.input,this.enum_options,this.enum_display),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.input.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.onInputChange()}),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),this.container.appendChild(this.control),this.value=this.enum_values[0]},onInputChange:function(){var a=this.input.value,b=a;this.enum_options.indexOf(a)===-1&&(b=this.enum_options[0]),this.value=a,this.onChange(!0)},setupSelectize:function(){var a=this;if(window.jQuery&&window.jQuery.fn&&window.jQuery.fn.selectize&&(this.enum_options.length>=2||this.enum_options.length&&this.enumSource)){var c=e({},h.plugins.selectize);this.schema.options&&this.schema.options.selectize_options&&(c=e(c,this.schema.options.selectize_options)),this.selectize=window.jQuery(this.input).selectize(e(c,{create:c.create===b||c.create,onChange:function(){a.onInputChange()}}))}else this.selectize=null},postBuild:function(){this._super(),this.theme.afterInputReady(this.input),this.setupSelectize()},onWatchedFieldChange:function(){var a,c;if(this.enumSource){a=this.getWatchedFieldValues();for(var d=[],e=[],f=0;f<this.enumSource.length;f++)if(Array.isArray(this.enumSource[f]))d=d.concat(this.enumSource[f]),e=e.concat(this.enumSource[f]);else if(a[this.enumSource[f].source]){var g=a[this.enumSource[f].source];if(this.enumSource[f].slice&&(g=Array.prototype.slice.apply(g,this.enumSource[f].slice)),this.enumSource[f].filter){var h=[];for(c=0;c<g.length;c++)this.enumSource[f].filter({i:c,item:g[c]})&&h.push(g[c]);g=h}var i=[],j=[];for(c=0;c<g.length;c++){var k=g[c];this.enumSource[f].value?j[c]=this.enumSource[f].value({i:c,item:k}):j[c]=g[c],this.enumSource[f].title?i[c]=this.enumSource[f].title({i:c,item:k}):i[c]=j[c]}d=d.concat(j),e=e.concat(i)}var l=this.value;l!==b&&""!==l&&d.indexOf(l)===-1&&(d=d.concat(l),e=e.concat(l)),this.theme.setSelectOptions(this.input,d,e),this.enum_options=d,this.enum_display=e,this.enum_values=d,d.indexOf(l)!==-1?(this.input.value=l,this.value=l):(this.input.value=d[0],this.value=d[0]||"",this.parent?this.parent.onChildEditorChange(this):this.jsoneditor.onChange(),this.jsoneditor.notifyWatchers(this.path)),this.selectize?this.updateSelectizeOptions(d):this.setupSelectize(),this._super()}},updateSelectizeOptions:function(a){var b=this.selectize[0].selectize,c=this;b.off(),b.clearOptions();for(var d in a)b.addOption({value:a[d],text:a[d]});b.addItem(this.value),b.on("change",function(){c.onInputChange()})},enable:function(){this.always_disabled||(this.input.disabled=!1,this.selectize&&this.selectize[0].selectize.unlock(),this._super())},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this.selectize&&this.selectize[0].selectize.lock(),this._super()},destroy:function(){this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.selectize&&(this.selectize[0].selectize.destroy(),this.selectize=null),this._super()}}),h.defaults.editors.multiselect=h.AbstractEditor.extend({preBuild:function(){this._super();var a;this.select_options={},this.select_values={};var b=this.jsoneditor.expandRefs(this.schema.items||{}),c=b["enum"]||[],d=b.options?b.options.enum_titles||[]:[];for(this.option_keys=[],this.option_titles=[],a=0;a<c.length;a++)this.sanitize(c[a])===c[a]&&(this.option_keys.push(c[a]+""),this.option_titles.push((d[a]||c[a])+""),this.select_values[c[a]+""]=c[a])},build:function(){var a,b=this;if(this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),!this.schema.format&&this.option_keys.length<8||"checkbox"===this.schema.format){for(this.input_type="checkboxes",this.inputs={},this.controls={},a=0;a<this.option_keys.length;a++){this.inputs[this.option_keys[a]]=this.theme.getCheckbox(),this.select_options[this.option_keys[a]]=this.inputs[this.option_keys[a]];var c=this.theme.getCheckboxLabel(this.option_titles[a]);this.controls[this.option_keys[a]]=this.theme.getFormControl(c,this.inputs[this.option_keys[a]])}this.control=this.theme.getMultiCheckboxHolder(this.controls,this.label,this.description)}else{for(this.input_type="select",this.input=this.theme.getSelectInput(this.option_keys),this.theme.setSelectOptions(this.input,this.option_keys,this.option_titles),this.input.multiple=!0,this.input.size=Math.min(10,this.option_keys.length),a=0;a<this.option_keys.length;a++)this.select_options[this.option_keys[a]]=this.input.children[a];(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.control=this.theme.getFormControl(this.label,this.input,this.description)}this.container.appendChild(this.control),this.control.addEventListener("change",function(c){c.preventDefault(),c.stopPropagation();var d=[];for(a=0;a<b.option_keys.length;a++)(b.select_options[b.option_keys[a]].selected||b.select_options[b.option_keys[a]].checked)&&d.push(b.select_values[b.option_keys[a]]);b.updateValue(d),b.onChange(!0)})},setValue:function(a,b){var c;for(a=a||[],"object"!=typeof a?a=[a]:Array.isArray(a)||(a=[]),c=0;c<a.length;c++)"string"!=typeof a[c]&&(a[c]+="");for(c in this.select_options)this.select_options.hasOwnProperty(c)&&(this.select_options[c]["select"===this.input_type?"selected":"checked"]=a.indexOf(c)!==-1);this.updateValue(a),this.onChange()},setupSelect2:function(){if(window.jQuery&&window.jQuery.fn&&window.jQuery.fn.select2){var a=window.jQuery.extend({},h.plugins.select2);this.schema.options&&this.schema.options.select2_options&&(a=e(a,this.schema.options.select2_options)),this.select2=window.jQuery(this.input).select2(a),this.select2v4=this.select2.select2.hasOwnProperty("amd");var b=this;this.select2.on("select2-blur",function(){b.select2v4?b.value=b.select2.val():b.value=b.select2.select2("val"),b.onChange(!0)}),this.select2.on("change",function(){b.select2v4?b.value=b.select2.val():b.value=b.select2.select2("val"),b.onChange(!0)})}else this.select2=null},onInputChange:function(){this.value=this.input.value,this.onChange(!0)},postBuild:function(){this._super(),this.setupSelect2()},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){var a=this.getTitle().length;for(var b in this.select_values)this.select_values.hasOwnProperty(b)&&(a=Math.max(a,(this.select_values[b]+"").length+4));return Math.min(12,Math.max(a/7,2))},updateValue:function(a){for(var b=!1,c=[],d=0;d<a.length;d++)if(this.select_options[a[d]+""]){var e=this.sanitize(this.select_values[a[d]]);c.push(e),e!==a[d]&&(b=!0)}else b=!0;return this.value=c,this.select2&&(this.select2v4?this.select2.val(this.value).trigger("change"):this.select2.select2("val",this.value)),b},sanitize:function(a){return"number"===this.schema.items.type?1*a:"integer"===this.schema.items.type?Math.floor(1*a):""+a},enable:function(){if(!this.always_disabled){if(this.input)this.input.disabled=!1;else if(this.inputs)for(var a in this.inputs)this.inputs.hasOwnProperty(a)&&(this.inputs[a].disabled=!1);this.select2&&(this.select2v4?this.select2.prop("disabled",!1):this.select2.select2("enable",!0)),this._super()}},disable:function(a){if(a&&(this.always_disabled=!0),this.input)this.input.disabled=!0;else if(this.inputs)for(var b in this.inputs)this.inputs.hasOwnProperty(b)&&(this.inputs[b].disabled=!0);this.select2&&(this.select2v4?this.select2.prop("disabled",!0):this.select2.select2("enable",!1)),this._super()},destroy:function(){this.select2&&(this.select2.select2("destroy"),this.select2=null),this._super()}}),h.defaults.editors.base64=h.AbstractEditor.extend({getNumColumns:function(){return 4},setFileReaderListener:function(a){var b=this;a.addEventListener("load",function(a){if(b.count==b.current_item_index)b.value[b.count][b.key]=a.target.result;else{var c={};for(var d in b.parent.schema.properties)c[d]="";c[b.key]=a.target.result,b.value.splice(b.count,0,c)}b.count+=1,b.count==b.total+b.current_item_index&&b.arrayEditor.setValue(b.value)})},build:function(){var a=this;if(this.title=this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input),!this.schema.readOnly&&!this.schema.readonly){if(!window.FileReader)throw"FileReader required for base64 editor";this.uploader=this.theme.getFormInputField("file"),a.schema.options&&a.schema.options.multiple&&1==a.schema.options.multiple&&a.parent&&"object"==a.parent.schema.type&&a.parent.parent&&"array"==a.parent.parent.schema.type&&this.uploader.setAttribute("multiple",""),this.uploader.addEventListener("change",function(b){if(b.preventDefault(),b.stopPropagation(),this.files&&this.files.length)if(this.files.length>1&&a.schema.options&&a.schema.options.multiple&&1==a.schema.options.multiple&&a.parent&&"object"==a.parent.schema.type&&a.parent.parent&&"array"==a.parent.parent.schema.type){a.arrayEditor=a.jsoneditor.getEditor(a.parent.parent.path),a.value=a.arrayEditor.getValue(),a.total=this.files.length,a.current_item_index=parseInt(a.parent.key),a.count=a.current_item_index;for(var c=0;c<a.total;c++){var d=new FileReader;a.setFileReaderListener(d),d.readAsDataURL(this.files[c])}}else{var e=new FileReader;e.onload=function(b){a.value=b.target.result,a.refreshPreview(),a.onChange(!0),e=null},e.readAsDataURL(this.files[0])}})}this.preview=this.theme.getFormInputDescription(this.schema.description),this.container.appendChild(this.preview),this.control=this.theme.getFormControl(this.label,this.uploader||this.input,this.preview,this.infoButton),this.container.appendChild(this.control)},refreshPreview:function(){if(this.last_preview!==this.value&&(this.last_preview=this.value,this.preview.innerHTML="",this.value)){var a=this.value.match(/^data:([^;,]+)[;,]/);if(a&&(a=a[1]),a){if(this.preview.innerHTML="<strong>Type:</strong> "+a+", <strong>Size:</strong> "+Math.floor((this.value.length-this.value.split(",")[0].length-1)/1.33333)+" bytes","image"===a.substr(0,5)){this.preview.innerHTML+="<br>";var b=document.createElement("img");b.style.maxWidth="100%",b.style.maxHeight="100px",b.src=this.value,this.preview.appendChild(b)}}else this.preview.innerHTML="<em>Invalid data URI</em>"}},enable:function(){this.always_disabled||(this.uploader&&(this.uploader.disabled=!1),this._super())},disable:function(a){a&&(this.always_disabled=!0),this.uploader&&(this.uploader.disabled=!0),this._super()},setValue:function(a){this.value!==a&&(this.value=a,this.input.value=this.value,this.refreshPreview(),this.onChange())},destroy:function(){this.preview&&this.preview.parentNode&&this.preview.parentNode.removeChild(this.preview),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.uploader&&this.uploader.parentNode&&this.uploader.parentNode.removeChild(this.uploader),this._super()}}),h.defaults.editors.upload=h.AbstractEditor.extend({getNumColumns:function(){return 4},build:function(){var a=this;if(this.title=this.header=this.label=this.theme.getFormInputLabel(this.getTitle()),this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input),!this.schema.readOnly&&!this.schema.readonly){if(!this.jsoneditor.options.upload)throw"Upload handler required for upload editor";this.uploader=this.theme.getFormInputField("file"),this.uploader.addEventListener("change",function(b){if(b.preventDefault(),b.stopPropagation(),this.files&&this.files.length){var c=new FileReader;c.onload=function(b){a.preview_value=b.target.result,a.refreshPreview(),a.onChange(!0),c=null},c.readAsDataURL(this.files[0])}})}var b=this.schema.description;b||(b=""),this.preview=this.theme.getFormInputDescription(b),this.container.appendChild(this.preview),this.control=this.theme.getFormControl(this.label,this.uploader||this.input,this.preview),this.container.appendChild(this.control),window.requestAnimationFrame(function(){if(a.value){var b=document.createElement("img");b.style.maxWidth="100%",b.style.maxHeight="100px",b.onload=function(c){a.preview.appendChild(b)},b.onerror=function(a){console.error("upload error",a)},b.src=a.container.querySelector("a").href}})},refreshPreview:function(){if(this.last_preview!==this.preview_value&&(this.last_preview=this.preview_value,this.preview.innerHTML="",this.preview_value)){var a=this,b=this.preview_value.match(/^data:([^;,]+)[;,]/);b&&(b=b[1]),b||(b="unknown");var c=this.uploader.files[0];if(this.preview.innerHTML="<strong>Type:</strong> "+b+", <strong>Size:</strong> "+c.size+" bytes","image"===b.substr(0,5)){this.preview.innerHTML+="<br>";var d=document.createElement("img");d.style.maxWidth="100%",d.style.maxHeight="100px",d.src=this.preview_value,this.preview.appendChild(d)}this.preview.innerHTML+="<br>";var e=this.getButton("Upload","upload","Upload");this.preview.appendChild(e),e.addEventListener("click",function(b){b.preventDefault(),e.setAttribute("disabled","disabled"),a.theme.removeInputError(a.uploader),a.theme.getProgressBar&&(a.progressBar=a.theme.getProgressBar(),a.preview.appendChild(a.progressBar)),a.jsoneditor.options.upload(a.path,c,{success:function(b){a.setValue(b),a.parent?a.parent.onChildEditorChange(a):a.jsoneditor.onChange(),
          18 a.progressBar&&a.preview.removeChild(a.progressBar),e.removeAttribute("disabled")},failure:function(b){a.theme.addInputError(a.uploader,b),a.progressBar&&a.preview.removeChild(a.progressBar),e.removeAttribute("disabled")},updateProgress:function(b){a.progressBar&&(b?a.theme.updateProgressBar(a.progressBar,b):a.theme.updateProgressBarUnknown(a.progressBar))}})}),(this.jsoneditor.options.auto_upload||this.schema.options.auto_upload)&&(e.dispatchEvent(new MouseEvent("click")),this.preview.removeChild(e))}},enable:function(){this.always_disabled||(this.uploader&&(this.uploader.disabled=!1),this._super())},disable:function(a){a&&(this.always_disabled=!0),this.uploader&&(this.uploader.disabled=!0),this._super()},setValue:function(a){this.value!==a&&(this.value=a,this.input.value=this.value,this.onChange())},destroy:function(){this.preview&&this.preview.parentNode&&this.preview.parentNode.removeChild(this.preview),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this.uploader&&this.uploader.parentNode&&this.uploader.parentNode.removeChild(this.uploader),this._super()}}),h.defaults.editors.checkbox=h.AbstractEditor.extend({setValue:function(a,b){this.value=!!a,this.input.checked=this.value,this.onChange()},register:function(){this._super(),this.input&&this.input.setAttribute("name",this.formname)},unregister:function(){this._super(),this.input&&this.input.removeAttribute("name")},getNumColumns:function(){return Math.min(12,Math.max(this.getTitle().length/7,2))},build:function(){var a=this;this.options.compact||(this.label=this.header=this.theme.getCheckboxLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.input=this.theme.getCheckbox(),this.control=this.theme.getFormControl(this.label,this.input,this.description,this.infoButton),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,this.input.disabled=!0),this.input.addEventListener("change",function(b){b.preventDefault(),b.stopPropagation(),a.value=this.checked,a.onChange(!0)}),this.container.appendChild(this.control)},enable:function(){this.always_disabled||(this.input.disabled=!1,this._super())},disable:function(a){a&&(this.always_disabled=!0),this.input.disabled=!0,this._super()},destroy:function(){this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this._super()},showValidationErrors:function(a){var b=this;if("always"===this.jsoneditor.options.show_errors);else if(!this.is_dirty&&this.previous_error_setting===this.jsoneditor.options.show_errors)return;this.previous_error_setting=this.jsoneditor.options.show_errors;var c=[];f(a,function(a,d){d.path===b.path&&c.push(d.message)}),this.input.controlgroup=this.control,c.length?this.theme.addInputError(this.input,c.join(". ")+"."):this.theme.removeInputError(this.input)}}),h.defaults.editors.arraySelectize=h.AbstractEditor.extend({build:function(){this.title=this.theme.getFormInputLabel(this.getTitle()),this.title_controls=this.theme.getHeaderButtonHolder(),this.title.appendChild(this.title_controls),this.error_holder=document.createElement("div"),this.schema.description&&(this.description=this.theme.getDescription(this.schema.description)),this.input=document.createElement("select"),this.input.setAttribute("multiple","multiple");var a=this.theme.getFormControl(this.title,this.input,this.description);this.container.appendChild(a),this.container.appendChild(this.error_holder),window.jQuery(this.input).selectize({delimiter:!1,createOnBlur:!0,create:!0})},postBuild:function(){var a=this;this.input.selectize.on("change",function(b){a.refreshValue(),a.onChange(!0)})},destroy:function(){this.empty(!0),this.title&&this.title.parentNode&&this.title.parentNode.removeChild(this.title),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this.input&&this.input.parentNode&&this.input.parentNode.removeChild(this.input),this._super()},empty:function(a){},setValue:function(a,b){var c=this;a=a||[],Array.isArray(a)||(a=[a]),this.input.selectize.clearOptions(),this.input.selectize.clear(!0),a.forEach(function(a){c.input.selectize.addOption({text:a,value:a})}),this.input.selectize.setValue(a),this.refreshValue(b)},refreshValue:function(a){this.value=this.input.selectize.getValue()},showValidationErrors:function(a){var b=this,c=[],d=[];if(f(a,function(a,e){e.path===b.path?c.push(e):d.push(e)}),this.error_holder)if(c.length){this.error_holder.innerHTML="",this.error_holder.style.display="",f(c,function(a,c){b.error_holder.appendChild(b.theme.getErrorMessage(c.message))})}else this.error_holder.style.display="none"}}),h.defaults.editors.starrating=h.defaults.editors.string.extend({build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description)),this.options.infoText&&(this.infoButton=this.theme.getInfoButton(this.options.infoText)),this.options.compact&&this.container.classList.add("compact"),this.ratingContainer=document.createElement("div"),this.ratingContainer.classList.add("starrating"),this.enum_values=this.schema["enum"],this.radioGroup=[];for(var b=function(b){b.preventDefault(),b.stopPropagation(),a.setValue(this.value),a.onChange(!0)},c=this.enum_values.length-1;c>-1;c--){var d=this.key+"-"+c,e=this.theme.getFormInputField("radio");e.name=this.formname+"[starrating]",e.value=this.enum_values[c],e.id=d,e.addEventListener("change",b,!1),this.radioGroup.push(e);var f=document.createElement("label");f.htmlFor=d,f.title=this.enum_values[c],this.options.displayValue&&f.classList.add("starrating-display-enabled"),this.ratingContainer.appendChild(e),this.ratingContainer.appendChild(f)}if(this.options.displayValue&&(this.displayRating=document.createElement("div"),this.displayRating.classList.add("starrating-display"),this.displayRating.innerText=this.enum_values[0],this.ratingContainer.appendChild(this.displayRating)),this.schema.readOnly||this.schema.readonly){this.always_disabled=!0;for(var g=0;c<this.radioGroup.length;g++)this.radioGroup[g].disabled=!0;this.ratingContainer.classList.add("readonly")}var h=this.theme.getContainer();h.appendChild(this.ratingContainer),this.input=h,this.control=this.theme.getFormControl(this.label,h,this.description,this.infoButton),this.container.appendChild(this.control)},enable:function(){if(!this.always_disabled){for(var a=0;a<this.radioGroup.length;a++)this.radioGroup[a].disabled=!1;this.ratingContainer.classList.remove("readonly"),this._super()}},disable:function(a){a&&(this.always_disabled=!0);for(var b=0;b<this.radioGroup.length;b++)this.radioGroup[b].disabled=!0;this.ratingContainer.classList.add("readonly"),this._super()},destroy:function(){this.ratingContainer.parentNode&&this.ratingContainer.parentNode.parentNode&&this.ratingContainer.parentNode.parentNode.removeChild(this.ratingContainer.parentNode),this.label&&this.label.parentNode&&this.label.parentNode.removeChild(this.label),this.description&&this.description.parentNode&&this.description.parentNode.removeChild(this.description),this._super()},getNumColumns:function(){return 2},setValue:function(a){for(var b=0;b<this.radioGroup.length;b++)if(this.radioGroup[b].value==a){this.radioGroup[b].checked=!0,this.value=a,this.options.displayValue&&(this.displayRating.innerHTML=this.value),this.onChange();break}}}),h.defaults.editors.datetime=h.defaults.editors.string.extend({build:function(){if(this._super(),this.input&&window.flatpickr&&"object"==typeof this.options.flatpickr){this.options.flatpickr.enableTime="date"!=this.schema.format,this.options.flatpickr.noCalendar="time"==this.schema.format,"integer"==this.schema.type&&(this.options.flatpickr.mode="single"),this.input.setAttribute("data-input","");var a=this.input;if(this.options.flatpickr.wrap===!0){var c=[];if(this.options.flatpickr.showToggleButton!==!1){var d=this.getButton("","time"==this.schema.format?"time":"calendar",this.translate("flatpickr_toggle_button"));d.setAttribute("data-toggle",""),c.push(d)}if(this.options.flatpickr.showClearButton!==!1){var e=this.getButton("","clear",this.translate("flatpickr_clear_button"));e.setAttribute("data-clear",""),c.push(e)}var f=this.input.parentNode,g=this.input.nextSibling,h=this.theme.getInputGroup(this.input,c);h!==b?(this.options.flatpickr.inline=!1,f.insertBefore(h,g),a=h):this.options.flatpickr.wrap=!1}this.flatpickr=window.flatpickr(a,this.options.flatpickr),this.options.flatpickr.inline===!0&&this.options.flatpickr.inlineHideInput===!0&&this.input.setAttribute("type","hidden")}},getValue:function(){if(!this.dependenciesFulfilled)return b;if("string"==this.schema.type)return this.value;if(""===this.value||this.value===b)return b;var a="time"==this.schema.format?"1970-01-01 "+this.value:this.value;return parseInt(new Date(a).getTime()/1e3)},setValue:function(a,b,c){if("string"==this.schema.type)this._super(a,b,c),this.flatpickr&&this.flatpickr.setDate(a);else if(a>0){var d=new Date(1e3*a),e=d.getFullYear(),f=this.zeroPad(d.getMonth()+1),g=this.zeroPad(d.getDate()),h=this.zeroPad(d.getHours()),i=this.zeroPad(d.getMinutes()),j=this.zeroPad(d.getSeconds()),k=[e,f,g].join("-"),l=[h,i,j].join(":"),m=k+" "+l;"date"==this.schema.format?m=k:"time"==this.schema.format&&(m=l),this.input.value=m,this.flatpickr&&this.flatpickr.setDate(m)}},destroy:function(){this.flatpickr&&this.flatpickr.destroy(),this.flatpickr=null,this._super()},zeroPad:function(a){return("0"+a).slice(-2)}}),h.defaults.editors.signature=h.defaults.editors.string.extend({build:function(){var a=this;this.options.compact||(this.header=this.label=this.theme.getFormInputLabel(this.getTitle())),this.schema.description&&(this.description=this.theme.getFormInputDescription(this.schema.description));var b=this.formname.replace(/\W/g,"");if("function"==typeof SignaturePad){var c="json-editor-style-signature";document.getElementById(c);this.input=this.theme.getFormInputField("hidden"),this.container.appendChild(this.input);var d=document.createElement("div");d.classList.add("signature-container");var e=document.createElement("canvas");e.setAttribute("name",b),e.classList.add("signature"),d.appendChild(e),a.signaturePad=new window.SignaturePad(e,{onEnd:function(){a.signaturePad.isEmpty()?a.input.value="":a.input.value=a.signaturePad.toDataURL(),a.is_dirty=!0,a.refreshValue(),a.watch_listener(),a.jsoneditor.notifyWatchers(a.path),a.parent?a.parent.onChildEditorChange(a):a.jsoneditor.onChange()}});var g=document.createElement("div"),h=document.createElement("button");h.classList.add("tiny","button"),h.innerHTML="Clear signature",g.appendChild(h),d.appendChild(g),this.options.compact&&this.container.setAttribute("class",this.container.getAttribute("class")+" compact"),(this.schema.readOnly||this.schema.readonly)&&(this.always_disabled=!0,f(this.inputs,function(a,b){e.setAttribute("readOnly","readOnly"),b.disabled=!0})),h.addEventListener("click",function(b){b.preventDefault(),b.stopPropagation(),a.signaturePad.clear(),a.signaturePad.strokeEnd()}),this.control=this.theme.getFormControl(this.label,d,this.description),this.container.appendChild(this.control),this.refreshValue(),e.width=d.offsetWidth,a.options&&a.options.canvas_height?e.height=a.options.canvas_height:e.height="300"}else{var i=document.createElement("p");i.innerHTML="Signature pad is not available, please include SignaturePad from https://github.com/szimek/signature_pad",this.container.appendChild(i)}},setValue:function(a){var b=this;if("function"==typeof SignaturePad){var c=(this.formname.replace(/\W/g,""),this.sanitize(a));if(this.value===c)return;return b.value=c,b.input.value=b.value,b.signaturePad.clear(),a&&""!=a&&b.signaturePad.fromDataURL(a),b.watch_listener(),b.jsoneditor.notifyWatchers(b.path),!1}},destroy:function(){var a=this;this.formname.replace(/\W/g,"");a.signaturePad.off(),delete a.signaturePad}});var i=function(){var a=document.documentElement;return a.matches?"matches":a.webkitMatchesSelector?"webkitMatchesSelector":a.mozMatchesSelector?"mozMatchesSelector":a.msMatchesSelector?"msMatchesSelector":a.oMatchesSelector?"oMatchesSelector":void 0}();return h.AbstractTheme=c.extend({getContainer:function(){return document.createElement("div")},getFloatRightLinkHolder:function(){var a=document.createElement("div");return a.style=a.style||{},a.style.cssFloat="right",a.style.marginLeft="10px",a},getModal:function(){var a=document.createElement("div");return a.style.backgroundColor="white",a.style.border="1px solid black",a.style.boxShadow="3px 3px black",a.style.position="absolute",a.style.zIndex="10",a.style.display="none",a},getGridContainer:function(){var a=document.createElement("div");return a},getGridRow:function(){var a=document.createElement("div");return a.classList.add("row"),a},getGridColumn:function(){var a=document.createElement("div");return a},setGridColumnSize:function(a,b){},getLink:function(a){var b=document.createElement("a");return b.setAttribute("href","#"),b.appendChild(document.createTextNode(a)),b},disableHeader:function(a){a.style.color="#ccc"},disableLabel:function(a){a.style.color="#ccc"},enableHeader:function(a){a.style.color=""},enableLabel:function(a){a.style.color=""},getInfoButton:function(a){var b=document.createElement("span");b.innerText="ⓘ",b.style.fontSize="16px",b.style.fontWeight="bold",b.style.padding=".25rem",b.style.position="relative",b.style.display="inline-block";var c=document.createElement("span");return c.style.fontSize="12px",b.style.fontWeight="normal",c.style["font-family"]="sans-serif",c.style.visibility="hidden",c.style["background-color"]="rgba(50, 50, 50, .75)",c.style.margin="0 .25rem",c.style.color="#FAFAFA",c.style.padding=".5rem 1rem",c.style["border-radius"]=".25rem",c.style.width="20rem",c.style.position="absolute",c.innerText=a,b.onmouseover=function(){c.style.visibility="visible"},b.onmouseleave=function(){c.style.visibility="hidden"},b.appendChild(c),b},getFormInputLabel:function(a){var b=document.createElement("label");return b.appendChild(document.createTextNode(a)),b},getCheckboxLabel:function(a){var b=this.getFormInputLabel(a);return b.style.fontWeight="normal",b},getHeader:function(a){var b=document.createElement("h3");return"string"==typeof a?b.textContent=a:b.appendChild(a),b},getCheckbox:function(){var a=this.getFormInputField("checkbox");return a.style.display="inline-block",a.style.width="auto",a},getMultiCheckboxHolder:function(a,b,c){var d=document.createElement("div");b&&(b.style.display="block",d.appendChild(b));for(var e in a)a.hasOwnProperty(e)&&(a[e].style.display="inline-block",a[e].style.marginRight="20px",d.appendChild(a[e]));return c&&d.appendChild(c),d},getSelectInput:function(a){var b=document.createElement("select");return a&&this.setSelectOptions(b,a),b},getSwitcher:function(a){var b=this.getSelectInput(a);return b.style.backgroundColor="transparent",b.style.display="inline-block",b.style.fontStyle="italic",b.style.fontWeight="normal",b.style.height="auto",b.style.marginBottom=0,b.style.marginLeft="5px",b.style.padding="0 0 0 3px",b.style.width="auto",b},getSwitcherOptions:function(a){return a.getElementsByTagName("option")},setSwitcherOptions:function(a,b,c){this.setSelectOptions(a,b,c)},setSelectOptions:function(a,b,c){c=c||[],a.innerHTML="";for(var d=0;d<b.length;d++){var e=document.createElement("option");e.setAttribute("value",b[d]),e.textContent=c[d]||b[d],a.appendChild(e)}},getTextareaInput:function(){var a=document.createElement("textarea");return a.style=a.style||{},a.style.width="100%",a.style.height="300px",a.style.boxSizing="border-box",a},getRangeInput:function(a,b,c){var d=this.getFormInputField("range");return d.setAttribute("min",a),d.setAttribute("max",b),d.setAttribute("step",c),d},getFormInputField:function(a){var b=document.createElement("input");return b.setAttribute("type",a),b},afterInputReady:function(a){},getFormControl:function(a,b,c,d){var e=document.createElement("div");return e.classList.add("form-control"),a&&e.appendChild(a),"checkbox"===b.type&&a?(a.insertBefore(b,a.firstChild),d&&a.appendChild(d)):(d&&a.appendChild(d),e.appendChild(b)),c&&e.appendChild(c),e},getIndentedPanel:function(){var a=document.createElement("div");return a.style=a.style||{},a.style.paddingLeft="10px",a.style.marginLeft="10px",a.style.borderLeft="1px solid #ccc",a},getTopIndentedPanel:function(){var a=document.createElement("div");return a.style=a.style||{},a.style.paddingLeft="10px",a.style.marginLeft="10px",a},getChildEditorHolder:function(){return document.createElement("div")},getDescription:function(a){var b=document.createElement("p");return b.innerHTML=a,b},getCheckboxDescription:function(a){return this.getDescription(a)},getFormInputDescription:function(a){return this.getDescription(a)},getHeaderButtonHolder:function(){return this.getButtonHolder()},getButtonHolder:function(){return document.createElement("div")},getButton:function(a,b,c){var d=document.createElement("button");return d.type="button",this.setButtonText(d,a,b,c),d},setButtonText:function(a,b,c,d){for(;a.firstChild;)a.removeChild(a.firstChild);c&&(a.appendChild(c),b=" "+b);var e=document.createElement("span");e.appendChild(document.createTextNode(b)),a.appendChild(e),d&&a.setAttribute("title",d)},getTable:function(){return document.createElement("table")},getTableRow:function(){return document.createElement("tr")},getTableHead:function(){return document.createElement("thead")},getTableBody:function(){return document.createElement("tbody")},getTableHeaderCell:function(a){var b=document.createElement("th");return b.textContent=a,b},getTableCell:function(){var a=document.createElement("td");return a},getErrorMessage:function(a){var b=document.createElement("p");return b.style=b.style||{},b.style.color="red",b.appendChild(document.createTextNode(a)),b},addInputError:function(a,b){},removeInputError:function(a){},addTableRowError:function(a){},removeTableRowError:function(a){},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<div style='float: left; width: 130px;' class='tabs' id='"+b+"'></div><div class='content' style='margin-left: 120px;' id='"+b+"'></div><div style='clear:both;'></div>",c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<div class='tabs' style='margin-left: 10px;' id='"+b+"'></div><div style='clear:both;'></div><div class='content' id='"+b+"'></div>",c},applyStyles:function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a.style[c]=b[c])},closest:function(a,b){for(;a&&a!==document;){if(!a[i])return!1;if(a[i](b))return a;a=a.parentNode}return!1},insertBasicTopTab:function(a,b){b.firstChild.insertBefore(a,b.firstChild.firstChild)},getTab:function(a,b){var c=document.createElement("div");return c.appendChild(a),c.id=b,c.style=c.style||{},this.applyStyles(c,{border:"1px solid #ccc",borderWidth:"1px 0 1px 1px",textAlign:"center",lineHeight:"30px",borderRadius:"5px",borderBottomRightRadius:0,borderTopRightRadius:0,fontWeight:"bold",cursor:"pointer"}),c},getTopTab:function(a,b){var c=document.createElement("div");return c.id=b,c.appendChild(a),c.style=c.style||{},this.applyStyles(c,{"float":"left",border:"1px solid #ccc",borderWidth:"1px 1px 0px 1px",textAlign:"center",lineHeight:"30px",borderRadius:"5px",paddingLeft:"5px",paddingRight:"5px",borderBottomRightRadius:0,borderBottomLeftRadius:0,fontWeight:"bold",cursor:"pointer"}),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){return this.getIndentedPanel()},getTopTabContent:function(){return this.getTopIndentedPanel()},markTabActive:function(a){this.applyStyles(a.tab,{opacity:1,background:"white"}),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){this.applyStyles(a.tab,{opacity:.5,background:""}),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)},getBlockLink:function(){var a=document.createElement("a");return a.style.display="block",a},getBlockLinkHolder:function(){var a=document.createElement("div");return a},getLinksHolder:function(){var a=document.createElement("div");return a},createMediaLink:function(a,b,c){a.appendChild(b),c.style.width="100%",a.appendChild(c)},createImageLink:function(a,b,c){a.appendChild(b),b.appendChild(c)},getFirstTab:function(a){return a.firstChild.firstChild},getInputGroup:function(a,c){return b}}),h.defaults.themes.bootstrap2=h.AbstractTheme.extend({getRangeInput:function(a,b,c){return this._super(a,b,c)},getGridContainer:function(){var a=document.createElement("div");return a.classList.add("container-fluid"),a},getGridRow:function(){var a=document.createElement("div");return a.classList.add("row-fluid"),a},getFormInputLabel:function(a){var b=this._super(a);return b.style.display="inline-block",b.style.fontWeight="bold",b},setGridColumnSize:function(a,b){a.classList.add("span"+b)},getSelectInput:function(a){var b=this._super(a);return b.style.width="auto",b.style.maxWidth="98%",b},getFormInputField:function(a){var b=this._super(a);return b.style.width="98%",b},afterInputReady:function(a){if(!a.controlgroup&&(a.controlgroup=this.closest(a,".control-group"),a.controls=this.closest(a,".controls"),this.closest(a,".compact")&&(a.controlgroup.className=a.controlgroup.className.replace(/control-group/g,"").replace(/[ ]{2,}/g," "),a.controls.className=a.controlgroup.className.replace(/controls/g,"").replace(/[ ]{2,}/g," "),a.style.marginBottom=0),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("well","well-small"),a.style.paddingBottom=0,a},getInfoButton:function(a){var b=document.createElement("span");b.classList.add("icon-info-sign","pull-right"),b.style.padding=".25rem",b.style.position="relative",b.style.display="inline-block";var c=document.createElement("span");return c.style["font-family"]="sans-serif",c.style.visibility="hidden",c.style["background-color"]="rgba(50, 50, 50, .75)",c.style.margin="0 .25rem",c.style.color="#FAFAFA",c.style.padding=".5rem 1rem",c.style["border-radius"]=".25rem",c.style.width="25rem",c.style.transform="translateX(-27rem) translateY(-.5rem)",c.style.position="absolute",c.innerText=a,b.onmouseover=function(){c.style.visibility="visible"},b.onmouseleave=function(){c.style.visibility="hidden"},b.appendChild(c),b},getFormInputDescription:function(a){var b=document.createElement("p");return b.classList.add("help-inline"),b.textContent=a,b},getFormControl:function(a,b,c,d){var e=document.createElement("div");e.classList.add("control-group");var f=document.createElement("div");return f.classList.add("controls"),a&&"checkbox"===b.getAttribute("type")?(e.appendChild(f),a.classList.add("checkbox"),a.appendChild(b),f.appendChild(a),d&&f.appendChild(d),f.style.height="30px"):(a&&(a.classList.add("control-label"),e.appendChild(a)),d&&f.appendChild(d),f.appendChild(b),e.appendChild(f)),c&&f.appendChild(c),e},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("btn-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("btn","btn-default"),d},getTable:function(){var a=document.createElement("table");return a.classList.add("table","table-bordered"),a.style.width="auto",a.style.maxWidth="none",a},addInputError:function(a,b){return a.controlgroup?void(a.controlgroup&&a.controls&&(a.controlgroup.classList.add("error"),a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("p"),a.errmsg.classList.add("help-block","errormsg"),a.controls.appendChild(a.errmsg)),a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.controlgroup||delete this.queuedInputErrorText,a.errmsg&&(a.errmsg.style.display="none",a.controlgroup.classList.remove("error"))},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("tabbable","tabs-left"),c.innerHTML="<ul class='nav nav-tabs' id='"+b+"'></ul><div class='tab-content well well-small' id='"+b+"'></div>",c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("tabbable","tabs-over"),c.innerHTML="<ul class='nav nav-tabs' id='"+b+"'></ul><div class='tab-content well well-small' id='"+b+"'></div>",c},getTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.add("active"):a.container.classList.add("active")},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.remove("active"):a.container.classList.remove("active")},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)},getProgressBar:function(){var a=document.createElement("div");a.classList.add("progress");var b=document.createElement("div");return b.classList.add("bar"),b.style.width="0%",a.appendChild(b),a},updateProgressBar:function(a,b){a&&(a.firstChild.style.width=b+"%")},updateProgressBarUnknown:function(a){a&&(a.classList.add("progress","progress-striped","active"),a.firstChild.style.width="100%")},getInputGroup:function(a,b){if(a){var c=document.createElement("div");c.classList.add("input-append"),c.appendChild(a);for(var d=0;d<b.length;d++)b[d].classList.add("btn"),c.appendChild(b[d]);return c}}}),h.defaults.themes.bootstrap3=h.AbstractTheme.extend({getSelectInput:function(a){var b=this._super(a);return b.classList.add("form-control"),b},setGridColumnSize:function(a,b){a.classList.add("col-md-"+b)},afterInputReady:function(a){if(!a.controlgroup&&(a.controlgroup=this.closest(a,".form-group"),this.closest(a,".compact")&&(a.controlgroup.style.marginBottom=0),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},getTextareaInput:function(){var a=document.createElement("textarea");return a.classList.add("form-control"),a},getRangeInput:function(a,b,c){return this._super(a,b,c)},getFormInputField:function(a){var b=this._super(a);return"checkbox"!==a&&b.classList.add("form-control"),b},getFormControl:function(a,b,c,d){var e=document.createElement("div");return a&&"checkbox"===b.type?(e.classList.add("checkbox"),a.appendChild(b),a.style.fontSize="14px",e.style.marginTop="0",d&&e.appendChild(d),e.appendChild(a),b.style.position="relative",b.style.cssFloat="left"):(e.classList.add("form-group"),a&&(a.classList.add("control-label"),e.appendChild(a)),d&&e.appendChild(d),e.appendChild(b)),c&&e.appendChild(c),e},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("well","well-sm"),a.style.paddingBottom=0,a},getInfoButton:function(a){var b=document.createElement("span");b.classList.add("glyphicon","glyphicon-info-sign","pull-right"),b.style.padding=".25rem",b.style.position="relative",b.style.display="inline-block";var c=document.createElement("span");return c.style["font-family"]="sans-serif",c.style.visibility="hidden",c.style["background-color"]="rgba(50, 50, 50, .75)",c.style.margin="0 .25rem",c.style.color="#FAFAFA",c.style.padding=".5rem 1rem",c.style["border-radius"]=".25rem",c.style.width="25rem",c.style.transform="translateX(-27rem) translateY(-.5rem)",c.style.position="absolute",c.innerText=a,b.onmouseover=function(){c.style.visibility="visible"},b.onmouseleave=function(){c.style.visibility="hidden"},b.appendChild(c),b},getFormInputDescription:function(a){var b=document.createElement("p");return b.classList.add("help-block"),b.innerHTML=a,b},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("btn-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("btn","btn-default"),d},getTable:function(){var a=document.createElement("table");return a.classList.add("table","table-bordered"),a.style.width="auto",a.style.maxWidth="none",a},addInputError:function(a,b){return a.controlgroup?(a.controlgroup.classList.add("has-error"),a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("p"),a.errmsg.classList.add("help-block","errormsg"),a.controlgroup.appendChild(a.errmsg)),void(a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.controlgroup||delete this.queuedInputErrorText,a.errmsg&&(a.errmsg.style.display="none",a.controlgroup.classList.remove("has-error"))},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<ul class='col-md-2 nav nav-pills nav-stacked' id='"+b+"' role='tablist'></ul><div class='col-md-10 tab-content well well-small' id='"+b+"'></div>",c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<ul class='nav nav-tabs' id='"+b+"' role='tablist'></ul><div class='tab-content well well-small' id='"+b+"'></div>",c},getTab:function(a,b){var c=document.createElement("li");c.setAttribute("role","presentation");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),d.setAttribute("aria-controls",b),d.setAttribute("role","tab"),d.setAttribute("data-toggle","tab"),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.setAttribute("role","presentation");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),d.setAttribute("aria-controls",b),d.setAttribute("role","tab"),d.setAttribute("data-toggle","tab"),c.appendChild(d),c},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.add("active"):a.container.classList.add("active")},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.remove("active"):a.container.classList.remove("active")},getProgressBar:function(){var a=0,b=100,c=0,d=document.createElement("div");d.classList.add("progress");var e=document.createElement("div");return e.classList.add("progress-bar"),e.setAttribute("role","progressbar"),e.setAttribute("aria-valuenow",c),
          19 e.setAttribute("aria-valuemin",a),e.setAttribute("aria-valuenax",b),e.innerHTML=c+"%",d.appendChild(e),d},updateProgressBar:function(a,b){if(a){var c=a.firstChild,d=b+"%";c.setAttribute("aria-valuenow",b),c.style.width=d,c.innerHTML=d}},updateProgressBarUnknown:function(a){if(a){var b=a.firstChild;a.classList.add("progress","progress-striped","active"),b.removeAttribute("aria-valuenow"),b.style.width="100%",b.innerHTML=""}},getInputGroup:function(a,b){if(a){var c=document.createElement("div");c.classList.add("input-group"),c.appendChild(a);var d=document.createElement("div");d.classList.add("input-group-btn"),c.appendChild(d);for(var e=0;e<b.length;e++)d.appendChild(b[e]);return c}}}),h.defaults.themes.bootstrap4=h.AbstractTheme.extend({getSelectInput:function(a){var b=this._super(a);return b.classList.add("form-control"),b},setGridColumnSize:function(a,b){a.classList.add("col-md-"+b)},afterInputReady:function(a){a.controlgroup||(a.controlgroup=this.closest(a,".form-group"),this.closest(a,".compact")&&(a.controlgroup.style.marginBottom=0))},getTextareaInput:function(){var a=document.createElement("textarea");return a.classList.add("form-control"),a},getRangeInput:function(a,b,c){return this._super(a,b,c)},getFormInputField:function(a){var b=this._super(a);return"checkbox"!==a&&b.classList.add("form-control"),b},getFormControl:function(a,b,c){var d=document.createElement("div");return a&&"checkbox"===b.type?(d.classList.add("checkbox"),a.appendChild(b),a.style.fontSize="14px",d.style.marginTop="0",d.appendChild(a),b.style.position="relative",b.style.cssFloat="left"):(d.classList.add("form-group"),a&&(a.classList.add("form-control-label"),d.appendChild(a)),d.appendChild(b)),c&&d.appendChild(c),d},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("card","card-body","bg-light"),a},getFormInputDescription:function(a){var b=document.createElement("p");return b.classList.add("form-text"),b.innerHTML=a,b},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("btn-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("btn","btn-secondary"),d},getTable:function(){var a=document.createElement("table");return a.classList.add("table-bordered","table-sm"),a.style.width="auto",a.style.maxWidth="none",a},addInputError:function(a,b){a.controlgroup&&(a.controlgroup.classList.add("has-danger"),a.classList.add("is-invalid"),a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("p"),a.errmsg.classList.add("form-text","invalid-feedback"),a.controlgroup.appendChild(a.errmsg)),a.errmsg.textContent=b)},removeInputError:function(a){a.errmsg&&(a.errmsg.style.display="none",a.classList.remove("is-invalid"),a.controlgroup.classList.remove("has-danger"))},getTabHolder:function(a){var b=document.createElement("div"),c="undefined"==typeof a?"":a;return b.innerHTML="<div class='col-md-2' id='"+c+"'><ul class='nav flex-column nav-pills'></ul></div><div class='tab-content col-md-10' id='"+c+"'></div>",b.classList.add("row"),b},addTab:function(a,b){a.children[0].children[0].appendChild(b)},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML="<ul class='nav nav-tabs' id='"+b+"'></ul><div class='card-body tab-content' id='"+b+"'></div>",c},getTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.classList.add("nav-link"),d.setAttribute("style","padding:10px;"),d.setAttribute("href","#"+b),d.setAttribute("data-toggle","tab"),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.classList.add("nav-item");var d=document.createElement("a");return d.classList.add("nav-link"),d.setAttribute("href","#"+b),d.setAttribute("data-toggle","tab"),d.appendChild(a),c.appendChild(d),c},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-pane"),a.setAttribute("role","tabpanel"),a},markTabActive:function(a){a.tab.firstChild.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.add("active"):a.container.classList.add("active")},markTabInactive:function(a){a.tab.firstChild.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.classList.remove("active"):a.container.classList.remove("active")},getProgressBar:function(){var a=0,b=100,c=0,d=document.createElement("div");d.classList.add("progress");var e=document.createElement("div");return e.classList.add("progress-bar"),e.setAttribute("role","progressbar"),e.setAttribute("aria-valuenow",c),e.setAttribute("aria-valuemin",a),e.setAttribute("aria-valuenax",b),e.innerHTML=c+"%",d.appendChild(e),d},updateProgressBar:function(a,b){if(a){var c=a.firstChild,d=b+"%";c.setAttribute("aria-valuenow",b),c.style.width=d,c.innerHTML=d}},updateProgressBarUnknown:function(a){if(a){var b=a.firstChild;a.classList.add("progress","progress-striped","active"),b.removeAttribute("aria-valuenow"),b.style.width="100%",b.innerHTML=""}},getInputGroup:function(a,b){if(a){var c=document.createElement("div");c.classList.add("input-group"),c.appendChild(a);var d=document.createElement("div");d.classList.add("input-group-prepend"),c.appendChild(d);for(var e=0;e<b.length;e++)d.appendChild(b[e]);return c}}}),h.defaults.themes.foundation=h.AbstractTheme.extend({getChildEditorHolder:function(){var a=document.createElement("div");return a.style.marginBottom="15px",a},getSelectInput:function(a){var b=this._super(a);return b.style.minWidth="none",b.style.padding="5px",b.style.marginTop="3px",b},getSwitcher:function(a){var b=this._super(a);return b.style.paddingRight="8px",b},afterInputReady:function(a){if(!a.group&&(this.closest(a,".compact")&&(a.style.marginBottom=0),a.group=this.closest(a,".form-control"),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},getFormInputLabel:function(a){var b=this._super(a);return b.style.display="inline-block",b},getFormInputField:function(a){var b=this._super(a);return b.style.width="100%",b.style.marginBottom="checkbox"===a?"0":"12px",b},getFormInputDescription:function(a){var b=document.createElement("p");return b.textContent=a,b.style.marginTop="-10px",b.style.fontStyle="italic",b},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("panel"),a.style.paddingBottom=0,a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.display="inline-block",a.style.marginLeft="10px",a.style.verticalAlign="middle",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("button-group"),a},getButton:function(a,b,c){var d=this._super(a,b,c);return d.classList.add("small","button"),d},addInputError:function(a,b){return a.group?(a.group.classList.add("error"),a.errmsg?a.errmsg.style.display="":(a.insertAdjacentHTML("afterend",'<small class="error"></small>'),a.errmsg=a.parentNode.getElementsByClassName("error")[0]),void(a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.group||delete this.queuedInputErrorText,a.errmsg&&(a.group.classList.remove("error"),a.errmsg.style.display="none")},getProgressBar:function(){var a=document.createElement("div");a.classList.add("progress");var b=document.createElement("span");return b.classList.add("meter"),b.style.width="0%",a.appendChild(b),a},updateProgressBar:function(a,b){a&&(a.firstChild.style.width=b+"%")},updateProgressBarUnknown:function(a){a&&(a.firstChild.style.width="100%")},getInputGroup:function(a,c){if(!a)return b;var d=document.createElement("div");d.classList.add("input-group"),a.classList.add("input-group-field"),d.appendChild(a);for(var e=0;e<c.length;e++){var f=document.createElement("div");f.classList.add("input-group-button"),f.style.verticalAlign="top",c[e].classList.remove("small"),f.appendChild(c[e]),d.appendChild(f)}return d}}),h.defaults.themes.foundation3=h.defaults.themes.foundation.extend({getHeaderButtonHolder:function(){var a=this._super();return a.style.fontSize=".6em",a},getFormInputLabel:function(a){var b=this._super(a);return b.style.fontWeight="bold",b},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("row"),c.innerHTML='<dl class="tabs vertical two columns" id="'+b+'"></dl><div class="tabs-content ten columns" id="'+b+'"></div>',c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("row"),c.innerHTML='<dl class="tabs horizontal" style="padding-left: 10px; margin-left: 10px;" id="'+b+'"></dl><div class="tabs-content twelve columns" style="padding: 10px; margin-left: 10px;" id="'+b+'"></div>',c},setGridColumnSize:function(a,b){var c=["zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve"];a.classList.add("columns",c[b])},getTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("content","active"),a.style.paddingLeft="5px",a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("content","active"),a.style.paddingLeft="5px",a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)}}),h.defaults.themes.foundation4=h.defaults.themes.foundation.extend({getHeaderButtonHolder:function(){var a=this._super();return a.style.fontSize=".6em",a},setGridColumnSize:function(a,b){a.classList.add("columns","large-"+b)},getFormInputDescription:function(a){var b=this._super(a);return b.style.fontSize=".8rem",b},getFormInputLabel:function(a){var b=this._super(a);return b.style.fontWeight="bold",b}}),h.defaults.themes.foundation5=h.defaults.themes.foundation.extend({getFormInputDescription:function(a){var b=this._super(a);return b.style.fontSize=".8rem",b},setGridColumnSize:function(a,b){a.classList.add("columns","medium-"+b)},getButton:function(a,b,c){var d=this._super(a,b,c);return d.className=d.className.replace(/\s*small/g,"")+" tiny",d},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.innerHTML='<dl class="tabs vertical" id="'+b+'"></dl><div class="tabs-content vertical" id="'+b+'"></div>',c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("row"),c.innerHTML='<dl class="tabs horizontal" style="padding-left: 10px;" id="'+b+'"></dl><div class="tabs-content horizontal" style="padding: 10px;" id="'+b+'"></div>',c},getTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("dd"),d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1]},getTopTabContentHolder:function(a){return a.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-content","active"),a.style.paddingLeft="5px",a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tab-content","active"),a.style.paddingLeft="5px",a},markTabActive:function(a){a.tab.classList.add("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){a.tab.classList.remove("active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"},addTab:function(a,b){a.children[0].appendChild(b)},addTopTab:function(a,b){a.children[0].appendChild(b)}}),h.defaults.themes.foundation6=h.defaults.themes.foundation5.extend({getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("callout","secondary"),a.style="padding-left: 10px; margin-left: 10px;",a},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("button-group","tiny"),a.style.marginBottom=0,a},getFormInputLabel:function(a){var b=this._super(a);return b.style.display="block",b},getFormControl:function(a,b,c,d){var e=document.createElement("div");return e.classList.add("form-control"),a&&e.appendChild(a),"checkbox"===b.type?a.insertBefore(b,a.firstChild):a?(d&&a.appendChild(d),a.appendChild(b)):(d&&e.appendChild(d),e.appendChild(b)),c&&a.appendChild(c),e},addInputError:function(a,b){if(a.group){if(a.group.classList.add("error"),a.errmsg)a.errmsg.style.display="",a.className="";else{var c=document.createElement("span");c.classList.add("form-error","is-visible"),a.group.getElementsByTagName("label")[0].appendChild(c),a.classList.add("is-invalid-input"),a.errmsg=c}a.errmsg.textContent=b}},removeInputError:function(a){a.errmsg&&(a.classList.remove("is-invalid-input"),a.errmsg.parentNode&&a.errmsg.parentNode.removeChild(a.errmsg))},getTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("grid-x"),c.innerHTML='<div class="medium-2 cell" style="float: left;"><ul class="vertical tabs" data-tabs id="'+b+'"></ul></div><div class="medium-10 cell" style="float: left;"><div class="tabs-content" data-tabs-content="'+b+'"></div></div>',c},getTopTabHolder:function(a){var b="undefined"==typeof a?"":a,c=document.createElement("div");return c.classList.add("grid-y"),c.innerHTML='<div className="cell"><ul class="tabs" data-tabs id="'+b+'"></ul><div class="tabs-content" data-tabs-content="'+b+'"></div></div>',c},insertBasicTopTab:function(a,b){b.firstChild.firstChild.insertBefore(a,b.firstChild.firstChild.firstChild)},getTab:function(a,b){var c=document.createElement("li");c.classList.add("tabs-title");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTopTab:function(a,b){var c=document.createElement("li");c.classList.add("tabs-title");var d=document.createElement("a");return d.setAttribute("href","#"+b),d.appendChild(a),c.appendChild(d),c},getTabContentHolder:function(a){return a.children[1].firstChild},getTopTabContentHolder:function(a){return a.firstChild.children[1]},getTabContent:function(){var a=document.createElement("div");return a.classList.add("tabs-panel"),a.style.paddingLeft="5px",a},getTopTabContent:function(){var a=document.createElement("div");return a.classList.add("tabs-panel"),a.style.paddingLeft="5px",a},markTabActive:function(a){a.tab.classList.add("is-active"),a.tab.firstChild.setAttribute("aria-selected","true"),"undefined"!=typeof a.rowPane?(a.rowPane.classList.add("is-active"),a.rowPane.setAttribute("aria-selected","true")):(a.container.classList.add("is-active"),a.container.setAttribute("aria-selected","true"))},markTabInactive:function(a){a.tab.classList.remove("is-active"),a.tab.firstChild.removeAttribute("aria-selected"),"undefined"!=typeof a.rowPane?(a.rowPane.classList.remove("is-active"),a.rowPane.removeAttribute("aria-selected")):(a.container.classList.remove("is-active"),a.container.removeAttribute("aria-selected"))},addTab:function(a,b){a.children[0].firstChild.appendChild(b)},addTopTab:function(a,b){a.firstChild.children[0].appendChild(b)},getFirstTab:function(a){return a.firstChild.firstChild.firstChild}}),h.defaults.themes.html=h.AbstractTheme.extend({getFormInputLabel:function(a){var b=this._super(a);return b.style.display="block",b.style.marginBottom="3px",b.style.fontWeight="bold",b},getFormInputDescription:function(a){var b=this._super(a);return b.style.fontSize=".8em",b.style.margin=0,b.style.display="inline-block",b.style.fontStyle="italic",b},getIndentedPanel:function(){var a=this._super();return a.style.border="1px solid #ddd",a.style.padding="5px",a.style.margin="10px",a.style.borderRadius="3px",a},getTopIndentedPanel:function(){return this.getIndentedPanel()},getChildEditorHolder:function(){var a=this._super();return a.style.marginBottom="8px",a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.display="inline-block",a.style.marginLeft="10px",a.style.fontSize=".8em",a.style.verticalAlign="middle",a},getTable:function(){var a=this._super();return a.style.borderBottom="1px solid #ccc",a.style.marginBottom="5px",a},addInputError:function(a,b){if(a.style.borderColor="red",a.errmsg)a.errmsg.style.display="block";else{var c=this.closest(a,".form-control");a.errmsg=document.createElement("div"),a.errmsg.setAttribute("class","errmsg"),a.errmsg.style=a.errmsg.style||{},a.errmsg.style.color="red",c.appendChild(a.errmsg)}a.errmsg.innerHTML="",a.errmsg.appendChild(document.createTextNode(b))},removeInputError:function(a){a.style.borderColor="",a.errmsg&&(a.errmsg.style.display="none")},getProgressBar:function(){var a=100,b=0,c=document.createElement("progress");return c.setAttribute("max",a),c.setAttribute("value",b),c},updateProgressBar:function(a,b){a&&a.setAttribute("value",b)},updateProgressBarUnknown:function(a){a&&a.removeAttribute("value")}}),h.defaults.themes.jqueryui=h.AbstractTheme.extend({getTable:function(){var a=this._super();return a.setAttribute("cellpadding",5),a.setAttribute("cellspacing",0),a},getTableHeaderCell:function(a){var b=this._super(a);return b.classList.add("ui-state-active"),b.style.fontWeight="bold",b},getTableCell:function(){var a=this._super();return a.classList.add("ui-widget-content"),a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a.style.marginLeft="10px",a.style.fontSize=".6em",a.style.display="inline-block",a},getFormInputDescription:function(a){var b=this.getDescription(a);return b.style.marginLeft="10px",b.style.display="inline-block",b},getFormControl:function(a,b,c,d){var e=this._super(a,b,c,d);return"checkbox"===b.type?(e.style.lineHeight="25px",e.style.padding="3px 0"):e.style.padding="4px 0 8px 0",e},getDescription:function(a){var b=document.createElement("span");return b.style.fontSize=".8em",b.style.fontStyle="italic",b.textContent=a,b},getButtonHolder:function(){var a=document.createElement("div");return a.classList.add("ui-buttonset"),a.style.fontSize=".7em",a},getFormInputLabel:function(a){var b=document.createElement("label");return b.style.fontWeight="bold",b.style.display="block",b.textContent=a,b},getButton:function(a,b,c){var d=document.createElement("button");d.classList.add("ui-button","ui-widget","ui-state-default","ui-corner-all"),b&&!a?(d.classList.add("ui-button-icon-only"),b.classList.add("ui-button-icon-primary","ui-icon-primary"),d.appendChild(b)):b?(d.classList.add("ui-button-text-icon-primary"),b.classList.add("ui-button-icon-primary","ui-icon-primary"),d.appendChild(b)):d.classList.add("ui-button-text-only");var e=document.createElement("span");return e.classList.add("ui-button-text"),e.textContent=a||c||".",d.appendChild(e),d.setAttribute("title",c),d},setButtonText:function(a,b,c,d){a.innerHTML="",a.classList.add("ui-button","ui-widget","ui-state-default","ui-corner-all"),c&&!b?(a.classList.add("ui-button-icon-only"),c.classList.add("ui-button-icon-primary","ui-icon-primary"),a.appendChild(c)):c?(a.classList.add("ui-button-text-icon-primary"),c.classList.add("ui-button-icon-primary","ui-icon-primary"),a.appendChild(c)):a.classList.add("ui-button-text-only");var e=document.createElement("span");e.classList.add("ui-button-text"),e.textContent=b||d||".",a.appendChild(e),a.setAttribute("title",d)},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("ui-widget-content","ui-corner-all"),a.style.padding="1em 1.4em",a.style.marginBottom="20px",a},afterInputReady:function(a){if(!a.controls&&(a.controls=this.closest(a,".form-control"),this.queuedInputErrorText)){var b=this.queuedInputErrorText;delete this.queuedInputErrorText,this.addInputError(a,b)}},addInputError:function(a,b){return a.controls?(a.errmsg?a.errmsg.style.display="":(a.errmsg=document.createElement("div"),a.errmsg.classList.add("ui-state-error"),a.controls.appendChild(a.errmsg)),void(a.errmsg.textContent=b)):void(this.queuedInputErrorText=b)},removeInputError:function(a){a.controls||delete this.queuedInputErrorText,a.errmsg&&(a.errmsg.style.display="none")},markTabActive:function(a){a.tab.classList.remove("ui-widget-header"),a.tab.classList.add("ui-state-active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="":a.container.style.display=""},markTabInactive:function(a){a.tab.classList.add("ui-widget-header"),a.tab.classList.remove("ui-state-active"),"undefined"!=typeof a.rowPane?a.rowPane.style.display="none":a.container.style.display="none"}}),h.defaults.themes.barebones=h.AbstractTheme.extend({getFormInputLabel:function(a){var b=this._super(a);return b},getFormInputDescription:function(a){var b=this._super(a);return b},getIndentedPanel:function(){var a=this._super();return a},getChildEditorHolder:function(){var a=this._super();return a},getHeaderButtonHolder:function(){var a=this.getButtonHolder();return a},getTable:function(){var a=this._super();return a},addInputError:function(a,b){if(a.errmsg)a.errmsg.style.display="block";else{var c=this.closest(a,".form-control");a.errmsg=document.createElement("div"),a.errmsg.setAttribute("class","errmsg"),c.appendChild(a.errmsg)}a.errmsg.innerHTML="",a.errmsg.appendChild(document.createTextNode(b))},removeInputError:function(a){a.style.borderColor="",a.errmsg&&(a.errmsg.style.display="none")},getProgressBar:function(){var a=100,b=0,c=document.createElement("progress");return c.setAttribute("max",a),c.setAttribute("value",b),c},updateProgressBar:function(a,b){a&&a.setAttribute("value",b)},updateProgressBarUnknown:function(a){a&&a.removeAttribute("value")}}),h.defaults.themes.materialize=h.AbstractTheme.extend({setGridColumnSize:function(a,b){a.classList.add("col"),a.classList.add("s"+b)},getHeaderButtonHolder:function(){return this.getButtonHolder()},getButtonHolder:function(){return document.createElement("span")},getButton:function(a,b,c){a&&(b.classList.add("left"),b.style.marginRight="5px");var d=this._super(a,b,c);return d.classList.add("waves-effect","waves-light","btn"),d.style.fontSize="0.75rem",d.style.height="24px",d.style.lineHeight="24px",d.style.marginLeft="5px",d.style.padding="0 0.5rem",d},getFormControl:function(a,b,c,d){var e,f=b.type;if(f&&"checkbox"===f){if(e=document.createElement("p"),a){var g=document.createElement("span");g.innerHTML=a.innerHTML,a.innerHTML="",a.setAttribute("for",b.id),e.appendChild(a),a.appendChild(b),a.appendChild(g)}else e.appendChild(b);return e}return e=this._super(a,b,c,d),f&&f.startsWith("select")||e.classList.add("input-field"),f&&"color"===f&&(b.style.height="3rem",b.style.width="100%",b.style.margin="5px 0 20px 0",b.style.padding="3px",a&&(a.style.transform="translateY(-14px) scale(0.8)",a.style["-webkit-transform"]="translateY(-14px) scale(0.8)",a.style["-webkit-transform-origin"]="0 0",a.style["transform-origin"]="0 0")),e},getDescription:function(a){var b=document.createElement("div");return b.classList.add("grey-text"),b.style.marginTop="-15px",b.innerHTML=a,b},getHeader:function(a){var b=document.createElement("h5");return"string"==typeof a?b.textContent=a:b.appendChild(a),b},getChildEditorHolder:function(){var a=document.createElement("div");return a.marginBottom="10px",a},getIndentedPanel:function(){var a=document.createElement("div");return a.classList.add("card-panel"),a},getTable:function(){var a=document.createElement("table");return a.classList.add("striped","bordered"),a.style.marginBottom="10px",a},getTableRow:function(){return document.createElement("tr")},getTableHead:function(){return document.createElement("thead")},getTableBody:function(){return document.createElement("tbody")},getTableHeaderCell:function(a){var b=document.createElement("th");return b.textContent=a,b},getTableCell:function(){var a=document.createElement("td");return a},getTabHolder:function(){var a=['<div class="col s2">',' <ul class="tabs" style="height: auto; margin-top: 0.82rem; -ms-flex-direction: column; -webkit-flex-direction: column; flex-direction: column; display: -webkit-flex; display: flex;">'," </ul>","</div>",'<div class="col s10">',"<div>"].join("\n"),b=document.createElement("div");return b.classList.add("row","card-panel"),b.innerHTML=a,b},addTab:function(a,b){a.children[0].children[0].appendChild(b)},getTab:function(a){var b=document.createElement("li");return b.classList.add("tab"),b.style=b.style||{},this.applyStyles(b,{width:"100%",textAlign:"left",lineHeight:"24px",height:"24px",fontSize:"14px",cursor:"pointer"}),b.appendChild(a),b},markTabActive:function(a){a.style=a.style||{},this.applyStyles(a,{width:"100%",textAlign:"left",lineHeight:"24px",height:"24px",fontSize:"14px",cursor:"pointer",color:"rgba(238,110,115,1)",transition:"border-color .5s ease",borderRight:"3px solid #424242"})},markTabInactive:function(a){a.style=a.style||{},this.applyStyles(a,{width:"100%",textAlign:"left",lineHeight:"24px",height:"24px",fontSize:"14px",cursor:"pointer",color:"rgba(238,110,115,0.7)"})},getTabContentHolder:function(a){return a.children[1]},getTabContent:function(){return document.createElement("div")},addInputError:function(a,b){var c,d=a.parentNode;d&&(this.removeInputError(a),c=document.createElement("div"),c.classList.add("error-text","red-text"),c.textContent=b,d.appendChild(c))},removeInputError:function(a){var b,c=a.parentElement;if(c){b=c.getElementsByClassName("error-text");for(var d=0;d<b.length;d++)c.removeChild(b[d])}},addTableRowError:function(a){},removeTableRowError:function(a){},getSelectInput:function(a){var b=this._super(a);return b.classList.add("browser-default"),b},getTextareaInput:function(){var a=document.createElement("textarea");return a.style.marginBottom="5px",a.style.fontSize="1rem",a.style.fontFamily="monospace",a},getCheckbox:function(){var a=this.getFormInputField("checkbox");return a.id=this.createUuid(),a},getModal:function(){var a=document.createElement("div");return a.classList.add("card-panel","z-depth-3"),a.style.padding="5px",a.style.position="absolute",a.style.zIndex="10",a.style.display="none",a},createUuid:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"==a?b:3&b|8;return c.toString(16)})}}),h.AbstractIconLib=c.extend({mapping:{collapse:"",expand:"","delete":"",edit:"",add:"",cancel:"",save:"",moveup:"",movedown:""},icon_prefix:"",getIconClass:function(a){return this.mapping[a]?this.icon_prefix+this.mapping[a]:null},getIcon:function(a){var b=this.getIconClass(a);if(!b)return null;var c=document.createElement("i");return c.classList.add.apply(c.classList,b.split(" ")),c}}),h.defaults.iconlibs.bootstrap2=h.AbstractIconLib.extend({mapping:{collapse:"chevron-down",expand:"chevron-up","delete":"trash",edit:"pencil",add:"plus",cancel:"ban-circle",save:"ok",moveup:"arrow-up",movedown:"arrow-down",clear:"remove-circle",time:"time",calendar:"calendar"},icon_prefix:"icon-"}),h.defaults.iconlibs.bootstrap3=h.AbstractIconLib.extend({mapping:{collapse:"chevron-down",expand:"chevron-right","delete":"remove",edit:"pencil",add:"plus",cancel:"floppy-remove",save:"floppy-saved",moveup:"arrow-up",movedown:"arrow-down",clear:"remove-circle",time:"time",calendar:"calendar"},icon_prefix:"glyphicon glyphicon-"}),h.defaults.iconlibs.fontawesome3=h.AbstractIconLib.extend({mapping:{collapse:"chevron-down",expand:"chevron-right","delete":"remove",edit:"pencil",add:"plus",cancel:"ban-circle",save:"save",moveup:"arrow-up",movedown:"arrow-down",clear:"remove-circle",time:"time",calendar:"calendar"},icon_prefix:"icon-"}),h.defaults.iconlibs.fontawesome4=h.AbstractIconLib.extend({mapping:{collapse:"caret-square-o-down",expand:"caret-square-o-right","delete":"times",edit:"pencil",add:"plus",cancel:"ban",save:"save",moveup:"arrow-up",movedown:"arrow-down",copy:"files-o",clear:"times-circle-o",time:"clock-o",calendar:"calendar"},icon_prefix:"fa fa-"}),h.defaults.iconlibs.fontawesome5=h.AbstractIconLib.extend({mapping:{collapse:"caret-down",expand:"caret-right","delete":"times",edit:"pen",add:"plus",cancel:"ban",save:"save",moveup:"arrow-up",movedown:"arrow-down",copy:"copy",clear:"times-circle",time:"clock",calendar:"calendar"},icon_prefix:"fas fa-"}),h.defaults.iconlibs.foundation2=h.AbstractIconLib.extend({mapping:{collapse:"minus",expand:"plus","delete":"remove",edit:"edit",add:"add-doc",cancel:"error",save:"checkmark",moveup:"up-arrow",movedown:"down-arrow",clear:"remove",time:"clock",calendar:"calendar"},icon_prefix:"foundicon-"}),h.defaults.iconlibs.foundation3=h.AbstractIconLib.extend({mapping:{collapse:"minus",expand:"plus","delete":"x",edit:"pencil",add:"page-add",cancel:"x-circle",save:"save",moveup:"arrow-up",movedown:"arrow-down",clear:"x-circle",time:"clock",calendar:"calendar"},icon_prefix:"fi-"}),h.defaults.iconlibs.jqueryui=h.AbstractIconLib.extend({mapping:{collapse:"triangle-1-s",expand:"triangle-1-e","delete":"trash",edit:"pencil",add:"plusthick",cancel:"closethick",save:"disk",moveup:"arrowthick-1-n",movedown:"arrowthick-1-s",clear:"circle-close",time:"time",calendar:"calendar"},icon_prefix:"ui-icon ui-icon-"}),h.defaults.iconlibs.materialicons=h.AbstractIconLib.extend({mapping:{collapse:"arrow_drop_up",expand:"arrow_drop_down","delete":"delete",edit:"edit",add:"add",cancel:"cancel",save:"save",moveup:"arrow_upward",movedown:"arrow_downward",copy:"content_copy",clear:"highlight_off",time:"access_time",calendar:"calendar_today",upload:"cloud_upload"},icon_class:"material-icons",icon_prefix:"",getIconClass:function(a){return this.icon_class},getIcon:function(a){var b=this.mapping[a];if(!b)return null;var c=document.createElement("i");c.classList.add(this.icon_class);var d=document.createTextNode(b);return c.appendChild(d),c}}),h.defaults.templates["default"]=function(){return{compile:function(a){var b=a.match(/{{\s*([a-zA-Z0-9\-_ \.]+)\s*}}/g),c=b&&b.length;if(!c)return function(){return a};for(var d=[],e=function(a){var c,e=b[a].replace(/[{}]+/g,"").trim().split("."),f=e.length;if(f>1){var g;c=function(b){for(g=b,a=0;a<f&&(g=g[e[a]],g);a++);return g}}else e=e[0],c=function(a){return a[e]};d.push({s:b[a],r:c})},f=0;f<c;f++)e(f);return function(b){var e,g=a+"";for(f=0;f<c;f++)e=d[f],g=g.replace(e.s,e.r(b));return g}}}},h.defaults.templates.ejs=function(){return!!window.EJS&&{compile:function(a){var b=new window.EJS({text:a});return function(a){return b.render(a)}}}},h.defaults.templates.handlebars=function(){return window.Handlebars},h.defaults.templates.hogan=function(){return!!window.Hogan&&{compile:function(a){var b=window.Hogan.compile(a);return function(a){return b.render(a)}}}},h.defaults.templates.lodash=function(){return!!window._&&{compile:function(a){return function(b){return window._.template(a)(b)}}}},h.defaults.templates.markup=function(){return!(!window.Mark||!window.Mark.up)&&{compile:function(a){return function(b){return window.Mark.up(a,b)}}}},h.defaults.templates.mustache=function(){return!!window.Mustache&&{compile:function(a){return function(b){return window.Mustache.render(a,b)}}}},h.defaults.templates.swig=function(){return window.swig},h.defaults.templates.underscore=function(){
          20 return!!window._&&{compile:function(a){return function(b){return window._.template(a,b)}}}},h.defaults.theme="html",h.defaults.template="default",h.defaults.options={},h.defaults.options.prompt_before_delete=!0,h.defaults.options.upload=function(a,b,c){console.log("Upload handler required for upload editor")},h.defaults.translate=function(a,b){var c=h.defaults.languages[h.defaults.language];if(!c)throw"Unknown language "+h.defaults.language;var d=c[a]||h.defaults.languages[h.defaults.default_language][a];if("undefined"==typeof d)throw"Unknown translate string "+a;if(b)for(var e=0;e<b.length;e++)d=d.replace(new RegExp("\\{\\{"+e+"}}","g"),b[e]);return d},h.defaults.default_language="en",h.defaults.language=h.defaults.default_language,h.defaults.languages.en={error_notset:"Property must be set",error_notempty:"Value required",error_enum:"Value must be one of the enumerated values",error_anyOf:"Value must validate against at least one of the provided schemas",error_oneOf:"Value must validate against exactly one of the provided schemas. It currently validates against {{0}} of the schemas.",error_not:"Value must not validate against the provided schema",error_type_union:"Value must be one of the provided types",error_type:"Value must be of type {{0}}",error_disallow_union:"Value must not be one of the provided disallowed types",error_disallow:"Value must not be of type {{0}}",error_multipleOf:"Value must be a multiple of {{0}}",error_maximum_excl:"Value must be less than {{0}}",error_maximum_incl:"Value must be at most {{0}}",error_minimum_excl:"Value must be greater than {{0}}",error_minimum_incl:"Value must be at least {{0}}",error_maxLength:"Value must be at most {{0}} characters long",error_minLength:"Value must be at least {{0}} characters long",error_pattern:"Value must match the pattern {{0}}",error_additionalItems:"No additional items allowed in this array",error_maxItems:"Value must have at most {{0}} items",error_minItems:"Value must have at least {{0}} items",error_uniqueItems:"Array must have unique items",error_maxProperties:"Object must have at most {{0}} properties",error_minProperties:"Object must have at least {{0}} properties",error_required:"Object is missing the required property '{{0}}'",error_additional_properties:"No additional properties allowed, but property {{0}} is set",error_dependency:"Must have property {{0}}",error_date:"Date must be in the format {{0}}",error_time:"Time must be in the format {{0}}",error_datetime_local:"Datetime must be in the format {{0}}",error_invalid_epoch:"Date must be greater than 1 January 1970",button_delete_all:"All",button_delete_all_title:"Delete All",button_delete_last:"Last {{0}}",button_delete_last_title:"Delete Last {{0}}",button_add_row_title:"Add {{0}}",button_move_down_title:"Move down",button_move_up_title:"Move up",button_delete_row_title:"Delete {{0}}",button_delete_row_title_short:"Delete",button_collapse:"Collapse",button_expand:"Expand",flatpickr_toggle_button:"Toggle",flatpickr_clear_button:"Clear"},h.plugins={ace:{theme:""},SimpleMDE:{},sceditor:{},select2:{},selectize:{}},f(h.defaults.editors,function(a,b){h.defaults.editors[a].options=b.options||{}}),h.defaults.resolvers.unshift(function(a){if("string"!=typeof a.type)return"multiple"}),h.defaults.resolvers.unshift(function(a){if(!a.type&&a.properties)return"object"}),h.defaults.resolvers.unshift(function(a){if("string"==typeof a.type)return a.type}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&"signature"===a.format)return"signature"}),h.defaults.resolvers.unshift(function(a){if("integer"===a.type&&"rating"===a.format)return"rating"}),h.defaults.resolvers.unshift(function(a){if("boolean"===a.type)return"checkbox"===a.format||a.options&&a.options.checkbox?"checkbox":h.plugins.selectize.enable?"selectize":"select"}),h.defaults.resolvers.unshift(function(a){if("any"===a.type)return"multiple"}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&a.media&&"base64"===a.media.binaryEncoding)return"base64"}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&"url"===a.format&&a.options&&a.options.upload===!0&&window.FileReader)return"upload"}),h.defaults.resolvers.unshift(function(a){if("array"===a.type&&"table"===a.format)return"table"}),h.defaults.resolvers.unshift(function(a){if(a.enumSource)return h.plugins.selectize.enable?"selectize":"select"}),h.defaults.resolvers.unshift(function(a){if(a["enum"]){if("array"===a.type||"object"===a.type)return"enum";if("number"===a.type||"integer"===a.type||"string"===a.type)return h.plugins.selectize.enable?"selectize":"select"}}),h.defaults.resolvers.unshift(function(a){if("array"===a.type&&a.items&&!Array.isArray(a.items)&&a.uniqueItems&&["string","number","integer"].indexOf(a.items.type)>=0){if(a.items["enum"])return"multiselect";if(h.plugins.selectize.enable&&"string"===a.items.type)return"arraySelectize"}}),h.defaults.resolvers.unshift(function(a){if(a.oneOf||a.anyOf)return"multiple"}),h.defaults.resolvers.unshift(function(a){if(["string","integer"].indexOf(a.type)!==-1&&["date","time","datetime-local"].indexOf(a.format)!==-1)return"datetime"}),h.defaults.resolvers.unshift(function(a){if("string"===a.type&&"starrating"===a.format)return"starrating"}),function(){if(window.jQuery||window.Zepto){var a=window.jQuery||window.Zepto;a.jsoneditor=h.defaults,a.fn.jsoneditor=function(a){var b=this,c=this.data("jsoneditor");if("value"===a){if(!c)throw"Must initialize jsoneditor before getting/setting the value";if(!(arguments.length>1))return c.getValue();c.setValue(arguments[1])}else{if("validate"===a){if(!c)throw"Must initialize jsoneditor before validating";return arguments.length>1?c.validate(arguments[1]):c.validate()}"destroy"===a?c&&(c.destroy(),this.data("jsoneditor",null)):(c&&c.destroy(),c=new h(this.get(0),a),this.data("jsoneditor",c),c.on("change",function(){b.trigger("change")}),c.on("ready",function(){b.trigger("ready")}))}return this}}}(),h});
          21 //# sourceMappingURL=jsoneditor.min.js.map
          22 )=====";
          const char PAGE_js_jsoneditor [] PROGMEM
          Definition: js_jsoneditor.h:2
          -
          -
          - - - - diff --git a/docs/js__sensesp_8h.html b/docs/js__sensesp_8h.html deleted file mode 100644 index d5266de75..000000000 --- a/docs/js__sensesp_8h.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - -SensESP: src/net/web/js_sensesp.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          js_sensesp.h File Reference
          -
          -
          -
          #include <pgmspace.h>
          -
          -Include dependency graph for js_sensesp.h:
          -
          -
          - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Variables

          const char PAGE_js_sensesp [] PROGMEM
           
          -

          Variable Documentation

          - -

          ◆ PROGMEM

          - -
          -
          - - - - -
          const char PAGE_js_sensesp [] PROGMEM
          -
          -Initial value:
          = R"=====(
          function ajax(method,url,data,contentType){return new Promise(function(resolve,reject){var request=new XMLHttpRequest;request.open(method,url,!0),request.onload=function(){200===request.status?resolve(request.response):reject(Error(request.statusText))},request.onerror=function(){reject(Error("Network Error"))},contentType&&request.setRequestHeader("Content-Type",contentType),request.send(data)})}class TreeList{constructor(main,pathList){this.main=main,this.main.appendChild(document.createElement("div")),this.root=document.createElement("ul"),this.root.id="tree",this.main.appendChild(this.root);for(var i=0;i<pathList.length;i++){var entry=pathList[i],fullPath=entry,parts=entry.split("/"),nodeName=parts.pop(),section=this.main;for(parts.shift();parts.length>0;){var sectionName=parts.shift();section=this.findNode(section,sectionName)}this.addEntry(section,nodeName,fullPath)}var toggler=document.getElementsByClassName("caret");for(i=0;i<toggler.length;i++)toggler[i].addEventListener("click",function(){this.parentElement.querySelector(".nested").classList.toggle("active"),this.classList.toggle("caret-down")})}makeSectionNode(name){var section=document.createElement("li"),caret=document.createElement("span");caret.className="caret",caret.innerHTML=name,section.appendChild(caret);var ul=document.createElement("ul");return ul.className="nested",section.appendChild(ul),section}addEntry(section,name,fullPath){var entry=document.createElement("li");entry.innerHTML=name,section.children[1].appendChild(entry),entry.className="selectable",entry.addEventListener("click",function(){editConfig(fullPath)})}findNode(sectionRoot,nodeName){if(""!=nodeName){var i,nextEntry,searchChildren=sectionRoot.children[1].childNodes;for(i=0;i<searchChildren.length;i++)if((nextEntry=searchChildren[i]).childNodes[0].textContent==nodeName)return nextEntry;return nextEntry=this.makeSectionNode(nodeName),sectionRoot.children[1].appendChild(nextEntry),nextEntry}return sectionRoot}}var globalEditor=null;function getEmptyMountDiv(){var main=document.getElementById("mountNode");return main.empty(),globalEditor=null,main}function editConfig(config_path){var main=getEmptyMountDiv();ajax("GET","/config"+config_path).then(response=>{var json=JSON.parse(response),config=json.config,schema=json.schema;if(0==Object.keys(schema).length)return alert(`No schema available for ${config_path}`),void showConfigTree();schema.title||(schema.title=`Configuration for ${config_path}`),main.innerHTML="\n <div class='row'>\n <div id='editor_holder' class='medium-12 columns'></div> \n </div>\n <div class='row'>\n <div class='medium-12-columns'>\n <button id='submit' class='tiny'>Save</button>\n <button id='cancel' class='tiny'>Cancel</button>\n <span id='valid_indicator' class='label'></span>\n </div>\n </div>\n ",globalEditor=new JSONEditor(document.getElementById("editor_holder"),{schema:schema,startval:config,no_additional_properties:!0,disable_collapse:!0,disable_properties:!0,disable_edit_json:!0,show_opt_in:!0}),document.getElementById("submit").addEventListener("click",function(){saveConfig(config_path,globalEditor.getValue())}),document.getElementById("cancel").addEventListener("click",function(){showConfigTree()}),globalEditor.on("change",function(){var errors=globalEditor.validate(),indicator=document.getElementById("valid_indicator");errors.length?(indicator.className="label alert",indicator.textContent="not valid"):(indicator.className="label success",indicator.textContent="valid")})}).catch(err=>{alert(`Error retrieving configuration ${config_path}: ${err.message}`),showConfigTree()})}function saveConfig(config_path,values){ajax("PUT","/config"+config_path,JSON.stringify(values),"application/json").then(response=>{showConfigTree()}).catch(err=>{alert(`Error saving configuration ${config_path}: ${err.message}`),showConfigTree()})}function showConfigTree(){var main=getEmptyMountDiv();ajax("GET","/config").then(response=>{var configList=JSON.parse(response).keys;return configList.sort(),configList}).then(configList=>{new TreeList(main,configList)}).catch(err=>{alert("Error: "+err.statusText)})}Element.prototype.empty=function(){for(var child=this.lastElementChild;child;)this.removeChild(child),child=this.lastElementChild};
          )====="
          -

          Definition at line 2 of file js_sensesp.h.

          - -
          -
          -
          -
          - - - - diff --git a/docs/js__sensesp_8h__incl.md5 b/docs/js__sensesp_8h__incl.md5 deleted file mode 100644 index ec0b079c8..000000000 --- a/docs/js__sensesp_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -68a9d8c6f5fd71df16bb28913ed6e5c8 \ No newline at end of file diff --git a/docs/js__sensesp_8h__incl.png b/docs/js__sensesp_8h__incl.png deleted file mode 100644 index de5555d80..000000000 Binary files a/docs/js__sensesp_8h__incl.png and /dev/null differ diff --git a/docs/js__sensesp_8h_source.html b/docs/js__sensesp_8h_source.html deleted file mode 100644 index d63efb1a3..000000000 --- a/docs/js__sensesp_8h_source.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - -SensESP: src/net/web/js_sensesp.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          js_sensesp.h
          -
          -
          -Go to the documentation of this file.
          1 #include <pgmspace.h>
          2 const char PAGE_js_sensesp[] PROGMEM = R"=====(
          3 function ajax(method,url,data,contentType){return new Promise(function(resolve,reject){var request=new XMLHttpRequest;request.open(method,url,!0),request.onload=function(){200===request.status?resolve(request.response):reject(Error(request.statusText))},request.onerror=function(){reject(Error("Network Error"))},contentType&&request.setRequestHeader("Content-Type",contentType),request.send(data)})}class TreeList{constructor(main,pathList){this.main=main,this.main.appendChild(document.createElement("div")),this.root=document.createElement("ul"),this.root.id="tree",this.main.appendChild(this.root);for(var i=0;i<pathList.length;i++){var entry=pathList[i],fullPath=entry,parts=entry.split("/"),nodeName=parts.pop(),section=this.main;for(parts.shift();parts.length>0;){var sectionName=parts.shift();section=this.findNode(section,sectionName)}this.addEntry(section,nodeName,fullPath)}var toggler=document.getElementsByClassName("caret");for(i=0;i<toggler.length;i++)toggler[i].addEventListener("click",function(){this.parentElement.querySelector(".nested").classList.toggle("active"),this.classList.toggle("caret-down")})}makeSectionNode(name){var section=document.createElement("li"),caret=document.createElement("span");caret.className="caret",caret.innerHTML=name,section.appendChild(caret);var ul=document.createElement("ul");return ul.className="nested",section.appendChild(ul),section}addEntry(section,name,fullPath){var entry=document.createElement("li");entry.innerHTML=name,section.children[1].appendChild(entry),entry.className="selectable",entry.addEventListener("click",function(){editConfig(fullPath)})}findNode(sectionRoot,nodeName){if(""!=nodeName){var i,nextEntry,searchChildren=sectionRoot.children[1].childNodes;for(i=0;i<searchChildren.length;i++)if((nextEntry=searchChildren[i]).childNodes[0].textContent==nodeName)return nextEntry;return nextEntry=this.makeSectionNode(nodeName),sectionRoot.children[1].appendChild(nextEntry),nextEntry}return sectionRoot}}var globalEditor=null;function getEmptyMountDiv(){var main=document.getElementById("mountNode");return main.empty(),globalEditor=null,main}function editConfig(config_path){var main=getEmptyMountDiv();ajax("GET","/config"+config_path).then(response=>{var json=JSON.parse(response),config=json.config,schema=json.schema;if(0==Object.keys(schema).length)return alert(`No schema available for ${config_path}`),void showConfigTree();schema.title||(schema.title=`Configuration for ${config_path}`),main.innerHTML="\n <div class='row'>\n <div id='editor_holder' class='medium-12 columns'></div> \n </div>\n <div class='row'>\n <div class='medium-12-columns'>\n <button id='submit' class='tiny'>Save</button>\n <button id='cancel' class='tiny'>Cancel</button>\n <span id='valid_indicator' class='label'></span>\n </div>\n </div>\n ",globalEditor=new JSONEditor(document.getElementById("editor_holder"),{schema:schema,startval:config,no_additional_properties:!0,disable_collapse:!0,disable_properties:!0,disable_edit_json:!0,show_opt_in:!0}),document.getElementById("submit").addEventListener("click",function(){saveConfig(config_path,globalEditor.getValue())}),document.getElementById("cancel").addEventListener("click",function(){showConfigTree()}),globalEditor.on("change",function(){var errors=globalEditor.validate(),indicator=document.getElementById("valid_indicator");errors.length?(indicator.className="label alert",indicator.textContent="not valid"):(indicator.className="label success",indicator.textContent="valid")})}).catch(err=>{alert(`Error retrieving configuration ${config_path}: ${err.message}`),showConfigTree()})}function saveConfig(config_path,values){ajax("PUT","/config"+config_path,JSON.stringify(values),"application/json").then(response=>{showConfigTree()}).catch(err=>{alert(`Error saving configuration ${config_path}: ${err.message}`),showConfigTree()})}function showConfigTree(){var main=getEmptyMountDiv();ajax("GET","/config").then(response=>{var configList=JSON.parse(response).keys;return configList.sort(),configList}).then(configList=>{new TreeList(main,configList)}).catch(err=>{alert("Error: "+err.statusText)})}Element.prototype.empty=function(){for(var child=this.lastElementChild;child;)this.removeChild(child),child=this.lastElementChild};
          4 )=====";
          const char PAGE_js_sensesp [] PROGMEM
          Definition: js_sensesp.h:2
          -
          -
          - - - - diff --git a/docs/led__blinker_8cpp.html b/docs/led__blinker_8cpp.html deleted file mode 100644 index 470b4d0e4..000000000 --- a/docs/led__blinker_8cpp.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - -SensESP: src/system/led_blinker.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          led_blinker.cpp File Reference
          -
          -
          -
          #include "led_blinker.h"
          -#include "sensesp.h"
          -
          -Include dependency graph for led_blinker.cpp:
          -
          -
          - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Macros

          #define LED_PIN   LED_BUILTIN
           
          -

          Macro Definition Documentation

          - -

          ◆ LED_PIN

          - -
          -
          - - - - -
          #define LED_PIN   LED_BUILTIN
          -
          - -

          Definition at line 7 of file led_blinker.cpp.

          - -
          -
          -
          -
          - - - - diff --git a/docs/led__blinker_8cpp.js b/docs/led__blinker_8cpp.js deleted file mode 100644 index a06f9738e..000000000 --- a/docs/led__blinker_8cpp.js +++ /dev/null @@ -1,4 +0,0 @@ -var led__blinker_8cpp = -[ - [ "LED_PIN", "led__blinker_8cpp.html#ab4553be4db9860d940f81d7447173b2f", null ] -]; \ No newline at end of file diff --git a/docs/led__blinker_8cpp__incl.map b/docs/led__blinker_8cpp__incl.map deleted file mode 100644 index 3b8675e1b..000000000 --- a/docs/led__blinker_8cpp__incl.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/led__blinker_8cpp__incl.md5 b/docs/led__blinker_8cpp__incl.md5 deleted file mode 100644 index cefcf582f..000000000 --- a/docs/led__blinker_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -9a4b7b73a09ab98b0abbd5bedbd0afd3 \ No newline at end of file diff --git a/docs/led__blinker_8cpp__incl.png b/docs/led__blinker_8cpp__incl.png deleted file mode 100644 index 87e61c885..000000000 Binary files a/docs/led__blinker_8cpp__incl.png and /dev/null differ diff --git a/docs/led__blinker_8cpp_source.html b/docs/led__blinker_8cpp_source.html deleted file mode 100644 index 3dee99ac8..000000000 --- a/docs/led__blinker_8cpp_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SensESP: src/system/led_blinker.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          led_blinker.cpp
          -
          -
          -Go to the documentation of this file.
          1 
          2 #include "led_blinker.h"
          3 
          4 #include "sensesp.h"
          5 
          6 #ifndef LED_PIN
          7 #define LED_PIN LED_BUILTIN // If your board doesn't have a defined LED_BUILTIN, comment this line out...
          8 //#define LED_PIN 2 // ... and uncomment this line, and change 13 to any LED pin you have. If you have none, leave it at 13.
          9 #endif
          10 
          12  pinMode(LED_PIN, OUTPUT);
          13  this->set_state(0);
          14 }
          15 
          16 void LedBlinker::remove_blinker() {
          17  if (this->blinker != nullptr) {
          18  this->blinker->remove();
          19  }
          20 }
          21 
          22 void LedBlinker::set_state(int new_state) {
          23  this->current_state = new_state;
          24  digitalWrite(LED_PIN, !new_state);
          25 }
          26 
          28  this->set_state(!this->current_state);
          29 }
          30 
          32  this->remove_blinker();
          33  this->blinker = app.onRepeat(1000, [this] () {
          34  this->set_state(1);
          35  app.onDelay(100, [this] () {
          36  this->set_state(0);
          37  });
          38  });
          39 }
          40 
          42  this->remove_blinker();
          43  this->blinker = app.onRepeat(1000, [this] () {
          44  this->flip();
          45  });
          46 }
          47 
          49  this->remove_blinker();
          50  this->blinker = app.onRepeat(200, [this] () {
          51  this->flip();
          52  });
          53 }
          - -
          void set_wifi_connected()
          Definition: led_blinker.cpp:41
          -
          #define LED_PIN
          Definition: led_blinker.cpp:7
          -
          void set_server_connected()
          Definition: led_blinker.cpp:48
          -
          void set_wifi_disconnected()
          Definition: led_blinker.cpp:31
          - -
          ReactESP app
          -
          void set_state(int new_state)
          Definition: led_blinker.cpp:22
          -
          void flip()
          Definition: led_blinker.cpp:27
          -
          -
          - - - - diff --git a/docs/led__blinker_8h.html b/docs/led__blinker_8h.html deleted file mode 100644 index 44a4957ee..000000000 --- a/docs/led__blinker_8h.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - -SensESP: src/system/led_blinker.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          led_blinker.h File Reference
          -
          -
          -
          #include <ReactESP.h>
          -
          -Include dependency graph for led_blinker.h:
          -
          -
          - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  LedBlinker
           
          -
          -
          - - - - diff --git a/docs/led__blinker_8h__dep__incl.map b/docs/led__blinker_8h__dep__incl.map deleted file mode 100644 index ec6ce67e8..000000000 --- a/docs/led__blinker_8h__dep__incl.map +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/docs/led__blinker_8h__dep__incl.md5 b/docs/led__blinker_8h__dep__incl.md5 deleted file mode 100644 index 4b9bdc4e7..000000000 --- a/docs/led__blinker_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -238f956855c0acebe8f086880c934d91 \ No newline at end of file diff --git a/docs/led__blinker_8h__dep__incl.png b/docs/led__blinker_8h__dep__incl.png deleted file mode 100644 index 2dd2a9ec5..000000000 Binary files a/docs/led__blinker_8h__dep__incl.png and /dev/null differ diff --git a/docs/led__blinker_8h__incl.md5 b/docs/led__blinker_8h__incl.md5 deleted file mode 100644 index 7c09a91e1..000000000 --- a/docs/led__blinker_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -dabcc928817c3cb5aa08eb65f33d2275 \ No newline at end of file diff --git a/docs/led__blinker_8h__incl.png b/docs/led__blinker_8h__incl.png deleted file mode 100644 index f5b377069..000000000 Binary files a/docs/led__blinker_8h__incl.png and /dev/null differ diff --git a/docs/led__blinker_8h_source.html b/docs/led__blinker_8h_source.html deleted file mode 100644 index 5d03c053e..000000000 --- a/docs/led__blinker_8h_source.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -SensESP: src/system/led_blinker.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          led_blinker.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _led_blinker_H_
          2 #define _led_blinker_H_
          3 
          4 #include <ReactESP.h>
          5 
          6 class LedBlinker {
          7  private:
          8  int current_state = 0;
          9  RepeatReaction* blinker = nullptr;
          10  void remove_blinker();
          11  protected:
          12  void set_state(int new_state);
          13  public:
          14  void set_wifi_connected();
          15  void set_wifi_disconnected();
          16  void set_server_connected();
          17  inline void set_server_disconnected() {
          19  }
          20  void flip();
          21  LedBlinker();
          22 };
          23 
          24 #endif
          -
          void set_server_disconnected()
          Definition: led_blinker.h:17
          -
          void set_wifi_connected()
          Definition: led_blinker.cpp:41
          -
          void set_server_connected()
          Definition: led_blinker.cpp:48
          -
          void set_wifi_disconnected()
          Definition: led_blinker.cpp:31
          -
          void set_state(int new_state)
          Definition: led_blinker.cpp:22
          -
          void flip()
          Definition: led_blinker.cpp:27
          - -
          -
          - - - - diff --git a/docs/linear_8cpp.html b/docs/linear_8cpp.html deleted file mode 100644 index 9beb27790..000000000 --- a/docs/linear_8cpp.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SensESP: src/transforms/linear.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          linear.cpp File Reference
          -
          -
          -
          #include "linear.h"
          -
          -Include dependency graph for linear.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          -
          -
          - - - - diff --git a/docs/linear_8cpp__incl.map b/docs/linear_8cpp__incl.map deleted file mode 100644 index 034e3d3d7..000000000 --- a/docs/linear_8cpp__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/linear_8cpp__incl.md5 b/docs/linear_8cpp__incl.md5 deleted file mode 100644 index 63d8ce328..000000000 --- a/docs/linear_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -6aece24b476464a9f38153487a2b41dd \ No newline at end of file diff --git a/docs/linear_8cpp__incl.png b/docs/linear_8cpp__incl.png deleted file mode 100644 index 5d3831679..000000000 Binary files a/docs/linear_8cpp__incl.png and /dev/null differ diff --git a/docs/linear_8cpp_source.html b/docs/linear_8cpp_source.html deleted file mode 100644 index 2a2c7ae2d..000000000 --- a/docs/linear_8cpp_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SensESP: src/transforms/linear.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          linear.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "linear.h"
          2 
          3 // Linear
          4 
          5 Linear::Linear(float k, float c, String config_path) :
          6  NumericTransform(config_path),
          7  k{ k },
          8  c{ c } {
          9  className = "Linear";
          10  load_configuration();
          11 }
          12 
          13 
          14 void Linear::set_input(float input, uint8_t inputChannel) {
          15  output = k * input + c;
          16  notify();
          17 }
          18 
          19 
          20 JsonObject& Linear::get_configuration(JsonBuffer& buf) {
          21  JsonObject& root = buf.createObject();
          22  root["k"] = k;
          23  root["c"] = c;
          24  root["value"] = output;
          25  return root;
          26 }
          27 
          28 static const char SCHEMA[] PROGMEM = R"({
          29  "type": "object",
          30  "properties": {
          31  "k": { "title": "Multiplier", "type": "number" },
          32  "c": { "title": "Constant offset", "type": "number" },
          33  "value": { "title": "Last value", "type" : "number", "readOnly": true }
          34  }
          35  })";
          36 
          38  return FPSTR(SCHEMA);
          39 }
          40 
          41 bool Linear::set_configuration(const JsonObject& config) {
          42  String expected[] = {"k", "c" };
          43  for (auto str : expected) {
          44  if (!config.containsKey(str)) {
          45  return false;
          46  }
          47  }
          48  k = config["k"];
          49  c = config["c"];
          50  return true;
          51 }
          void notify()
          Definition: observable.cpp:3
          -
          virtual bool set_configuration(const JsonObject &config) override
          Definition: linear.cpp:41
          - -
          virtual void set_input(float input, uint8_t inputChannel=0) override
          Definition: linear.cpp:14
          -
          Linear(float k, float c, String config_path="")
          Definition: linear.cpp:5
          - -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override
          Definition: linear.cpp:20
          -
          virtual String get_config_schema() override
          Definition: linear.cpp:37
          - -
          const char PAGE_index [] PROGMEM
          Definition: index.h:2
          -
          -
          - - - - diff --git a/docs/linear_8h.html b/docs/linear_8h.html deleted file mode 100644 index b496954fa..000000000 --- a/docs/linear_8h.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - -SensESP: src/transforms/linear.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          linear.h File Reference
          -
          -
          -
          #include "transform.h"
          -
          -Include dependency graph for linear.h:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  Linear
           
          -
          -
          - - - - diff --git a/docs/linear_8h__dep__incl.map b/docs/linear_8h__dep__incl.map deleted file mode 100644 index af9131e04..000000000 --- a/docs/linear_8h__dep__incl.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/linear_8h__dep__incl.md5 b/docs/linear_8h__dep__incl.md5 deleted file mode 100644 index 262d520e8..000000000 --- a/docs/linear_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -051be945d963712dcc656342f984d5c4 \ No newline at end of file diff --git a/docs/linear_8h__dep__incl.png b/docs/linear_8h__dep__incl.png deleted file mode 100644 index 8364958e8..000000000 Binary files a/docs/linear_8h__dep__incl.png and /dev/null differ diff --git a/docs/linear_8h__incl.map b/docs/linear_8h__incl.map deleted file mode 100644 index c4dd31c7d..000000000 --- a/docs/linear_8h__incl.map +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/linear_8h__incl.md5 b/docs/linear_8h__incl.md5 deleted file mode 100644 index 0d67519fb..000000000 --- a/docs/linear_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -066eb7020e0cfc0a0c3dbf3c15ef6d6d \ No newline at end of file diff --git a/docs/linear_8h__incl.png b/docs/linear_8h__incl.png deleted file mode 100644 index 899653f95..000000000 Binary files a/docs/linear_8h__incl.png and /dev/null differ diff --git a/docs/linear_8h_source.html b/docs/linear_8h_source.html deleted file mode 100644 index d4396d935..000000000 --- a/docs/linear_8h_source.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -SensESP: src/transforms/linear.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          linear.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _linear_H_
          2 #define _linear_H_
          3 
          4 #include "transform.h"
          5 
          6 // Perform a linear transform on the input value. The transform
          7 // is of the form \f$y = k * x + c\f$, where k is the input
          8 // coefficient and c is a bias value.
          9 class Linear : public NumericTransform {
          10  public:
          11  Linear(float k, float c, String config_path="");
          12  virtual void set_input(float input, uint8_t inputChannel = 0) override;
          13  virtual JsonObject& get_configuration(JsonBuffer& buf) override;
          14  virtual bool set_configuration(const JsonObject& config) override;
          15  virtual String get_config_schema() override;
          16 
          17  private:
          18  float k;
          19  float c;
          20 };
          21 
          22 #endif
          virtual bool set_configuration(const JsonObject &config) override
          Definition: linear.cpp:41
          -
          virtual void set_input(float input, uint8_t inputChannel=0) override
          Definition: linear.cpp:14
          -
          Definition: linear.h:9
          -
          Linear(float k, float c, String config_path="")
          Definition: linear.cpp:5
          - - -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override
          Definition: linear.cpp:20
          -
          const String config_path
          Definition: configurable.h:29
          -
          virtual String get_config_schema() override
          Definition: linear.cpp:37
          -
          -
          - - - - diff --git a/docs/median_8cpp.html b/docs/median_8cpp.html deleted file mode 100644 index 49ec86022..000000000 --- a/docs/median_8cpp.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SensESP: src/transforms/median.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          median.cpp File Reference
          -
          -
          -
          #include "median.h"
          -
          -Include dependency graph for median.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          -
          -
          - - - - diff --git a/docs/median_8cpp__incl.map b/docs/median_8cpp__incl.map deleted file mode 100644 index 2bc753dae..000000000 --- a/docs/median_8cpp__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/median_8cpp__incl.md5 b/docs/median_8cpp__incl.md5 deleted file mode 100644 index 763afe1d7..000000000 --- a/docs/median_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -805b5fdaea4ee1ff8fbc8e334a9cbbde \ No newline at end of file diff --git a/docs/median_8cpp__incl.png b/docs/median_8cpp__incl.png deleted file mode 100644 index 76cf79d03..000000000 Binary files a/docs/median_8cpp__incl.png and /dev/null differ diff --git a/docs/median_8cpp_source.html b/docs/median_8cpp_source.html deleted file mode 100644 index bba364798..000000000 --- a/docs/median_8cpp_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SensESP: src/transforms/median.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          median.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "median.h"
          2 
          3 
          4 Median::Median(unsigned int sampleSize, String config_path) :
          5  sampleSize{sampleSize},
          6  NumericTransform(config_path) {
          7  className = "Median";
          8  load_configuration();
          9  buf.reserve(sampleSize);
          10  buf.clear();
          11 }
          12 
          13 void Median::set_input(float input, uint8_t inputChannel) {
          14 
          15  buf.push_back(input);
          16  if (buf.size() >= sampleSize) {
          17  // Its time to output a value
          18  sort(buf.begin(), buf.end());
          19  int mid = sampleSize / 2;
          20  output = buf[mid];
          21  buf.clear();
          22  notify();
          23  }
          24 }
          25 
          26 
          27 JsonObject& Median::get_configuration(JsonBuffer& buf) {
          28  JsonObject& root = buf.createObject();
          29  root["sampleSize"] = sampleSize;
          30  return root;
          31 }
          32 
          33 static const char SCHEMA[] PROGMEM = R"({
          34  "type": "object",
          35  "properties": {
          36  "sampleSize": { "title": "Sample size", "description": "Number of samples to take before outputing a value", "type": "integer" }
          37  }
          38  })";
          39 
          41  return FPSTR(SCHEMA);
          42 }
          43 
          44 
          45 bool Median::set_configuration(const JsonObject& config) {
          46  String expected[] = {"sampleSize"};
          47  for (auto str : expected) {
          48  if (!config.containsKey(str)) {
          49  return false;
          50  }
          51  }
          52  unsigned int sampleSize_new = config["sampleSize"];
          53  if (sampleSize != sampleSize_new) {
          54  sampleSize = sampleSize_new;
          55  buf.reserve(sampleSize);
          56  buf.clear();
          57  }
          58  return true;
          59 }
          Median(unsigned int sampleSize=10, String config_path="")
          Definition: median.cpp:4
          -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override
          Definition: median.cpp:27
          -
          void notify()
          Definition: observable.cpp:3
          -
          SymmetricTransform< float > NumericTransform
          Definition: transform.h:114
          -
          virtual String get_config_schema() override
          Definition: median.cpp:40
          -
          virtual bool set_configuration(const JsonObject &config) override
          Definition: median.cpp:45
          - - -
          const char PAGE_index [] PROGMEM
          Definition: index.h:2
          -
          virtual void set_input(float input, uint8_t inputChannel=0) override
          Definition: median.cpp:13
          -
          -
          - - - - diff --git a/docs/median_8h.html b/docs/median_8h.html deleted file mode 100644 index 290eaffca..000000000 --- a/docs/median_8h.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - -SensESP: src/transforms/median.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          median.h File Reference
          -
          -
          -
          #include <vector>
          -#include "transforms/transform.h"
          -
          -Include dependency graph for median.h:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  Median
           
          -
          -
          - - - - diff --git a/docs/median_8h__dep__incl.md5 b/docs/median_8h__dep__incl.md5 deleted file mode 100644 index 9572d205b..000000000 --- a/docs/median_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -7ec4bcd1de4f0807f386416ade4e9414 \ No newline at end of file diff --git a/docs/median_8h__dep__incl.png b/docs/median_8h__dep__incl.png deleted file mode 100644 index 88ce1cc71..000000000 Binary files a/docs/median_8h__dep__incl.png and /dev/null differ diff --git a/docs/median_8h__incl.map b/docs/median_8h__incl.map deleted file mode 100644 index b03294a4e..000000000 --- a/docs/median_8h__incl.map +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/median_8h__incl.md5 b/docs/median_8h__incl.md5 deleted file mode 100644 index 739a12108..000000000 --- a/docs/median_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -33b1ce209d16806a79ef333e846d211f \ No newline at end of file diff --git a/docs/median_8h__incl.png b/docs/median_8h__incl.png deleted file mode 100644 index fa7330111..000000000 Binary files a/docs/median_8h__incl.png and /dev/null differ diff --git a/docs/median_8h_source.html b/docs/median_8h_source.html deleted file mode 100644 index e06cfa8f9..000000000 --- a/docs/median_8h_source.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -SensESP: src/transforms/median.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          median.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _median_H_
          2 #define _median_H_
          3 
          4 #include <vector>
          5 
          6 #include "transforms/transform.h"
          7 
          13 class Median : public NumericTransform {
          14 
          15  public:
          16  Median(unsigned int sampleSize = 10, String config_path="");
          17  virtual void set_input(float input, uint8_t inputChannel = 0) override;
          18  virtual JsonObject& get_configuration(JsonBuffer& buf) override;
          19  virtual bool set_configuration(const JsonObject& config) override;
          20  virtual String get_config_schema() override;
          21 
          22  private:
          23  std::vector<float> buf;
          24  unsigned int sampleSize;
          25 };
          26 
          27 #endif
          Median(unsigned int sampleSize=10, String config_path="")
          Definition: median.cpp:4
          -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override
          Definition: median.cpp:27
          -
          virtual String get_config_schema() override
          Definition: median.cpp:40
          - - -
          const String config_path
          Definition: configurable.h:29
          -
          virtual bool set_configuration(const JsonObject &config) override
          Definition: median.cpp:45
          -
          Definition: median.h:13
          -
          virtual void set_input(float input, uint8_t inputChannel=0) override
          Definition: median.cpp:13
          -
          -
          - - - - diff --git a/docs/menu.js b/docs/menu.js deleted file mode 100644 index 433c15b8f..000000000 --- a/docs/menu.js +++ /dev/null @@ -1,50 +0,0 @@ -/* - @licstart The following is the entire license notice for the - JavaScript code in this file. - - Copyright (C) 1997-2017 by Dimitri van Heesch - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - @licend The above is the entire license notice - for the JavaScript code in this file - */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { - function makeTree(data,relPath) { - var result=''; - if ('children' in data) { - result+=''; - } - return result; - } - - $('#main-nav').append(makeTree(menudata,relPath)); - $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); - if (searchEnabled) { - if (serverSide) { - $('#main-menu').append('
        • '); - } else { - $('#main-menu').append('
        • '); - } - } - $('#main-menu').smartmenus(); -} -/* @license-end */ diff --git a/docs/menudata.js b/docs/menudata.js deleted file mode 100644 index 5516087c7..000000000 --- a/docs/menudata.js +++ /dev/null @@ -1,127 +0,0 @@ -/* -@ @licstart The following is the entire license notice for the -JavaScript code in this file. - -Copyright (C) 1997-2017 by Dimitri van Heesch - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -@licend The above is the entire license notice -for the JavaScript code in this file -*/ -var menudata={children:[ -{text:"Main Page",url:"index.html"}, -{text:"Classes",url:"annotated.html",children:[ -{text:"Class List",url:"annotated.html"}, -{text:"Class Index",url:"classes.html"}, -{text:"Class Hierarchy",url:"inherits.html"}, -{text:"Class Members",url:"functions.html",children:[ -{text:"All",url:"functions.html",children:[ -{text:"a",url:"functions.html#index_a"}, -{text:"b",url:"functions_b.html#index_b"}, -{text:"c",url:"functions_c.html#index_c"}, -{text:"d",url:"functions_d.html#index_d"}, -{text:"e",url:"functions_e.html#index_e"}, -{text:"f",url:"functions_f.html#index_f"}, -{text:"g",url:"functions_g.html#index_g"}, -{text:"h",url:"functions_h.html#index_h"}, -{text:"i",url:"functions_i.html#index_i"}, -{text:"l",url:"functions_l.html#index_l"}, -{text:"m",url:"functions_m.html#index_m"}, -{text:"n",url:"functions_n.html#index_n"}, -{text:"o",url:"functions_o.html#index_o"}, -{text:"p",url:"functions_p.html#index_p"}, -{text:"r",url:"functions_r.html#index_r"}, -{text:"s",url:"functions_s.html#index_s"}, -{text:"t",url:"functions_t.html#index_t"}, -{text:"u",url:"functions_u.html#index_u"}, -{text:"v",url:"functions_v.html#index_v"}, -{text:"w",url:"functions_w.html#index_w"}, -{text:"~",url:"functions_~.html#index__7E"}]}, -{text:"Functions",url:"functions_func.html",children:[ -{text:"a",url:"functions_func.html#index_a"}, -{text:"c",url:"functions_func_c.html#index_c"}, -{text:"d",url:"functions_func_d.html#index_d"}, -{text:"e",url:"functions_func_e.html#index_e"}, -{text:"f",url:"functions_func_f.html#index_f"}, -{text:"g",url:"functions_func_g.html#index_g"}, -{text:"h",url:"functions_func_h.html#index_h"}, -{text:"i",url:"functions_func_i.html#index_i"}, -{text:"l",url:"functions_func_l.html#index_l"}, -{text:"m",url:"functions_func_m.html#index_m"}, -{text:"n",url:"functions_func_n.html#index_n"}, -{text:"o",url:"functions_func_o.html#index_o"}, -{text:"p",url:"functions_func_p.html#index_p"}, -{text:"r",url:"functions_func_r.html#index_r"}, -{text:"s",url:"functions_func_s.html#index_s"}, -{text:"t",url:"functions_func_t.html#index_t"}, -{text:"u",url:"functions_func_u.html#index_u"}, -{text:"v",url:"functions_func_v.html#index_v"}, -{text:"w",url:"functions_func_w.html#index_w"}, -{text:"~",url:"functions_func_~.html#index__7E"}]}, -{text:"Variables",url:"functions_vars.html",children:[ -{text:"a",url:"functions_vars.html#index_a"}, -{text:"b",url:"functions_vars.html#index_b"}, -{text:"c",url:"functions_vars.html#index_c"}, -{text:"d",url:"functions_vars.html#index_d"}, -{text:"e",url:"functions_vars.html#index_e"}, -{text:"g",url:"functions_vars.html#index_g"}, -{text:"h",url:"functions_vars.html#index_h"}, -{text:"i",url:"functions_vars.html#index_i"}, -{text:"l",url:"functions_vars.html#index_l"}, -{text:"m",url:"functions_vars.html#index_m"}, -{text:"n",url:"functions_vars.html#index_n"}, -{text:"o",url:"functions_vars.html#index_o"}, -{text:"p",url:"functions_vars.html#index_p"}, -{text:"r",url:"functions_vars.html#index_r"}, -{text:"s",url:"functions_vars.html#index_s"}, -{text:"t",url:"functions_vars.html#index_t"}, -{text:"u",url:"functions_vars.html#index_u"}, -{text:"v",url:"functions_vars.html#index_v"}]}, -{text:"Related Functions",url:"functions_rela.html"}]}]}, -{text:"Files",url:"files.html",children:[ -{text:"File List",url:"files.html"}, -{text:"File Members",url:"globals.html",children:[ -{text:"All",url:"globals.html",children:[ -{text:"a",url:"globals.html#index_a"}, -{text:"b",url:"globals.html#index_b"}, -{text:"c",url:"globals.html#index_c"}, -{text:"d",url:"globals.html#index_d"}, -{text:"e",url:"globals.html#index_e"}, -{text:"g",url:"globals.html#index_g"}, -{text:"h",url:"globals.html#index_h"}, -{text:"i",url:"globals.html#index_i"}, -{text:"l",url:"globals.html#index_l"}, -{text:"m",url:"globals.html#index_m"}, -{text:"n",url:"globals.html#index_n"}, -{text:"o",url:"globals.html#index_o"}, -{text:"p",url:"globals.html#index_p"}, -{text:"r",url:"globals.html#index_r"}, -{text:"s",url:"globals.html#index_s"}, -{text:"u",url:"globals.html#index_u"}, -{text:"v",url:"globals.html#index_v"}, -{text:"w",url:"globals.html#index_w"}]}, -{text:"Functions",url:"globals_func.html",children:[ -{text:"h",url:"globals_func.html#index_h"}, -{text:"o",url:"globals_func.html#index_o"}, -{text:"p",url:"globals_func.html#index_p"}, -{text:"r",url:"globals_func.html#index_r"}, -{text:"s",url:"globals_func.html#index_s"}, -{text:"w",url:"globals_func.html#index_w"}]}, -{text:"Variables",url:"globals_vars.html"}, -{text:"Typedefs",url:"globals_type.html"}, -{text:"Enumerations",url:"globals_enum.html"}, -{text:"Enumerator",url:"globals_eval.html"}, -{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/docs/moving__average_8cpp.html b/docs/moving__average_8cpp.html deleted file mode 100644 index 793e081bc..000000000 --- a/docs/moving__average_8cpp.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SensESP: src/transforms/moving_average.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          moving_average.cpp File Reference
          -
          -
          -
          #include "moving_average.h"
          -
          -Include dependency graph for moving_average.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          -
          -
          - - - - diff --git a/docs/moving__average_8cpp__incl.map b/docs/moving__average_8cpp__incl.map deleted file mode 100644 index 67fe1e92e..000000000 --- a/docs/moving__average_8cpp__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/moving__average_8cpp__incl.md5 b/docs/moving__average_8cpp__incl.md5 deleted file mode 100644 index 3fba7c6e8..000000000 --- a/docs/moving__average_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -edfa63f7af02175cc8ba93aabb5e419b \ No newline at end of file diff --git a/docs/moving__average_8cpp__incl.png b/docs/moving__average_8cpp__incl.png deleted file mode 100644 index 9621f83e9..000000000 Binary files a/docs/moving__average_8cpp__incl.png and /dev/null differ diff --git a/docs/moving__average_8cpp_source.html b/docs/moving__average_8cpp_source.html deleted file mode 100644 index 88d51c31d..000000000 --- a/docs/moving__average_8cpp_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SensESP: src/transforms/moving_average.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          moving_average.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "moving_average.h"
          2 
          3 // MovingAverage
          4 
          5 MovingAverage::MovingAverage(int n, float k, String config_path) :
          6  NumericTransform(config_path),
          7  n{ n },
          8  k{ k } {
          9  className = "MovingAverage";
          10  buf.resize(n, 0);
          11  initialized = false;
          12  load_configuration();
          13 }
          14 
          15 void MovingAverage::set_input(float input, uint8_t inputChannel) {
          16 
          17  // So the first value to be included in the average doesn't default to 0.0
          18  if (!initialized) {
          19  buf.assign(n, input);
          20  output = input;
          21  initialized = true;
          22  }
          23  else {
          24  // Subtract 1/nth of the oldest value and add 1/nth of the newest value
          25  output += -k*buf[ptr]/n;
          26  output += k * input/n;
          27 
          28  // Save the most recent input, then advance to the next storage location.
          29  // When storage location n is reached, start over again at 0.
          30  buf[ptr] = input;
          31  ptr = (ptr+1) % n;
          32  }
          33  notify();
          34 }
          35 
          36 
          37 JsonObject& MovingAverage::get_configuration(JsonBuffer& buf) {
          38  JsonObject& root = buf.createObject();
          39  root["k"] = k;
          40  root["n"] = n;
          41  root["value"] = output;
          42  return root;
          43 }
          44 
          45 static const char SCHEMA[] PROGMEM = R"({
          46  "type": "object",
          47  "properties": {
          48  "n": { "title": "Number of samples in average", "type": "integer" },
          49  "k": { "title": "Multiplier", "type": "number" }
          50  }
          51  })";
          52 
          54  return FPSTR(SCHEMA);
          55 }
          56 
          57 
          58 bool MovingAverage::set_configuration(const JsonObject& config) {
          59  String expected[] = {"k", "n"};
          60  for (auto str : expected) {
          61  if (!config.containsKey(str)) {
          62  return false;
          63  }
          64  }
          65  k = config["k"];
          66  int n_new = config["n"];
          67  // need to reset the ring buffer if size changes
          68  if (n != n_new) {
          69  buf.assign(n, 0);
          70  ptr = 0;
          71  initialized = false;
          72  n = n_new;
          73  }
          74  return true;
          75 }
          -
          void notify()
          Definition: observable.cpp:3
          -
          MovingAverage(int n, float k=1., String config_path="")
          -
          virtual void set_input(float input, uint8_t inputChannel=0) override
          -
          virtual bool set_configuration(const JsonObject &config) override
          -
          virtual String get_config_schema() override
          - -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override
          - -
          const char PAGE_index [] PROGMEM
          Definition: index.h:2
          -
          -
          - - - - diff --git a/docs/moving__average_8h.html b/docs/moving__average_8h.html deleted file mode 100644 index d44380b31..000000000 --- a/docs/moving__average_8h.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - -SensESP: src/transforms/moving_average.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          moving_average.h File Reference
          -
          -
          -
          #include <vector>
          -#include "transform.h"
          -
          -Include dependency graph for moving_average.h:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  MovingAverage
           
          -
          -
          - - - - diff --git a/docs/moving__average_8h__dep__incl.md5 b/docs/moving__average_8h__dep__incl.md5 deleted file mode 100644 index 744be57a0..000000000 --- a/docs/moving__average_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -510e07770ab3079725c33d11f1ebc04b \ No newline at end of file diff --git a/docs/moving__average_8h__dep__incl.png b/docs/moving__average_8h__dep__incl.png deleted file mode 100644 index a793864e3..000000000 Binary files a/docs/moving__average_8h__dep__incl.png and /dev/null differ diff --git a/docs/moving__average_8h__incl.map b/docs/moving__average_8h__incl.map deleted file mode 100644 index fadff94f9..000000000 --- a/docs/moving__average_8h__incl.map +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/moving__average_8h__incl.md5 b/docs/moving__average_8h__incl.md5 deleted file mode 100644 index 956b140d8..000000000 --- a/docs/moving__average_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -c2c2789badd709c9e0ed03d3af0b2974 \ No newline at end of file diff --git a/docs/moving__average_8h__incl.png b/docs/moving__average_8h__incl.png deleted file mode 100644 index 00eedeb1e..000000000 Binary files a/docs/moving__average_8h__incl.png and /dev/null differ diff --git a/docs/moving__average_8h_source.html b/docs/moving__average_8h_source.html deleted file mode 100644 index 2a6fef74f..000000000 --- a/docs/moving__average_8h_source.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -SensESP: src/transforms/moving_average.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          moving_average.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _moving_average_H_
          2 #define _moving_average_H_
          3 
          4 #include <vector>
          5 
          6 #include "transform.h"
          7 
          17 // y = k * 1/n * \sum_k=1^n(x_k)
          19 
          20  public:
          29  MovingAverage(int n, float k=1., String config_path="");
          30  virtual void set_input(float input, uint8_t inputChannel = 0) override;
          31  virtual JsonObject& get_configuration(JsonBuffer& buf) override;
          32  virtual bool set_configuration(const JsonObject& config) override;
          33  virtual String get_config_schema() override;
          34 
          35  private:
          36  std::vector<float> buf;
          37  int ptr = 0;
          38  int n;
          39  float k;
          40  bool initialized;
          41 };
          42 
          43 #endif
          -
          MovingAverage(int n, float k=1., String config_path="")
          -
          virtual void set_input(float input, uint8_t inputChannel=0) override
          -
          virtual bool set_configuration(const JsonObject &config) override
          - -
          virtual String get_config_schema() override
          - -
          const String config_path
          Definition: configurable.h:29
          -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override
          -
          -
          - - - - diff --git a/docs/navtreedata.js b/docs/navtreedata.js deleted file mode 100644 index 9b17cdc06..000000000 --- a/docs/navtreedata.js +++ /dev/null @@ -1,61 +0,0 @@ -/* -@ @licstart The following is the entire license notice for the -JavaScript code in this file. - -Copyright (C) 1997-2017 by Dimitri van Heesch - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -@licend The above is the entire license notice -for the JavaScript code in this file -*/ -var NAVTREE = -[ - [ "SensESP", "index.html", [ - [ "Classes", "annotated.html", [ - [ "Class List", "annotated.html", "annotated_dup" ], - [ "Class Index", "classes.html", null ], - [ "Class Hierarchy", "hierarchy.html", "hierarchy" ], - [ "Class Members", "functions.html", [ - [ "All", "functions.html", "functions_dup" ], - [ "Functions", "functions_func.html", "functions_func" ], - [ "Variables", "functions_vars.html", null ], - [ "Related Functions", "functions_rela.html", null ] - ] ] - ] ], - [ "Files", "files.html", [ - [ "File List", "files.html", "files_dup" ], - [ "File Members", "globals.html", [ - [ "All", "globals.html", null ], - [ "Functions", "globals_func.html", null ], - [ "Variables", "globals_vars.html", null ], - [ "Typedefs", "globals_type.html", null ], - [ "Enumerations", "globals_enum.html", null ], - [ "Enumerator", "globals_eval.html", null ], - [ "Macros", "globals_defs.html", null ] - ] ] - ] ] - ] ] -]; - -var NAVTREEINDEX = -[ -"analog__input_8cpp.html", -"class_sens_e_s_p_app.html#ac53d90429563f50e4aca5224a1e85afd", -"onewire__temperature_8h_source.html" -]; - -var SYNCONMSG = 'click to disable panel synchronisation'; -var SYNCOFFMSG = 'click to enable panel synchronisation'; \ No newline at end of file diff --git a/docs/navtreeindex0.js b/docs/navtreeindex0.js deleted file mode 100644 index bb0146c57..000000000 --- a/docs/navtreeindex0.js +++ /dev/null @@ -1,253 +0,0 @@ -var NAVTREEINDEX0 = -{ -"analog__input_8cpp.html":[1,0,0,1,0], -"analog__input_8cpp_source.html":[1,0,0,1,0], -"analog__input_8h.html":[1,0,0,1,1], -"analog__input_8h_source.html":[1,0,0,1,1], -"analogvoltage_8h.html":[1,0,0,4,0], -"analogvoltage_8h_source.html":[1,0,0,4,0], -"angle__correction_8cpp.html":[1,0,0,4,1], -"angle__correction_8cpp_source.html":[1,0,0,4,1], -"angle__correction_8h.html":[1,0,0,4,2], -"angle__correction_8h_source.html":[1,0,0,4,2], -"annotated.html":[0,0], -"change__filter_8cpp.html":[1,0,0,4,3], -"change__filter_8cpp_source.html":[1,0,0,4,3], -"change__filter_8h.html":[1,0,0,4,4], -"change__filter_8h_source.html":[1,0,0,4,4], -"class_analog_input.html":[0,0,0], -"class_analog_input.html#a34942eae263f68e8f44fa3f405d057fb":[0,0,0,1], -"class_analog_input.html#af40968136e406531f8838434f1c1356b":[0,0,0,0], -"class_analog_voltage.html":[0,0,1], -"class_analog_voltage.html#a22cee4790f99a391a883370cac00894a":[0,0,1,0], -"class_angle_correction.html":[0,0,2], -"class_angle_correction.html#a454172cb376cbeb9f3b7467392bf582e":[0,0,2,2], -"class_angle_correction.html#a53b1594b6161feff6f218a2aa7a05ad3":[0,0,2,3], -"class_angle_correction.html#a6a023df6e49e8ada977738dc8cbe150c":[0,0,2,0], -"class_angle_correction.html#ad31bbb6a8fd400879eceba5f0b2880fe":[0,0,2,1], -"class_angle_correction.html#afd9a559ce1218e9b78137ff1a9c6d77d":[0,0,2,4], -"class_change_filter.html":[0,0,3], -"class_change_filter.html#a0bbe692080d7ee9a41fcd77a3f581ca9":[0,0,3,3], -"class_change_filter.html#a48314db9ee86e057f0c771573b302331":[0,0,3,6], -"class_change_filter.html#a592657a8a1c12a9c16dc334aa804865c":[0,0,3,4], -"class_change_filter.html#a6ca0d72e2d4f5afc36ec6c38513cb9c3":[0,0,3,0], -"class_change_filter.html#a6cd0d60d57663d94c1972bf939b40d76":[0,0,3,2], -"class_change_filter.html#a769403176db0e4a619811bbba603d597":[0,0,3,1], -"class_change_filter.html#aa92a8149f304a8627cc8c990dc929c35":[0,0,3,5], -"class_change_filter.html#accc1a8a8df0fd7051708b183b8570b5a":[0,0,3,7], -"class_change_filter.html#ae51076f79fdfc36e34b8383a0e13e700":[0,0,3,8], -"class_configurable.html":[0,0,4], -"class_configurable.html#a657419f13060caa20c45a41935b9d53a":[0,0,4,4], -"class_configurable.html#a6e0281fe25cfbdf024bdb05147ffb52b":[0,0,4,5], -"class_configurable.html#a73131c4e7dd8134f23a93de861e1c0e4":[0,0,4,1], -"class_configurable.html#a787559a1a907f909d6088d2ec6825b44":[0,0,4,2], -"class_configurable.html#a8972a439fb9b734ff68d27c699640f78":[0,0,4,0], -"class_configurable.html#aaa54fa6156d9c7f5848d670bd9b18aa9":[0,0,4,6], -"class_configurable.html#ac2ba4044c81acc2fc6bf95cce411f6a4":[0,0,4,3], -"class_curve_interpolator.html":[0,0,5], -"class_curve_interpolator.html#a09bdf144307f1264c36d5afaea5c96a3":[0,0,5,1], -"class_curve_interpolator.html#a274cd3426b3e379db1538c71bebad9c8":[0,0,5,5], -"class_curve_interpolator.html#a314df8dc54dc73798197c9c9ce6859ac":[0,0,5,2], -"class_curve_interpolator.html#a6e4fcb3bb046ecacbe1855d74cdc47bb":[0,0,5,7], -"class_curve_interpolator.html#a6f9c593782d05c95ba92810b8f70f287":[0,0,5,4], -"class_curve_interpolator.html#acfda195c475a261d2e2a3af365fd6c19":[0,0,5,6], -"class_curve_interpolator.html#afb1dbb8e85015e2909dff8495875f8f5":[0,0,5,3], -"class_curve_interpolator_1_1_sample.html":[0,0,5,0], -"class_curve_interpolator_1_1_sample.html#a1cf03a106b3a98056fdb448df6fb9c17":[0,0,5,0,3], -"class_curve_interpolator_1_1_sample.html#a43dd7cc1fd950a03a6674056194e935b":[0,0,5,0,4], -"class_curve_interpolator_1_1_sample.html#a5f69567a227e29b795b68e4310a9da40":[0,0,5,0,2], -"class_curve_interpolator_1_1_sample.html#a7ad23733bf31c9a8ccbe9689b55f6d67":[0,0,5,0,0], -"class_curve_interpolator_1_1_sample.html#aa2ed35560a823ced306ef02a50d95cac":[0,0,5,0,1], -"class_curve_interpolator_1_1_sample.html#ada14a8de02c7cc737db52aa3a54a330b":[0,0,5,0,5], -"class_dallas_temperature_sensors.html":[0,0,6], -"class_dallas_temperature_sensors.html#a020ae149bf4372f926d4414ac5c67f5a":[0,0,6,3], -"class_dallas_temperature_sensors.html#a1e1b9cd3dd2bde0d51ef657a490881eb":[0,0,6,2], -"class_dallas_temperature_sensors.html#a778aa28e0e329028f2811c5ed71cb11d":[0,0,6,0], -"class_dallas_temperature_sensors.html#abd79995496fd66d416e6d9cd1ff56342":[0,0,6,4], -"class_dallas_temperature_sensors.html#ae30b8206143d488a4d887b4294da6bb2":[0,0,6,1], -"class_debounce.html":[0,0,7], -"class_debounce.html#a1cf5653ecaffe84d03202cd9f002bba4":[0,0,7,0], -"class_debounce.html#a3e1dca3d133fdef71d95b58a922c478a":[0,0,7,3], -"class_debounce.html#a41ba3a24ea3490fc0717fa4d5f7fae0b":[0,0,7,1], -"class_debounce.html#a52075b35c5a7036ea7a06813a71117ea":[0,0,7,2], -"class_difference.html":[0,0,8], -"class_difference.html#a432ef87751c6bee8e5dadc610dfcb4ff":[0,0,8,4], -"class_difference.html#a57e134a00cd6688d147f93c662520040":[0,0,8,3], -"class_difference.html#a70f6832fd0b14c5eb5c2c05188757b72":[0,0,8,2], -"class_difference.html#ab37fbe4fe6592f7591a124c1b90f8f48":[0,0,8,0], -"class_difference.html#ac5b6559e3820f2f58bed5d120a440a55":[0,0,8,1], -"class_digital_input.html":[0,0,9], -"class_digital_input.html#a92b46ff35c6b0fcf13644727c0a6b61f":[0,0,9,2], -"class_digital_input.html#aa4e30fc0836ce2d0934b9eb5d507f116":[0,0,9,1], -"class_digital_input.html#ac87da1c4d7b53427d71d71b34d25c6eb":[0,0,9,0], -"class_digital_input_counter.html":[0,0,10], -"class_digital_input_counter.html#a9848278592225d90ff71b99ce940771e":[0,0,10,1], -"class_digital_input_counter.html#adde82c1aeae1f8f452b3bbb31a3114a5":[0,0,10,0], -"class_digital_input_value.html":[0,0,11], -"class_digital_input_value.html#a04759be73328ea38d11eb7ec63517761":[0,0,11,0], -"class_digital_input_value.html#a504c6c9ad6578156df7eb524f9635912":[0,0,11,1], -"class_enable.html":[0,0,12], -"class_enable.html#a38bebd90f45effcd9fa2781cc43f0d34":[0,0,12,3], -"class_enable.html#a5c8fbdba606732e028a6bf194a3e2529":[0,0,12,4], -"class_enable.html#a5e6385aea4a61b890368ce0b411f690c":[0,0,12,6], -"class_enable.html#a62d0a37863086502e168bfa8ab94ebc0":[0,0,12,0], -"class_enable.html#a62ea021bf8d986150be346977a8eede3":[0,0,12,1], -"class_enable.html#a88a9d200883d86ac64d5b1cd03c07d29":[0,0,12,7], -"class_enable.html#ab4ca14d496a85788896df6c78143994c":[0,0,12,5], -"class_enable.html#af924d33e6ccb0a065af78f264997299f":[0,0,12,2], -"class_free_mem.html":[0,0,14], -"class_free_mem.html#a114359cfbb1cffce40e545bf00889757":[0,0,14,2], -"class_free_mem.html#aa3487ef2dff96a33778881da391b2129":[0,0,14,1], -"class_free_mem.html#aa8b5f3ef10c4148f75d6dc531a3d46c3":[0,0,14,0], -"class_frequency.html":[0,0,15], -"class_frequency.html#a0d6846952b3295809421ac18633e397e":[0,0,15,1], -"class_frequency.html#a87d16c67ce064b9b0f671747808c3963":[0,0,15,4], -"class_frequency.html#a93e3f28917f7faa7411b95745171f6af":[0,0,15,2], -"class_frequency.html#a99df388f446a8aa46f465fe464023f55":[0,0,15,5], -"class_frequency.html#abbaff61b74433bb8a990685be24c3c8b":[0,0,15,0], -"class_frequency.html#ae121e43d37643d390bc607def68e0e02":[0,0,15,3], -"class_g_p_g_g_a_sentence_parser.html":[0,0,16], -"class_g_p_g_g_a_sentence_parser.html#a1a3a77042194bd6ef59b7960c0f35fd1":[0,0,16,0], -"class_g_p_g_g_a_sentence_parser.html#a6bce986c2fb84af7c54477cd7d43f1b1":[0,0,16,1], -"class_g_p_g_g_a_sentence_parser.html#ac70d60b587cd0e48479c397bb30983a3":[0,0,16,2], -"class_g_p_g_l_l_sentence_parser.html":[0,0,17], -"class_g_p_g_l_l_sentence_parser.html#ab1583e721b24183fcc59f2b2826b8c52":[0,0,17,1], -"class_g_p_g_l_l_sentence_parser.html#acbee347184ae22343a9af2515ae57c98":[0,0,17,2], -"class_g_p_g_l_l_sentence_parser.html#af4335548b0e919cb23ec9149bc2e8012":[0,0,17,0], -"class_g_p_r_m_c_sentence_parser.html":[0,0,18], -"class_g_p_r_m_c_sentence_parser.html#a67589bcbddabbe32aac949c3ca9f4a75":[0,0,18,1], -"class_g_p_r_m_c_sentence_parser.html#a75afdae2ce4e8a27676d86ef2f5cbf9f":[0,0,18,2], -"class_g_p_r_m_c_sentence_parser.html#a8ea0212728334cc4b6fa4aa650fa2e58":[0,0,18,0], -"class_g_p_s_input.html":[0,0,19], -"class_g_p_s_input.html#ac434000c2641c7ef06badb2d51f79520":[0,0,19,0], -"class_g_p_s_input.html#ae31d915c7701418b950dcbba4f87f72a":[0,0,19,2], -"class_g_p_s_input.html#af94497b920d346ed5ccad18bd4dbfd9c":[0,0,19,1], -"class_h_t_t_p_server.html":[0,0,20], -"class_h_t_t_p_server.html#a3b7406f8ac0cb9b90e86513acee23542":[0,0,20,3], -"class_h_t_t_p_server.html#a6f5600d8187ec82cb83e84252a387c38":[0,0,20,2], -"class_h_t_t_p_server.html#a8b03465f1ad5631d0e20cc67e5419562":[0,0,20,5], -"class_h_t_t_p_server.html#aafce79dc976b69b318f8fe69f45542be":[0,0,20,7], -"class_h_t_t_p_server.html#ab088a2530794acb9db8a8e1910729c35":[0,0,20,4], -"class_h_t_t_p_server.html#ac854fa80c31eba36ad3f2dd5f02d4a14":[0,0,20,6], -"class_h_t_t_p_server.html#adacba9a090d5b0465da86dd6c82953a9":[0,0,20,0], -"class_h_t_t_p_server.html#af09066b05417f9a9ce9f1cd8e5ad9e18":[0,0,20,1], -"class_i_p_addr_dev.html":[0,0,23], -"class_i_p_addr_dev.html#aad770ae7db264bfc4bc33d3d1dca71fb":[0,0,23,2], -"class_i_p_addr_dev.html#ae5d89601ff69fb635850bbaacdd61664":[0,0,23,0], -"class_i_p_addr_dev.html#afd8dec59375d39cf785819f8ea3685a1":[0,0,23,1], -"class_integer_sensor.html":[0,0,21], -"class_integer_sensor.html#a2214ecc518fbbb314be8ca987aa0e730":[0,0,21,0], -"class_integrator.html":[0,0,22], -"class_integrator.html#a1b4cfd7f598d8456a582865a88d768e7":[0,0,22,3], -"class_integrator.html#a513afaf30460fee68abd295780527d05":[0,0,22,2], -"class_integrator.html#a787de1dd45b1ced5607e6209f0e01dd0":[0,0,22,0], -"class_integrator.html#a7fb38d2d19aa3e918dbee34b9096f7a6":[0,0,22,5], -"class_integrator.html#aa53205d3211635dad0a035adf5d511a6":[0,0,22,4], -"class_integrator.html#ad52503a30ef9abf171209988d256ec22":[0,0,22,1], -"class_led_blinker.html":[0,0,24], -"class_led_blinker.html#a0cdd9d7e8cc453edd234ce2785ce28ea":[0,0,24,2], -"class_led_blinker.html#a394a529a52a7ee1e0321498de017f788":[0,0,24,5], -"class_led_blinker.html#a7e774b60394cf16d0be68cfd38197199":[0,0,24,0], -"class_led_blinker.html#a9c0b4f9aaacc14ab555df6abb43e8ae5":[0,0,24,6], -"class_led_blinker.html#aa9870e4cb1a35a175edcd710142b8595":[0,0,24,4], -"class_led_blinker.html#ab0f765b76f30406a7b53d4360c897d64":[0,0,24,3], -"class_led_blinker.html#af00270a463b74c855dfc95d98c7bfd7e":[0,0,24,1], -"class_linear.html":[0,0,25], -"class_linear.html#a057c8519f6eb7dd28392073010a2cfc3":[0,0,25,4], -"class_linear.html#a98f7cf12073c2aa89bbb7f89b13f6299":[0,0,25,2], -"class_linear.html#ab12c626261e763892d4253f48478771a":[0,0,25,3], -"class_linear.html#ad9477f54820b5a234339d342836e9869":[0,0,25,0], -"class_linear.html#afc896eaed1df40409ea3ce17d81929cc":[0,0,25,1], -"class_median.html":[0,0,26], -"class_median.html#a012bc8d16c361b38ab01f56898ead20b":[0,0,26,4], -"class_median.html#a2ce826a6b0cc7e467345671b843d7af2":[0,0,26,2], -"class_median.html#a986e318f167a85623757c0e247f892fd":[0,0,26,0], -"class_median.html#aa8515edf3b34ee8439bd77dcfc69a93f":[0,0,26,1], -"class_median.html#ac06073c22b922aceee9f01ddaccfb54a":[0,0,26,3], -"class_moving_average.html":[0,0,27], -"class_moving_average.html#a1cac9948f8ca32b8d4446e419b09cccb":[0,0,27,2], -"class_moving_average.html#a22a08de98351ed805b49beecb234ab0b":[0,0,27,4], -"class_moving_average.html#a9f02a3c253c6456e4d5c063ea5f6d364":[0,0,27,3], -"class_moving_average.html#ad6f06b147a017e528e3d8b991cec2763":[0,0,27,1], -"class_moving_average.html#adda127d69bc5441a3f4ca98d51c87f4b":[0,0,27,0], -"class_n_m_e_a_parser.html":[0,0,30], -"class_n_m_e_a_parser.html#a438b3fd8f8587b55a3785656651f73a6":[0,0,30,1], -"class_n_m_e_a_parser.html#a8687b75207c6df0c049721fe5a586913":[0,0,30,2], -"class_n_m_e_a_parser.html#acf7b68ddc8fc466324abede2dd592ad0":[0,0,30,0], -"class_networking.html":[0,0,28], -"class_networking.html#a082fa99914f8f6f277b640667877c85e":[0,0,28,10], -"class_networking.html#a207f306c10b8f65ca0904cc26a9ef15c":[0,0,28,5], -"class_networking.html#a253025ed2a3c36eb998e7b900155359e":[0,0,28,2], -"class_networking.html#a2b8f2f52b332dc0af375113a64881a8a":[0,0,28,3], -"class_networking.html#a4b8c4d193f59be9aea6b09fd36b4f956":[0,0,28,0], -"class_networking.html#a500aa01c7d7da3d823a43c40212353f5":[0,0,28,7], -"class_networking.html#a59d475a2f12b88ef8334274a9a0b1cee":[0,0,28,6], -"class_networking.html#a7a3cac2e878aa2c513451f235c70aff7":[0,0,28,4], -"class_networking.html#a91507b52fbc31dd34d143c8a5634027e":[0,0,28,9], -"class_networking.html#a94815dd34af734e9fc3839cbe6279355":[0,0,28,8], -"class_networking.html#ae4b12924970227730df3377144301a7c":[0,0,28,1], -"class_numeric_sensor.html":[0,0,31], -"class_numeric_sensor.html#a456c5509bf2af2007bd9ee1703e8315f":[0,0,31,0], -"class_observable.html":[0,0,32], -"class_observable.html#a099bf851e05bb8c1a25e83f2a1389e58":[0,0,32,1], -"class_observable.html#af72ed9c9cf7157a33caad4b930232e69":[0,0,32,0], -"class_observable_value.html":[0,0,33], -"class_observable_value.html#a51cf25d4951d3214021da0c25985838d":[0,0,33,3], -"class_observable_value.html#a900b99ef37a8d31e84c48a97b8eff10d":[0,0,33,2], -"class_observable_value.html#a92bc2f2646592dc209717bb546d86a2c":[0,0,33,0], -"class_observable_value.html#adaf97ca440787ba883915603056f002b":[0,0,33,1], -"class_one_wire_temperature.html":[0,0,34], -"class_one_wire_temperature.html#a4331b2b91d6c7d000454e741cdce9d0a":[0,0,34,2], -"class_one_wire_temperature.html#a4a1058669383f507ed70bd46f9f0d2f0":[0,0,34,3], -"class_one_wire_temperature.html#a6ceb584282ee0949f76a35ca5ae40a51":[0,0,34,0], -"class_one_wire_temperature.html#a83bce20a52e396dbd97a43a6e72b2824":[0,0,34,4], -"class_one_wire_temperature.html#a86817f083dfb5e9373b48d8fd1f8d165":[0,0,34,1], -"class_p_s_t_i030_sentence_parser.html":[0,0,36], -"class_p_s_t_i030_sentence_parser.html#aa368abaa7d559a9a0893d3846a01fdb7":[0,0,36,0], -"class_p_s_t_i030_sentence_parser.html#adf5b386bffd76b1055d70aa59615d493":[0,0,36,2], -"class_p_s_t_i030_sentence_parser.html#aee500dadf0a5ff089d8281c642cdb9bc":[0,0,36,1], -"class_p_s_t_i032_sentence_parser.html":[0,0,37], -"class_p_s_t_i032_sentence_parser.html#ac25a7c9f31987ce7a01ce499f045a6a9":[0,0,37,1], -"class_p_s_t_i032_sentence_parser.html#acbe297f07ea6729d870ec8222535b1ce":[0,0,37,2], -"class_p_s_t_i032_sentence_parser.html#af44c303ec78c3a24a18eacb265cee013":[0,0,37,0], -"class_p_s_t_i_sentence_parser.html":[0,0,38], -"class_p_s_t_i_sentence_parser.html#a308af730f992717a0d1e84416396ae38":[0,0,38,1], -"class_p_s_t_i_sentence_parser.html#a4bb2246e947c443d5bca3706e2853cd0":[0,0,38,0], -"class_p_s_t_i_sentence_parser.html#a94f6b75ee9ad9965c4a5cf27e44a12e5":[0,0,38,2], -"class_p_s_t_i_sentence_parser.html#add6764d7c0579101840b82a86f6bd2ef":[0,0,38,3], -"class_s_k_delta.html":[0,0,42], -"class_s_k_delta.html#a3d4825fc72903feaebe635dc643d2b16":[0,0,42,0], -"class_s_k_delta.html#a74ab20a661a4f80a336b50fccc4bd9bc":[0,0,42,2], -"class_s_k_delta.html#ab1592b494b343964703102a4797d3bbc":[0,0,42,3], -"class_s_k_delta.html#acd3c98ae0fe75f92d5d9c1e6a216a8dd":[0,0,42,4], -"class_s_k_delta.html#afacfa3952be6179d0e96960575f393a8":[0,0,42,1], -"class_s_k_emitter.html":[0,0,43], -"class_s_k_emitter.html#a06dbe70e930074437b12b86ac4e2464c":[0,0,43,4], -"class_s_k_emitter.html#a670348fb1ef1bf3d5e1ba49660fc15d9":[0,0,43,3], -"class_s_k_emitter.html#aa08f537c7d7b1782fea4d381a65cf521":[0,0,43,1], -"class_s_k_emitter.html#ab619d4a66c7683bf06350809e8c2153f":[0,0,43,2], -"class_s_k_emitter.html#aeba0ccd27a8b6bad1e2ddbf2603a5d8d":[0,0,43,0], -"class_s_k_output.html":[0,0,44], -"class_s_k_output.html#a07b3524ca9ffa1dff03f4bf522d9e3d2":[0,0,44,4], -"class_s_k_output.html#a0f29018517bcb51943dae1dd7bbace0a":[0,0,44,5], -"class_s_k_output.html#a1020f0eb3e0eb6bc10f57034c7fbc0c6":[0,0,44,6], -"class_s_k_output.html#a406e7e56220dd41bd567c56c0e6b9a4d":[0,0,44,7], -"class_s_k_output.html#a43d76eef72e8dad90ee13a001c265be8":[0,0,44,8], -"class_s_k_output.html#a811a99c30626b6840000b0c152aa1f37":[0,0,44,1], -"class_s_k_output.html#a88f9638dd4779818b41a62738ba44876":[0,0,44,0], -"class_s_k_output.html#afb74fff00aed31212a5150035ddacd4e":[0,0,44,2], -"class_s_k_output.html#afb74fff00aed31212a5150035ddacd4e":[0,0,44,3], -"class_s_k_output_time.html":[0,0,45], -"class_s_k_output_time.html#a03982e7159ac7e6d44b8f7c6976617c4":[0,0,45,3], -"class_s_k_output_time.html#a09b9f813788470bd06891f34ba58d84b":[0,0,45,1], -"class_s_k_output_time.html#a41ad61c700a444916873e908612eca63":[0,0,45,4], -"class_s_k_output_time.html#aa283f508ef59103626c835cd37b9bfb3":[0,0,45,2], -"class_s_k_output_time.html#ab77e9bdfeb69fd37c6fc87ac247146e4":[0,0,45,0], -"class_sens_e_s_p_app.html":[0,0,39], -"class_sens_e_s_p_app.html#a092f600dda1a51189bc2c9fd5de360e8":[0,0,39,0], -"class_sens_e_s_p_app.html#a0f7605a2c63a3ed250e1c742608956b2":[0,0,39,7], -"class_sens_e_s_p_app.html#a15f6e0569533b417e9724540d758c884":[0,0,39,6], -"class_sens_e_s_p_app.html#a3d70c22bfd1bf842f6daa83ab2f50f79":[0,0,39,3], -"class_sens_e_s_p_app.html#aa6e3bc4bb1c696cc0bef02835ce0f7bf":[0,0,39,2], -"class_sens_e_s_p_app.html#ac068882b9e9f6092da0818c5e42b48b8":[0,0,39,4] -}; diff --git a/docs/navtreeindex1.js b/docs/navtreeindex1.js deleted file mode 100644 index 4716c38ba..000000000 --- a/docs/navtreeindex1.js +++ /dev/null @@ -1,253 +0,0 @@ -var NAVTREEINDEX1 = -{ -"class_sens_e_s_p_app.html#ac53d90429563f50e4aca5224a1e85afd":[0,0,39,1], -"class_sens_e_s_p_app.html#adee3f53bc75ae6d5d73a8707dd75600e":[0,0,39,5], -"class_sensor.html":[0,0,40], -"class_sensor.html#a921d5f94f7f77fa42b5950a807a8e79c":[0,0,40,0], -"class_sentence_parser.html":[0,0,41], -"class_sentence_parser.html#a20be85c734aab87cf783aaa6a999a29a":[0,0,41,0], -"class_sentence_parser.html#a74ed90a9386887e9ff2c13dbb12a556e":[0,0,41,2], -"class_sentence_parser.html#a77a87f5f20ac471591d2110856e8232b":[0,0,41,4], -"class_sentence_parser.html#aa079d8ee1b96e2f03a9c7a1f2ddf7519":[0,0,41,3], -"class_sentence_parser.html#ad92490af20d92f942b2e52abfc26007f":[0,0,41,1], -"class_string_sensor.html":[0,0,46], -"class_string_sensor.html#a8ed16d934bf90314e4f00dba25b1d202":[0,0,46,0], -"class_symmetric_transform.html":[0,0,47], -"class_symmetric_transform.html#a77383aeb8a2dc0e27a2fbc24b451bc90":[0,0,47,0], -"class_system_hz.html":[0,0,48], -"class_system_hz.html#a2f2337dcbe45cce879392f28579e233d":[0,0,48,1], -"class_system_hz.html#a72aa9d59ca93c864b3c4bba55fdd4ec6":[0,0,48,0], -"class_system_hz.html#aafe9250142a6c4b234f3d8e64771ce95":[0,0,48,2], -"class_time_string.html":[0,0,49], -"class_time_string.html#a631583475f42183fdc5cd02914a26320":[0,0,49,1], -"class_time_string.html#adc18ed47c4b6d88acceec81741aab5c3":[0,0,49,0], -"class_transform.html":[0,0,50], -"class_transform.html#a764037842596e71f15621e3732dac75a":[0,0,50,0], -"class_transform.html#a7721846cbfe5b3d95c6f1f40cb387c5d":[0,0,50,1], -"class_transform_base.html":[0,0,51], -"class_transform_base.html#a4f28a4ec27046ac3ef1546eda4b5b43b":[0,0,51,0], -"class_uptime.html":[0,0,52], -"class_uptime.html#a3723d5d7c5b11879065dc3defb6e171f":[0,0,52,0], -"class_uptime.html#a43cdcac661b684e1c746fcdf7224e68f":[0,0,52,2], -"class_uptime.html#a677ab855187348527ccdb0725552e02a":[0,0,52,1], -"class_value_consumer.html":[0,0,53], -"class_value_consumer.html#a6adf62d8d87ffa3ce70bb85379a68715":[0,0,53,0], -"class_value_consumer.html#a7bf920e5ad5f171ec6e2aeda056ff01f":[0,0,53,1], -"class_value_producer.html":[0,0,54], -"class_value_producer.html#a0ef05992883120f7202c14fd8e577103":[0,0,54,0], -"class_value_producer.html#a1669282467997608ce6164fe4d729bb2":[0,0,54,1], -"class_value_producer.html#a9d3882f6de7ef8b05e78947cf9df2697":[0,0,54,4], -"class_value_producer.html#adaf30ea1027efa0c83c75dfe3afc0c1a":[0,0,54,3], -"class_value_producer.html#adfb3d9679b80c9fae0951ca13911344f":[0,0,54,2], -"class_voltage_divider_r2.html":[0,0,55], -"class_voltage_divider_r2.html#a35275626b89244eb30f0c1be504dbdb6":[0,0,55,2], -"class_voltage_divider_r2.html#a43fa7bb9dc49c50de247aac272d7f697":[0,0,55,4], -"class_voltage_divider_r2.html#a482239a7e4031b16091886109efd2296":[0,0,55,6], -"class_voltage_divider_r2.html#a609ab5e2db4122ddc875a94ba8f9d325":[0,0,55,0], -"class_voltage_divider_r2.html#a805b64252dccfd3720ce5fc0f84964b3":[0,0,55,3], -"class_voltage_divider_r2.html#a927b6c4d26bc24dfd326f63a0a127f66":[0,0,55,5], -"class_voltage_divider_r2.html#ae37065fd9bd093497ff74a9faf5b6cea":[0,0,55,1], -"class_w_s_client.html":[0,0,56], -"class_w_s_client.html#a1313d063fd61739f7e3ca9b2c126b048":[0,0,56,2], -"class_w_s_client.html#a1612670a5dccbc8a39518ae972fbae90":[0,0,56,1], -"class_w_s_client.html#a262d41693fab15daa3acac9de78fbf35":[0,0,56,7], -"class_w_s_client.html#a2a41e313d8d3be52cd7bb53e6bbf3117":[0,0,56,4], -"class_w_s_client.html#a2b235f3e62668b6e7923cbbcba00e5c1":[0,0,56,10], -"class_w_s_client.html#a46394a4855cdb0d9587fde318574b6e4":[0,0,56,0], -"class_w_s_client.html#a478877d14e5a303c24ea60a4cc4f8752":[0,0,56,11], -"class_w_s_client.html#a6ae43b80f511194b43b0dff2763d68b1":[0,0,56,5], -"class_w_s_client.html#a78fbe2ccf0f84423abbf9d1047aff0bc":[0,0,56,3], -"class_w_s_client.html#ab6bcc3fb4cfe71aff3929480fab9bd5a":[0,0,56,12], -"class_w_s_client.html#ad099870379ee102fa4f5b3b584b50658":[0,0,56,13], -"class_w_s_client.html#ae110b10f209f55a82e2d700c8c9149a7":[0,0,56,8], -"class_w_s_client.html#ae23657a7da08a9413a09e9054495904e":[0,0,56,6], -"class_w_s_client.html#af921852d17f75f46999c2cc1442c4723":[0,0,56,9], -"classes.html":[0,1], -"configurable_8cpp.html":[1,0,0,3,0], -"configurable_8cpp.html#a19ac563e52fea3af6b643155f9d258b6":[1,0,0,3,0,0], -"configurable_8cpp_source.html":[1,0,0,3,0], -"configurable_8h.html":[1,0,0,3,1], -"configurable_8h.html#a19ac563e52fea3af6b643155f9d258b6":[1,0,0,3,1,1], -"configurable_8h_source.html":[1,0,0,3,1], -"curveinterpolator_8cpp.html":[1,0,0,4,5], -"curveinterpolator_8cpp_source.html":[1,0,0,4,5], -"curveinterpolator_8h.html":[1,0,0,4,6], -"curveinterpolator_8h_source.html":[1,0,0,4,6], -"debounce_8cpp.html":[1,0,0,4,7], -"debounce_8cpp_source.html":[1,0,0,4,7], -"debounce_8h.html":[1,0,0,4,8], -"debounce_8h_source.html":[1,0,0,4,8], -"difference_8cpp.html":[1,0,0,4,9], -"difference_8cpp_source.html":[1,0,0,4,9], -"difference_8h.html":[1,0,0,4,10], -"difference_8h_source.html":[1,0,0,4,10], -"digital__input_8cpp.html":[1,0,0,1,2], -"digital__input_8cpp_source.html":[1,0,0,1,2], -"digital__input_8h.html":[1,0,0,1,3], -"digital__input_8h_source.html":[1,0,0,1,3], -"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[1,0,0], -"dir_7349e89ef19c117195f8e371603e1b1f.html":[1,0,0,1], -"dir_846aa835ffd15ea225ad18b5b4aa0d4f.html":[1,0,0,2], -"dir_85858df28c9c737bf6d126646f545b97.html":[1,0,0,0,0], -"dir_859cad99e661c8c6c06da42378c04432.html":[1,0,0,4], -"dir_c72b25b75abe208498b36a3e44a3726c.html":[1,0,0,0], -"dir_d501334aeb1b78ad67cd3c72c37b1e87.html":[1,0,0,3], -"discovery_8cpp.html":[1,0,0,0,1], -"discovery_8cpp.html#aeea49ee803402167d8d79ca58268363e":[1,0,0,0,1,0], -"discovery_8cpp_source.html":[1,0,0,0,1], -"discovery_8h.html":[1,0,0,0,2], -"discovery_8h.html#aeea49ee803402167d8d79ca58268363e":[1,0,0,0,2,0], -"discovery_8h_source.html":[1,0,0,0,2], -"enable_8cpp.html":[1,0,0,3,2], -"enable_8cpp_source.html":[1,0,0,3,2], -"enable_8h.html":[1,0,0,3,3], -"enable_8h_source.html":[1,0,0,3,3], -"files.html":[1,0], -"frequency_8cpp.html":[1,0,0,4,11], -"frequency_8cpp_source.html":[1,0,0,4,11], -"frequency_8h.html":[1,0,0,4,12], -"frequency_8h_source.html":[1,0,0,4,12], -"functions.html":[0,3,0], -"functions.html":[0,3,0,0], -"functions_b.html":[0,3,0,1], -"functions_c.html":[0,3,0,2], -"functions_d.html":[0,3,0,3], -"functions_e.html":[0,3,0,4], -"functions_f.html":[0,3,0,5], -"functions_func.html":[0,3,1], -"functions_func.html":[0,3,1,0], -"functions_func_c.html":[0,3,1,1], -"functions_func_d.html":[0,3,1,2], -"functions_func_e.html":[0,3,1,3], -"functions_func_f.html":[0,3,1,4], -"functions_func_g.html":[0,3,1,5], -"functions_func_h.html":[0,3,1,6], -"functions_func_i.html":[0,3,1,7], -"functions_func_l.html":[0,3,1,8], -"functions_func_m.html":[0,3,1,9], -"functions_func_n.html":[0,3,1,10], -"functions_func_o.html":[0,3,1,11], -"functions_func_p.html":[0,3,1,12], -"functions_func_r.html":[0,3,1,13], -"functions_func_s.html":[0,3,1,14], -"functions_func_t.html":[0,3,1,15], -"functions_func_u.html":[0,3,1,16], -"functions_func_v.html":[0,3,1,17], -"functions_func_w.html":[0,3,1,18], -"functions_func_~.html":[0,3,1,19], -"functions_g.html":[0,3,0,6], -"functions_h.html":[0,3,0,7], -"functions_i.html":[0,3,0,8], -"functions_l.html":[0,3,0,9], -"functions_m.html":[0,3,0,10], -"functions_n.html":[0,3,0,11], -"functions_o.html":[0,3,0,12], -"functions_p.html":[0,3,0,13], -"functions_r.html":[0,3,0,14], -"functions_rela.html":[0,3,3], -"functions_s.html":[0,3,0,15], -"functions_t.html":[0,3,0,16], -"functions_u.html":[0,3,0,17], -"functions_v.html":[0,3,0,18], -"functions_vars.html":[0,3,2], -"functions_w.html":[0,3,0,19], -"functions_~.html":[0,3,0,20], -"globals.html":[1,1,0], -"globals_defs.html":[1,1,6], -"globals_enum.html":[1,1,4], -"globals_eval.html":[1,1,5], -"globals_func.html":[1,1,1], -"globals_type.html":[1,1,3], -"globals_vars.html":[1,1,2], -"gps_8cpp.html":[1,0,0,1,4], -"gps_8cpp_source.html":[1,0,0,1,4], -"gps_8h.html":[1,0,0,1,5], -"gps_8h_source.html":[1,0,0,1,5], -"hierarchy.html":[0,2], -"http_8cpp.html":[1,0,0,0,3], -"http_8cpp_source.html":[1,0,0,0,3], -"http_8h.html":[1,0,0,0,4], -"http_8h_source.html":[1,0,0,0,4], -"index.html":[], -"index_8h.html":[1,0,0,0,0,0], -"index_8h.html#a9e09bea0eddc6841460f6654d2ba1a5f":[1,0,0,0,0,0,0], -"index_8h_source.html":[1,0,0,0,0,0], -"integrator_8cpp.html":[1,0,0,4,13], -"integrator_8cpp_source.html":[1,0,0,4,13], -"integrator_8h.html":[1,0,0,4,14], -"integrator_8h_source.html":[1,0,0,4,14], -"js__jsoneditor_8h.html":[1,0,0,0,0,1], -"js__jsoneditor_8h.html#a53fb277b2065a969013a1bc4b071abd1":[1,0,0,0,0,1,0], -"js__jsoneditor_8h_source.html":[1,0,0,0,0,1], -"js__sensesp_8h.html":[1,0,0,0,0,2], -"js__sensesp_8h.html#a8de262bdd3fe0e74c591a5174112011f":[1,0,0,0,0,2,0], -"js__sensesp_8h_source.html":[1,0,0,0,0,2], -"led__blinker_8cpp.html":[1,0,0,3,4], -"led__blinker_8cpp.html#ab4553be4db9860d940f81d7447173b2f":[1,0,0,3,4,0], -"led__blinker_8cpp_source.html":[1,0,0,3,4], -"led__blinker_8h.html":[1,0,0,3,5], -"led__blinker_8h_source.html":[1,0,0,3,5], -"linear_8cpp.html":[1,0,0,4,15], -"linear_8cpp_source.html":[1,0,0,4,15], -"linear_8h.html":[1,0,0,4,16], -"linear_8h_source.html":[1,0,0,4,16], -"median_8cpp.html":[1,0,0,4,17], -"median_8cpp_source.html":[1,0,0,4,17], -"median_8h.html":[1,0,0,4,18], -"median_8h_source.html":[1,0,0,4,18], -"moving__average_8cpp.html":[1,0,0,4,19], -"moving__average_8cpp_source.html":[1,0,0,4,19], -"moving__average_8h.html":[1,0,0,4,20], -"moving__average_8h_source.html":[1,0,0,4,20], -"networking_8cpp.html":[1,0,0,0,5], -"networking_8cpp.html#a6beb3d9ab4141921e87c56b399230fce":[1,0,0,0,5,0], -"networking_8cpp.html#a7930cb24915efc348611f4c48d1d5e4c":[1,0,0,0,5,1], -"networking_8cpp.html#ade4bb65788e7b6ea2d2e3e026baf7310":[1,0,0,0,5,2], -"networking_8cpp_source.html":[1,0,0,0,5], -"networking_8h.html":[1,0,0,0,6], -"networking_8h_source.html":[1,0,0,0,6], -"nmea__parser_8cpp.html":[1,0,0,3,6], -"nmea__parser_8cpp.html#a113615295f150c16f895c9e2525bbd6e":[1,0,0,3,6,4], -"nmea__parser_8cpp.html#a18bf596259e1849f3b6bdbdd765ab606":[1,0,0,3,6,9], -"nmea__parser_8cpp.html#a202c8d748e820b33d2fb1a324710698b":[1,0,0,3,6,11], -"nmea__parser_8cpp.html#a21e8f85a497e58ad08d5c473e89a8463":[1,0,0,3,6,7], -"nmea__parser_8cpp.html#a29c34542d9842302271bb6a0380d4d4d":[1,0,0,3,6,2], -"nmea__parser_8cpp.html#a37bce694f34f625b2c3e29a1a74c1570":[1,0,0,3,6,10], -"nmea__parser_8cpp.html#a3f3c4d059e6d6bcc7040f624486d37ae":[1,0,0,3,6,3], -"nmea__parser_8cpp.html#a4021e9ad227b156bfdedaa8fd938590b":[1,0,0,3,6,8], -"nmea__parser_8cpp.html#a4de8e35130646cbb488072ff8e457126":[1,0,0,3,6,6], -"nmea__parser_8cpp.html#a69a390886762ecd9593ebeada6f3e52d":[1,0,0,3,6,12], -"nmea__parser_8cpp.html#a78e0374f91eaf4035ec29121f7e40064":[1,0,0,3,6,14], -"nmea__parser_8cpp.html#ac534d920f6775ddb34453e554699e1b4":[1,0,0,3,6,5], -"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520":[1,0,0,3,6,0], -"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a05e849a8cef5c44456bd54132f622ef2":[1,0,0,3,6,0,4], -"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a1b64cc0e9a9ebc1afccab8e472ed2e3c":[1,0,0,3,6,0,5], -"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a32b763dac1af6b0b08ab952ea202f6a3":[1,0,0,3,6,0,8], -"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a4692e23f3770a255f880456f7fbec485":[1,0,0,3,6,0,7], -"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a59f188885f9974ee947a7e5af4b9f5bc":[1,0,0,3,6,0,6], -"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a8d26d1fa1d0cda42a29843162786a0b6":[1,0,0,3,6,0,2], -"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520acad07a79b4226b1e51ce24a510e6aef0":[1,0,0,3,6,0,0], -"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520ad606e435413ea0944dd00d49e901e4ed":[1,0,0,3,6,0,9], -"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520adea098971e394461267006ddf5d2d4b0":[1,0,0,3,6,0,1], -"nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520afa0a09a3165e3cc313372a0b424b149c":[1,0,0,3,6,0,3], -"nmea__parser_8cpp.html#af394f12d9ff6fb97e4c158dac1eb6dc0":[1,0,0,3,6,1], -"nmea__parser_8cpp.html#af7a3600deec155122015fcfedfc126a7":[1,0,0,3,6,13], -"nmea__parser_8cpp_source.html":[1,0,0,3,6], -"nmea__parser_8h.html":[1,0,0,3,7], -"nmea__parser_8h.html#a6088978b66925a9ff44bbdf302f00726":[1,0,0,3,7,11], -"nmea__parser_8h.html#a6487a496a45b3acfe263589909cfc101":[1,0,0,3,7,12], -"nmea__parser_8h_source.html":[1,0,0,3,7], -"observable_8cpp.html":[1,0,0,3,8], -"observable_8cpp_source.html":[1,0,0,3,8], -"observable_8h.html":[1,0,0,3,9], -"observable_8h_source.html":[1,0,0,3,9], -"observablevalue_8h.html":[1,0,0,3,10], -"observablevalue_8h_source.html":[1,0,0,3,10], -"onewire__temperature_8cpp.html":[1,0,0,1,6], -"onewire__temperature_8cpp.html#a2ea2a536fdbbb476ae3fb824d73d3e1a":[1,0,0,1,6,1], -"onewire__temperature_8cpp.html#ad0134b3041182b5f8c3004025183e6eb":[1,0,0,1,6,0], -"onewire__temperature_8cpp.html#af247f8ddcd26451c72c7706fc884a6dc":[1,0,0,1,6,2], -"onewire__temperature_8cpp_source.html":[1,0,0,1,6], -"onewire__temperature_8h.html":[1,0,0,1,7], -"onewire__temperature_8h.html#aaada9c625aab143feda6189e26144775":[1,0,0,1,7,2] -}; diff --git a/docs/navtreeindex2.js b/docs/navtreeindex2.js deleted file mode 100644 index 3074f342f..000000000 --- a/docs/navtreeindex2.js +++ /dev/null @@ -1,149 +0,0 @@ -var NAVTREEINDEX2 = -{ -"onewire__temperature_8h_source.html":[1,0,0,1,7], -"ota_8cpp.html":[1,0,0,0,7], -"ota_8cpp.html#a29c2aa13f2bbaccceeb33ed39a6ece11":[1,0,0,0,7,1], -"ota_8cpp.html#a6696a10cb1e3746f263fb053fd5df092":[1,0,0,0,7,0], -"ota_8cpp_source.html":[1,0,0,0,7], -"ota_8h.html":[1,0,0,0,8], -"ota_8h.html#a29c2aa13f2bbaccceeb33ed39a6ece11":[1,0,0,0,8,0], -"ota_8h_source.html":[1,0,0,0,8], -"pages.html":[], -"sensesp_8h.html":[1,0,0,5], -"sensesp_8h.html#a5ae2f374710d648c2027c78237f5df01":[1,0,0,5,2], -"sensesp_8h.html#aaa2ffd80e6f851dc6bb43c95a2c7d26f":[1,0,0,5,1], -"sensesp_8h.html#abb3668fa85a914138ab7c0c4329681ec":[1,0,0,5,0], -"sensesp_8h_source.html":[1,0,0,5], -"sensesp__app_8cpp.html":[1,0,0,6], -"sensesp__app_8cpp.html#a5ae2f374710d648c2027c78237f5df01":[1,0,0,6,0], -"sensesp__app_8cpp.html#a9b53af60ecde971876d66994134fbfff":[1,0,0,6,1], -"sensesp__app_8cpp_source.html":[1,0,0,6], -"sensesp__app_8h.html":[1,0,0,7], -"sensesp__app_8h.html#a8abe44af131f55591035d3587ca9484d":[1,0,0,7,1], -"sensesp__app_8h.html#a9b53af60ecde971876d66994134fbfff":[1,0,0,7,2], -"sensesp__app_8h_source.html":[1,0,0,7], -"sensor_8cpp.html":[1,0,0,1,8], -"sensor_8cpp_source.html":[1,0,0,1,8], -"sensor_8h.html":[1,0,0,1,9], -"sensor_8h_source.html":[1,0,0,1,9], -"setup_8h.html":[1,0,0,0,0,3], -"setup_8h.html#a183306764a8509f2c9635a13289ea64f":[1,0,0,0,0,3,0], -"setup_8h_source.html":[1,0,0,0,0,3], -"signalk__delta_8cpp.html":[1,0,0,2,0], -"signalk__delta_8cpp_source.html":[1,0,0,2,0], -"signalk__delta_8h.html":[1,0,0,2,1], -"signalk__delta_8h_source.html":[1,0,0,2,1], -"signalk__emitter_8cpp.html":[1,0,0,2,2], -"signalk__emitter_8cpp_source.html":[1,0,0,2,2], -"signalk__emitter_8h.html":[1,0,0,2,3], -"signalk__emitter_8h_source.html":[1,0,0,2,3], -"signalk__output_8h.html":[1,0,0,2,4], -"signalk__output_8h.html#a008f63a91ea787950cb6c17e4c031859":[1,0,0,2,4,4], -"signalk__output_8h.html#a1a26c344db2dff33a77cf620aafa6c0c":[1,0,0,2,4,1], -"signalk__output_8h.html#a2a0e216e5ada5e31f7a6d995d2c52642":[1,0,0,2,4,2], -"signalk__output_8h.html#a6c84656f504f6de21c63c1d54d6f39e1":[1,0,0,2,4,3], -"signalk__output_8h_source.html":[1,0,0,2,4], -"signalk__position_8cpp.html":[1,0,0,2,5], -"signalk__position_8cpp_source.html":[1,0,0,2,5], -"signalk__position_8h.html":[1,0,0,2,6], -"signalk__position_8h.html#af7b68a40dd9aa2220abb8e1bd8998455":[1,0,0,2,6,0], -"signalk__position_8h_source.html":[1,0,0,2,6], -"signalk__time_8cpp.html":[1,0,0,2,7], -"signalk__time_8cpp_source.html":[1,0,0,2,7], -"signalk__time_8h.html":[1,0,0,2,8], -"signalk__time_8h_source.html":[1,0,0,2,8], -"spiffs__storage_8cpp.html":[1,0,0,3,11], -"spiffs__storage_8cpp.html#a1dfee751479797b385c81cacb151c115":[1,0,0,3,11,1], -"spiffs__storage_8cpp.html#a7429780969e66149e25ea6088bf65b7a":[1,0,0,3,11,0], -"spiffs__storage_8cpp.html#ae1cd66733f6f724334874c5ff65b958b":[1,0,0,3,11,2], -"spiffs__storage_8cpp_source.html":[1,0,0,3,11], -"spiffs__storage_8h.html":[1,0,0,3,12], -"spiffs__storage_8h.html#a1dfee751479797b385c81cacb151c115":[1,0,0,3,12,2], -"spiffs__storage_8h.html#a7429780969e66149e25ea6088bf65b7a":[1,0,0,3,12,1], -"spiffs__storage_8h.html#ae1cd66733f6f724334874c5ff65b958b":[1,0,0,3,12,4], -"spiffs__storage_8h.html#aeb6c893649f188e378de0c76055b1f01":[1,0,0,3,12,0], -"spiffs__storage_8h.html#afc3e0da568f2f14c9954eeab665ab9cd":[1,0,0,3,12,3], -"spiffs__storage_8h_source.html":[1,0,0,3,12], -"struct_e_n_u_vector.html":[0,0,13], -"struct_e_n_u_vector.html#a4cf8b3abdd2edd2f9a463fc6394dbb50":[0,0,13,1], -"struct_e_n_u_vector.html#ac4254f925ae071868c7961a006cdf768":[0,0,13,2], -"struct_e_n_u_vector.html#affaf84db367ff8259448116fe4c75370":[0,0,13,0], -"struct_n_m_e_a_data.html":[0,0,29], -"struct_n_m_e_a_data.html#a1b62fa2b8b0b62d9cef48f7576e0da30":[0,0,29,6], -"struct_n_m_e_a_data.html#a249d831d604857b04284d4c33719005e":[0,0,29,11], -"struct_n_m_e_a_data.html#a3acdff78f354082419d01ebfe8846f7f":[0,0,29,7], -"struct_n_m_e_a_data.html#a3ae9e3d23c088e1c435acf4c232d6a5c":[0,0,29,2], -"struct_n_m_e_a_data.html#a5271f014cd9d9b7ebcfa64d772006044":[0,0,29,12], -"struct_n_m_e_a_data.html#a590b94e1133efeaa9a05456da0dab2dd":[0,0,29,13], -"struct_n_m_e_a_data.html#a8048e071ffb9f37ff425305525f2223a":[0,0,29,8], -"struct_n_m_e_a_data.html#a91263e0aa16f47a7535d8d4a09b2ffca":[0,0,29,15], -"struct_n_m_e_a_data.html#a96cce54518c05c611d50c159ea5122d6":[0,0,29,1], -"struct_n_m_e_a_data.html#a99328058cfe4cf26b5025511d64ce576":[0,0,29,5], -"struct_n_m_e_a_data.html#aa6d1ee7ee222393032e1f57cde891b31":[0,0,29,9], -"struct_n_m_e_a_data.html#aae3cb7b0e14cc41ad1c271b9afaae27d":[0,0,29,3], -"struct_n_m_e_a_data.html#ab5b508669ea5109f812b28cdba65c402":[0,0,29,16], -"struct_n_m_e_a_data.html#ac5e91779da683f23c11da42c1db41b60":[0,0,29,10], -"struct_n_m_e_a_data.html#ad752076d48c74317d72a26643fef7fef":[0,0,29,0], -"struct_n_m_e_a_data.html#af61e9824ffaf9b43c1a95d8d7a93bc10":[0,0,29,4], -"struct_n_m_e_a_data.html#afe6efa0ec62ce332673ab98b282990c8":[0,0,29,14], -"struct_position.html":[0,0,35], -"struct_position.html#a76a87a4287c53ae7e53eba716e740c12":[0,0,35,2], -"struct_position.html#ac6606384ff43b39b8614dd3b590d6b36":[0,0,35,1], -"struct_position.html#add1df8470102854f3950fc9dd2fee06d":[0,0,35,0], -"system__info_8cpp.html":[1,0,0,1,10], -"system__info_8cpp_source.html":[1,0,0,1,10], -"system__info_8h.html":[1,0,0,1,11], -"system__info_8h_source.html":[1,0,0,1,11], -"timestring_8cpp.html":[1,0,0,4,21], -"timestring_8cpp_source.html":[1,0,0,4,21], -"timestring_8h.html":[1,0,0,4,22], -"timestring_8h_source.html":[1,0,0,4,22], -"transform_8cpp.html":[1,0,0,4,23], -"transform_8cpp_source.html":[1,0,0,4,23], -"transform_8h.html":[1,0,0,4,24], -"transform_8h.html#a463af5c6e30307ac67004d67dd014030":[1,0,0,4,24,6], -"transform_8h.html#ac1617ff234bef4e8a50341c1d6943246":[1,0,0,4,24,3], -"transform_8h.html#ac62af394caec478e4d32c254c96af25b":[1,0,0,4,24,5], -"transform_8h.html#ae9c0b5d70ecdf35d4bd3a0a4bd4e0d17":[1,0,0,4,24,4], -"transform_8h_source.html":[1,0,0,4,24], -"valueconsumer_8h.html":[1,0,0,3,13], -"valueconsumer_8h.html#a1220e1ddede7c4512fde395262841b74":[1,0,0,3,13,4], -"valueconsumer_8h.html#a1d91b84157f6818bb8b8b04caede8a02":[1,0,0,3,13,5], -"valueconsumer_8h.html#a45a844f7269f830a1f708f965627248c":[1,0,0,3,13,3], -"valueconsumer_8h.html#abea8a189967941972b3e7c5a329c4963":[1,0,0,3,13,2], -"valueconsumer_8h_source.html":[1,0,0,3,13], -"valueproducer_8h.html":[1,0,0,3,14], -"valueproducer_8h.html#a79edc4b65652f6948d690891bb6d7e0c":[1,0,0,3,14,2], -"valueproducer_8h.html#aaf22f94e9cc9067637cd0625ad9fe352":[1,0,0,3,14,4], -"valueproducer_8h.html#ab74ca4be7de22a21f73128ea38a4cbbb":[1,0,0,3,14,3], -"valueproducer_8h.html#ab845e985974e3ae4c050b8f221337b0d":[1,0,0,3,14,5], -"valueproducer_8h_source.html":[1,0,0,3,14], -"voltagedivider_r2_8cpp.html":[1,0,0,4,25], -"voltagedivider_r2_8cpp_source.html":[1,0,0,4,25], -"voltagedivider_r2_8h.html":[1,0,0,4,26], -"voltagedivider_r2_8h_source.html":[1,0,0,4,26], -"wiring__helpers_8cpp.html":[1,0,0,8], -"wiring__helpers_8cpp.html#a17220137bcd65b6f922f5a14165a8fcf":[1,0,0,8,3], -"wiring__helpers_8cpp.html#a3a4bbd0371b8285dbb7b8666d50a53a3":[1,0,0,8,0], -"wiring__helpers_8cpp.html#a8f7d5e59747355ce523001faddc7ada9":[1,0,0,8,2], -"wiring__helpers_8cpp.html#aa6279a7bab0b61c448263a90303bb7e0":[1,0,0,8,4], -"wiring__helpers_8cpp.html#ae36e0604b36693bd720bffcf4145baf9":[1,0,0,8,1], -"wiring__helpers_8cpp_source.html":[1,0,0,8], -"wiring__helpers_8h.html":[1,0,0,9], -"wiring__helpers_8h.html#a37c83d7d3ac2abb00e8f9e86c1da52d3":[1,0,0,9,3], -"wiring__helpers_8h.html#a70ac1c40d730c9e0f9b93b1f4dd5f0f9":[1,0,0,9,0], -"wiring__helpers_8h.html#a8f7d5e59747355ce523001faddc7ada9":[1,0,0,9,2], -"wiring__helpers_8h.html#a99ed20d80aca90bb060c88019c5f739f":[1,0,0,9,4], -"wiring__helpers_8h.html#ae36e0604b36693bd720bffcf4145baf9":[1,0,0,9,1], -"wiring__helpers_8h_source.html":[1,0,0,9], -"ws__client_8cpp.html":[1,0,0,0,9], -"ws__client_8cpp.html#a4d8d7cfce2bd21646b059e9aa4d0349b":[1,0,0,0,9,1], -"ws__client_8cpp.html#a5e74f160471b58a262cceef5edaea7e0":[1,0,0,0,9,0], -"ws__client_8cpp_source.html":[1,0,0,0,9], -"ws__client_8h.html":[1,0,0,0,10], -"ws__client_8h.html#acdd867d72142510ce53521a63a062f9b":[1,0,0,0,10,1], -"ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba519f950c18a0ec32082cf9984cd2b225":[1,0,0,0,10,1,0], -"ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba8ba3de7243211c98f5ec24395c73d65b":[1,0,0,0,10,1,2], -"ws__client_8h.html#acdd867d72142510ce53521a63a062f9bab4dbdd36e3f602f54d0024fd818e12d6":[1,0,0,0,10,1,1], -"ws__client_8h_source.html":[1,0,0,0,10] -}; diff --git a/docs/networking_8cpp.html b/docs/networking_8cpp.html deleted file mode 100644 index 71898f150..000000000 --- a/docs/networking_8cpp.html +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - - -SensESP: src/net/networking.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          networking.cpp File Reference
          -
          -
          -
          #include "networking.h"
          -#include "sensesp.h"
          -#include "system/led_blinker.h"
          -
          -Include dependency graph for networking.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Macros

          #define WIFI_CONFIG_PORTAL_TIMEOUT   180
           
          - - - -

          -Functions

          void save_config_callback ()
           
          - - - -

          -Variables

          bool should_save_config = false
           
          -

          Macro Definition Documentation

          - -

          ◆ WIFI_CONFIG_PORTAL_TIMEOUT

          - -
          -
          - - - - -
          #define WIFI_CONFIG_PORTAL_TIMEOUT   180
          -
          - -

          Definition at line 11 of file networking.cpp.

          - -
          -
          -

          Function Documentation

          - -

          ◆ save_config_callback()

          - -
          -
          - - - - - - - -
          void save_config_callback ()
          -
          - -

          Definition at line 16 of file networking.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - - - -
          - -
          -
          -

          Variable Documentation

          - -

          ◆ should_save_config

          - -
          -
          - - - - -
          bool should_save_config = false
          -
          - -

          Definition at line 14 of file networking.cpp.

          - -
          -
          -
          -
          - - - - diff --git a/docs/networking_8cpp__incl.map b/docs/networking_8cpp__incl.map deleted file mode 100644 index 5e51abb74..000000000 --- a/docs/networking_8cpp__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/networking_8cpp__incl.md5 b/docs/networking_8cpp__incl.md5 deleted file mode 100644 index 5a48c2db1..000000000 --- a/docs/networking_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -d10ab2a41e9989982909232f1197d712 \ No newline at end of file diff --git a/docs/networking_8cpp__incl.png b/docs/networking_8cpp__incl.png deleted file mode 100644 index 5f4076a66..000000000 Binary files a/docs/networking_8cpp__incl.png and /dev/null differ diff --git a/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.map b/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.map deleted file mode 100644 index aad03d08b..000000000 --- a/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.md5 b/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.md5 deleted file mode 100644 index 419a8d4e2..000000000 --- a/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -9f491dbfae2a8ea8268684eaf1c45ecd \ No newline at end of file diff --git a/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.png b/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.png deleted file mode 100644 index 399b55d90..000000000 Binary files a/docs/networking_8cpp_a7930cb24915efc348611f4c48d1d5e4c_icgraph.png and /dev/null differ diff --git a/docs/networking_8cpp_source.html b/docs/networking_8cpp_source.html deleted file mode 100644 index a746ca01d..000000000 --- a/docs/networking_8cpp_source.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - -SensESP: src/net/networking.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          networking.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "networking.h"
          2 
          3 #include "sensesp.h"
          4 #include "system/led_blinker.h"
          5 
          6 // Wifi config portal timeout (seconds). The smaller the value, the faster
          7 // the device will attempt to reconnect. If set too small, it might
          8 // become impossible to actually configure the Wifi settings in the captive
          9 // portal.
          10 #ifndef WIFI_CONFIG_PORTAL_TIMEOUT
          11 #define WIFI_CONFIG_PORTAL_TIMEOUT 180
          12 #endif
          13 
          14 bool should_save_config = false;
          15 
          17  should_save_config = true;
          18 }
          19 
          20 Networking::Networking(String config_path)
          22  hostname = new ObservableValue<String>(String("sensesp"));
          23  load_configuration();
          24  server = new AsyncWebServer(80);
          25  dns = new DNSServer();
          26  wifi_manager = new AsyncWiFiManager(server, dns);
          27 }
          28 
          30  if (WiFi.status() != WL_CONNECTED) {
          31  // if connection is lost, simply restart
          32  debugD("Wifi disconnected: restarting...");
          33  ESP.restart();
          34  }
          35 }
          36 
          37 void Networking::setup(std::function<void(bool)> connection_cb) {
          38  if (ap_ssid != "" && ap_password != "") {
          39  setup_saved_ssid(connection_cb);
          40  }
          41  if (WiFi.status() != WL_CONNECTED) {
          42  setup_wifi_manager(connection_cb);
          43  }
          44  app.onRepeat(1000, std::bind(&Networking::check_connection, this));
          45 }
          46 
          47 void Networking::setup_saved_ssid(std::function<void(bool)> connection_cb) {
          48  WiFi.begin(ap_ssid, ap_password);
          49 
          50  uint32_t timer_start = millis();
          51 
          52  rdebugI("Connecting");
          53  while (WiFi.status() != WL_CONNECTED &&
          54  (millis() - timer_start) < 3 * 60 * 1000) {
          55  delay(500);
          56  rdebugI(".");
          57  }
          58  debugI("\n");
          59 
          60  if (WiFi.status() == WL_CONNECTED) {
          61  debugI("Connected to wifi, SSID: %s", WiFi.SSID().c_str());
          62  connection_cb(true);
          63  }
          64 }
          65 
          66 void Networking::setup_wifi_manager(std::function<void(bool)> connection_cb) {
          67  should_save_config = false;
          68 
          69  //set config save notify callback
          70  wifi_manager->setSaveConfigCallback(save_config_callback);
          71 
          72  wifi_manager->setConfigPortalTimeout(WIFI_CONFIG_PORTAL_TIMEOUT);
          73 
          74  #ifdef SERIAL_DEBUG_DISABLED
          75  wifi_manager->setDebugOutput(false);
          76  #endif
          77  AsyncWiFiManagerParameter custom_hostname(
          78  "hostname", "Set ESP device hostname", this->hostname->get().c_str(), 20);
          79  wifi_manager->addParameter(&custom_hostname);
          80 
          81  if (!wifi_manager->autoConnect("Unconfigured SensESP Device")) {
          82  debugE("Failed to connect to wifi and config timed out. Restarting...");
          83  ESP.restart();
          84  }
          85 
          86  debugI("Connected to wifi, SSID: %s", WiFi.SSID().c_str());
          87  connection_cb(true);
          88 
          89  if (should_save_config) {
          90  String new_hostname = custom_hostname.getValue();
          91  debugI("Got new hostname: %s", new_hostname.c_str());
          92  this->hostname->set(new_hostname);
          93  this->ap_ssid = WiFi.SSID();
          94  debugI("Got new SSID: %s", ap_ssid.c_str());
          95  this->ap_password = WiFi.psk();
          97  debugW("Restarting in 500ms");
          98  app.onDelay(500, [](){ ESP.restart(); });
          99  }
          100 }
          101 
          103  return this->hostname;
          104 }
          105 
          106 void Networking::set_hostname(String hostname) {
          107  debugD("Setting hostname");
          108  this->hostname->set(hostname);
          109 }
          110 
          111 static const char SCHEMA[] PROGMEM = R"({
          112  "type": "object",
          113  "properties": {
          114  "hostname": { "title": "ESP device hostname", "type": "string" },
          115  "ap_ssid": { "title": "Wifi Access Point SSID", "type": "string" },
          116  "ap_password": { "title": "Wifi Access Point Password", "type": "string" }
          117  }
          118  })";
          119 
          121  return FPSTR(SCHEMA);
          122 }
          123 
          124 JsonObject& Networking::get_configuration(JsonBuffer& buf) {
          125  JsonObject& root = buf.createObject();
          126  root["hostname"] = this->hostname->get();
          127  root["ap_ssid"] = this->ap_ssid;
          128  root["ap_password"] = this->ap_password;
          129 
          130  return root;
          131 }
          132 
          133 bool Networking::set_configuration(const JsonObject& config) {
          134  if (!config.containsKey("hostname")) {
          135  return false;
          136  }
          137  this->hostname->set(config["hostname"].as<String>());
          138  this->ap_ssid = config["ap_ssid"].as<String>();
          139  this->ap_password = config["ap_password"].as<String>();
          140  return true;
          141 }
          142 
          144  hostname->set("");
          145  ap_ssid = "";
          146  ap_password = "";
          148  wifi_manager->resetSettings();
          149 }
          void reset_settings()
          Definition: networking.cpp:143
          -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override final
          Definition: networking.cpp:124
          - -
          ObservableValue< String > * get_hostname()
          Definition: networking.cpp:102
          -
          virtual String get_config_schema() override
          Definition: networking.cpp:120
          -
          #define WIFI_CONFIG_PORTAL_TIMEOUT
          Definition: networking.cpp:11
          -
          virtual const T & get()
          Definition: valueproducer.h:29
          -
          void set_hostname(String hostname)
          Definition: networking.cpp:106
          -
          virtual void save_configuration()
          - -
          void save_config_callback()
          Definition: networking.cpp:16
          - -
          const String config_path
          Definition: configurable.h:29
          -
          Networking(String config_path)
          Definition: networking.cpp:20
          -
          virtual bool set_configuration(const JsonObject &config) override final
          Definition: networking.cpp:133
          -
          void check_connection()
          Definition: networking.cpp:29
          - -
          void setup(std::function< void(bool)> connection_cb)
          Definition: networking.cpp:37
          -
          void set(const T &value)
          -
          void setup_saved_ssid(std::function< void(bool)> connection_cb)
          Definition: networking.cpp:47
          -
          void setup_wifi_manager(std::function< void(bool)> connection_cb)
          Definition: networking.cpp:66
          - -
          bool should_save_config
          Definition: networking.cpp:14
          -
          ReactESP app
          -
          -
          - - - - diff --git a/docs/networking_8h.html b/docs/networking_8h.html deleted file mode 100644 index 668094c0e..000000000 --- a/docs/networking_8h.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - -SensESP: src/net/networking.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          networking.h File Reference
          -
          -
          -
          #include "Arduino.h"
          -#include <ESPAsyncWebServer.h>
          -#include <ESPAsyncWiFiManager.h>
          -#include "system/configurable.h"
          -#include "system/observablevalue.h"
          -
          -Include dependency graph for networking.h:
          -
          -
          - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  Networking
           
          -
          -
          - - - - diff --git a/docs/networking_8h__dep__incl.map b/docs/networking_8h__dep__incl.map deleted file mode 100644 index de7cb5094..000000000 --- a/docs/networking_8h__dep__incl.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/docs/networking_8h__dep__incl.md5 b/docs/networking_8h__dep__incl.md5 deleted file mode 100644 index dccd70d12..000000000 --- a/docs/networking_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -b6bf94d777c664d40e701482236bab9e \ No newline at end of file diff --git a/docs/networking_8h__dep__incl.png b/docs/networking_8h__dep__incl.png deleted file mode 100644 index 167908d46..000000000 Binary files a/docs/networking_8h__dep__incl.png and /dev/null differ diff --git a/docs/networking_8h__incl.map b/docs/networking_8h__incl.map deleted file mode 100644 index c64629dda..000000000 --- a/docs/networking_8h__incl.map +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/docs/networking_8h__incl.md5 b/docs/networking_8h__incl.md5 deleted file mode 100644 index 0636d1c01..000000000 --- a/docs/networking_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -352915fa36cdf5a65a4e47e1e1458812 \ No newline at end of file diff --git a/docs/networking_8h__incl.png b/docs/networking_8h__incl.png deleted file mode 100644 index ac4a3e710..000000000 Binary files a/docs/networking_8h__incl.png and /dev/null differ diff --git a/docs/networking_8h_source.html b/docs/networking_8h_source.html deleted file mode 100644 index c74d1788b..000000000 --- a/docs/networking_8h_source.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -SensESP: src/net/networking.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          networking.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _networking_H_
          2 #define _networking_H_
          3 
          4 #include "Arduino.h"
          5 
          6 // Local WebServer used to serve the configuration portal
          7 #include <ESPAsyncWebServer.h>
          8 #include <ESPAsyncWiFiManager.h>
          9 
          10 #include "system/configurable.h"
          11 #include "system/observablevalue.h"
          12 
          13 class Networking : public Configurable {
          14  public:
          15  Networking(String config_path);
          16  void setup(std::function<void(bool)> connection_cb);
          18  virtual JsonObject& get_configuration(JsonBuffer& buf) override final;
          19  virtual bool set_configuration(const JsonObject& config) override final;
          20  virtual String get_config_schema() override;
          21 
          22  void set_hostname(String hostname);
          23 
          24  void reset_settings();
          25 
          26  protected:
          27  void check_connection();
          28  void setup_saved_ssid(std::function<void(bool)> connection_cb);
          29  void setup_wifi_manager(std::function<void(bool)> connection_cb);
          30  private:
          31  AsyncWebServer* server;
          32  // FIXME: DNSServer and AsyncWiFiManager could be instantiated in
          33  // respective methods to save some runtime memory
          34  DNSServer* dns;
          35  AsyncWiFiManager* wifi_manager;
          36  ObservableValue<String>* hostname;
          37  String ap_ssid = "";
          38  String ap_password = "";
          39 };
          40 
          41 #endif
          void reset_settings()
          Definition: networking.cpp:143
          -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override final
          Definition: networking.cpp:124
          -
          ObservableValue< String > * get_hostname()
          Definition: networking.cpp:102
          -
          virtual String get_config_schema() override
          Definition: networking.cpp:120
          - -
          void set_hostname(String hostname)
          Definition: networking.cpp:106
          - - -
          const String config_path
          Definition: configurable.h:29
          -
          Networking(String config_path)
          Definition: networking.cpp:20
          -
          virtual bool set_configuration(const JsonObject &config) override final
          Definition: networking.cpp:133
          -
          void check_connection()
          Definition: networking.cpp:29
          - - -
          void setup(std::function< void(bool)> connection_cb)
          Definition: networking.cpp:37
          -
          void setup_saved_ssid(std::function< void(bool)> connection_cb)
          Definition: networking.cpp:47
          -
          void setup_wifi_manager(std::function< void(bool)> connection_cb)
          Definition: networking.cpp:66
          -
          -
          - - - - diff --git a/docs/nmea__parser_8cpp.html b/docs/nmea__parser_8cpp.html deleted file mode 100644 index 2823465ca..000000000 --- a/docs/nmea__parser_8cpp.html +++ /dev/null @@ -1,802 +0,0 @@ - - - - - - - -SensESP: src/system/nmea_parser.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          nmea_parser.cpp File Reference
          -
          -
          -
          #include "nmea_parser.h"
          -#include <ctime>
          -#include <stdlib.h>
          -#include <RemoteDebug.h>
          -#include "sensesp.h"
          -
          -Include dependency graph for nmea_parser.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Enumerations

          enum  GNSSQuality {
          -  no_gps, -gnss_fix, -dgnss_fix, -precise_gnss, -
          -  rtk_fixed_integer, -rtk_float, -estimated_mode, -manual_input, -
          -  simulator_mode, -error -
          - }
           
          - - - - - - - - - - - - - - - - - - - - - - - - - - - -

          -Functions

          void reconstruct_nmea_sentence (char *sentence, const char *buffer, int term_offsets[], int num_terms)
           
          bool parse_int (int *value, char *s)
           
          bool parse_float (float *value, char *s)
           
          bool parse_double (double *value, char *s)
           
          bool parse_latlon (double *value, char *s)
           
          bool parse_NS (double *value, char *s)
           
          bool parse_EW (double *value, char *s)
           
          bool parse_M (char *s)
           
          bool parse_AV (bool *is_valid, char *s)
           
          bool parse_PSTI030_mode (GNSSQuality *quality, char *s)
           
          bool parse_time (int *hour, int *minute, float *second, char *s)
           
          bool parse_date (int *year, int *month, int *day, char *s)
           
          void report_success (bool ok, const char *sentence)
           
          - - - -

          -Variables

          String gnssQualityStrings []
           
          -

          Enumeration Type Documentation

          - -

          ◆ GNSSQuality

          - -
          -
          - - - - -
          enum GNSSQuality
          -
          - - - - - - - - - - - -
          Enumerator
          no_gps 
          gnss_fix 
          dgnss_fix 
          precise_gnss 
          rtk_fixed_integer 
          rtk_float 
          estimated_mode 
          manual_input 
          simulator_mode 
          error 
          - -

          Definition at line 11 of file nmea_parser.cpp.

          - -
          -
          -

          Function Documentation

          - -

          ◆ parse_AV()

          - -
          -
          - - - - - - - - - - - - - - - - - - -
          bool parse_AV (bool * is_valid,
          char * s 
          )
          -
          - -

          Definition at line 121 of file nmea_parser.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - - - -
          - -
          -
          - -

          ◆ parse_date()

          - -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          bool parse_date (int * year,
          int * month,
          int * day,
          char * s 
          )
          -
          - -

          Definition at line 172 of file nmea_parser.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - - - -
          - -
          -
          - -

          ◆ parse_double()

          - -
          -
          - - - - - - - - - - - - - - - - - - -
          bool parse_double (double * value,
          char * s 
          )
          -
          - -

          Definition at line 73 of file nmea_parser.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - -
          - -
          -
          - -

          ◆ parse_EW()

          - -
          -
          - - - - - - - - - - - - - - - - - - -
          bool parse_EW (double * value,
          char * s 
          )
          -
          - -

          Definition at line 104 of file nmea_parser.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - - - - -
          - -
          -
          - -

          ◆ parse_float()

          - -
          -
          - - - - - - - - - - - - - - - - - - -
          bool parse_float (float * value,
          char * s 
          )
          -
          - -

          Definition at line 68 of file nmea_parser.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - - - - -
          - -
          -
          - -

          ◆ parse_int()

          - -
          -
          - - - - - - - - - - - - - - - - - - -
          bool parse_int (int * value,
          char * s 
          )
          -
          - -

          Definition at line 63 of file nmea_parser.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - - -
          - -
          -
          - -

          ◆ parse_latlon()

          - -
          -
          - - - - - - - - - - - - - - - - - - -
          bool parse_latlon (double * value,
          char * s 
          )
          -
          - -

          Definition at line 78 of file nmea_parser.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - - - - -
          - -
          -
          - -

          ◆ parse_M()

          - -
          -
          - - - - - - - - -
          bool parse_M (char * s)
          -
          - -

          Definition at line 117 of file nmea_parser.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - -
          - -
          -
          - -

          ◆ parse_NS()

          - -
          -
          - - - - - - - - - - - - - - - - - - -
          bool parse_NS (double * value,
          char * s 
          )
          -
          - -

          Definition at line 91 of file nmea_parser.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - - - - -
          - -
          -
          - -

          ◆ parse_PSTI030_mode()

          - -
          -
          - - - - - - - - - - - - - - - - - - -
          bool parse_PSTI030_mode (GNSSQualityquality,
          char * s 
          )
          -
          - -

          Definition at line 135 of file nmea_parser.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - - -
          - -
          -
          - -

          ◆ parse_time()

          - -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          bool parse_time (int * hour,
          int * minute,
          float * second,
          char * s 
          )
          -
          - -

          Definition at line 167 of file nmea_parser.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - - - - -
          - -
          -
          - -

          ◆ reconstruct_nmea_sentence()

          - -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          void reconstruct_nmea_sentence (char * sentence,
          const char * buffer,
          int term_offsets[],
          int num_terms 
          )
          -
          - -

          Definition at line 38 of file nmea_parser.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - -
          - -
          -
          - -

          ◆ report_success()

          - -
          -
          - - - - - - - - - - - - - - - - - - -
          void report_success (bool ok,
          const char * sentence 
          )
          -
          - -

          Definition at line 180 of file nmea_parser.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - - - - - - -
          - -
          -
          -

          Variable Documentation

          - -

          ◆ gnssQualityStrings

          - -
          -
          - - - - -
          String gnssQualityStrings[]
          -
          -Initial value:
          = {
          "no GPS",
          "GNSS Fix",
          "DGNSS fix",
          "Precise GNSS",
          "RTK fixed integer",
          "RTK float",
          "Estimated (DR) mode",
          "Manual input",
          "Simulator mode",
          "Error"
          }
          -

          Definition at line 24 of file nmea_parser.cpp.

          - -
          -
          -
          -
          - - - - diff --git a/docs/nmea__parser_8cpp__incl.map b/docs/nmea__parser_8cpp__incl.map deleted file mode 100644 index f12521569..000000000 --- a/docs/nmea__parser_8cpp__incl.map +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/docs/nmea__parser_8cpp__incl.md5 b/docs/nmea__parser_8cpp__incl.md5 deleted file mode 100644 index 2dd27cd24..000000000 --- a/docs/nmea__parser_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -657b6a6d8871e722e607799121943c21 \ No newline at end of file diff --git a/docs/nmea__parser_8cpp__incl.png b/docs/nmea__parser_8cpp__incl.png deleted file mode 100644 index 44a6c5ea1..000000000 Binary files a/docs/nmea__parser_8cpp__incl.png and /dev/null differ diff --git a/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.md5 b/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.md5 deleted file mode 100644 index ebf6f059f..000000000 --- a/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -b04f3a1815daea7c58a14f017197b8ce \ No newline at end of file diff --git a/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.png b/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.png deleted file mode 100644 index c09a0c290..000000000 Binary files a/docs/nmea__parser_8cpp_a113615295f150c16f895c9e2525bbd6e_icgraph.png and /dev/null differ diff --git a/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.md5 b/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.md5 deleted file mode 100644 index 31d717885..000000000 --- a/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -e2a0f03619a44f02b42544211ec4965b \ No newline at end of file diff --git a/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.png b/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.png deleted file mode 100644 index 846d75e6f..000000000 Binary files a/docs/nmea__parser_8cpp_a18bf596259e1849f3b6bdbdd765ab606_icgraph.png and /dev/null differ diff --git a/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.md5 b/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.md5 deleted file mode 100644 index bdbbedd34..000000000 --- a/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -9fbd72375f1f0b002473b08bb12d5d7b \ No newline at end of file diff --git a/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.png b/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.png deleted file mode 100644 index 300b47f41..000000000 Binary files a/docs/nmea__parser_8cpp_a202c8d748e820b33d2fb1a324710698b_icgraph.png and /dev/null differ diff --git a/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.md5 b/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.md5 deleted file mode 100644 index 33fdbb1cd..000000000 --- a/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -178926c80f9bd83d96a0ed256ee407cc \ No newline at end of file diff --git a/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.png b/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.png deleted file mode 100644 index 4ac3d0e73..000000000 Binary files a/docs/nmea__parser_8cpp_a21e8f85a497e58ad08d5c473e89a8463_icgraph.png and /dev/null differ diff --git a/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.md5 b/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.md5 deleted file mode 100644 index 58e167e9e..000000000 --- a/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -06282e5b6623dbff319f8b62f0be0cb9 \ No newline at end of file diff --git a/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.png b/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.png deleted file mode 100644 index ce1ff9576..000000000 Binary files a/docs/nmea__parser_8cpp_a29c34542d9842302271bb6a0380d4d4d_icgraph.png and /dev/null differ diff --git a/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.md5 b/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.md5 deleted file mode 100644 index 1ff38a4d5..000000000 --- a/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -43968adaea3e2d276c8ade53317de798 \ No newline at end of file diff --git a/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.png b/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.png deleted file mode 100644 index d9c41c460..000000000 Binary files a/docs/nmea__parser_8cpp_a37bce694f34f625b2c3e29a1a74c1570_icgraph.png and /dev/null differ diff --git a/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.md5 b/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.md5 deleted file mode 100644 index f913b2b65..000000000 --- a/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -24163f27d5761153147e2de96a3fdd92 \ No newline at end of file diff --git a/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.png b/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.png deleted file mode 100644 index 1b72ca70c..000000000 Binary files a/docs/nmea__parser_8cpp_a3f3c4d059e6d6bcc7040f624486d37ae_icgraph.png and /dev/null differ diff --git a/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.md5 b/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.md5 deleted file mode 100644 index 4dbae38cc..000000000 --- a/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -00e7f2ff111310f4bc083841d4449d91 \ No newline at end of file diff --git a/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.png b/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.png deleted file mode 100644 index 7eaf3cfcb..000000000 Binary files a/docs/nmea__parser_8cpp_a4021e9ad227b156bfdedaa8fd938590b_icgraph.png and /dev/null differ diff --git a/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.md5 b/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.md5 deleted file mode 100644 index 37395c8a8..000000000 --- a/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -0ea213618d34f313da548c6d39a5733c \ No newline at end of file diff --git a/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.png b/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.png deleted file mode 100644 index 4bca14841..000000000 Binary files a/docs/nmea__parser_8cpp_a4de8e35130646cbb488072ff8e457126_icgraph.png and /dev/null differ diff --git a/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.md5 b/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.md5 deleted file mode 100644 index fbd826f0c..000000000 --- a/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -9302b22189d95d4e57cbb27d207fdf3a \ No newline at end of file diff --git a/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.png b/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.png deleted file mode 100644 index 97858c732..000000000 Binary files a/docs/nmea__parser_8cpp_a69a390886762ecd9593ebeada6f3e52d_icgraph.png and /dev/null differ diff --git a/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.md5 b/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.md5 deleted file mode 100644 index f97dff828..000000000 --- a/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -14ed0abe17078d474ab6cca73201baa5 \ No newline at end of file diff --git a/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.png b/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.png deleted file mode 100644 index b81cd0b77..000000000 Binary files a/docs/nmea__parser_8cpp_ac534d920f6775ddb34453e554699e1b4_icgraph.png and /dev/null differ diff --git a/docs/nmea__parser_8cpp_af394f12d9ff6fb97e4c158dac1eb6dc0_icgraph.png b/docs/nmea__parser_8cpp_af394f12d9ff6fb97e4c158dac1eb6dc0_icgraph.png deleted file mode 100644 index 759b46bc6..000000000 Binary files a/docs/nmea__parser_8cpp_af394f12d9ff6fb97e4c158dac1eb6dc0_icgraph.png and /dev/null differ diff --git a/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.md5 b/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.md5 deleted file mode 100644 index e0a1d5e42..000000000 --- a/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -11d598907b1f0c0648a832c5a9086202 \ No newline at end of file diff --git a/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.png b/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.png deleted file mode 100644 index 6a72848bd..000000000 Binary files a/docs/nmea__parser_8cpp_af7a3600deec155122015fcfedfc126a7_icgraph.png and /dev/null differ diff --git a/docs/nmea__parser_8cpp_source.html b/docs/nmea__parser_8cpp_source.html deleted file mode 100644 index e718f8ff2..000000000 --- a/docs/nmea__parser_8cpp_source.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - -SensESP: src/system/nmea_parser.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          nmea_parser.cpp
          -
          -
          -Go to the documentation of this file.
          1 
          2 #include "nmea_parser.h"
          3 
          4 #include <ctime>
          5 #include <stdlib.h>
          6 
          7 #include <RemoteDebug.h>
          8 
          9 #include "sensesp.h"
          10 
          22 };
          23 
          24 String gnssQualityStrings[] = {
          25  "no GPS",
          26  "GNSS Fix",
          27  "DGNSS fix",
          28  "Precise GNSS",
          29  "RTK fixed integer",
          30  "RTK float",
          31  "Estimated (DR) mode",
          32  "Manual input",
          33  "Simulator mode",
          34  "Error"
          35 };
          36 
          37 // reconstruct the original NMEA sentence for debugging purposes
          39  char* sentence,
          40  const char* buffer,
          41  int term_offsets[],
          42  int num_terms) {
          43 
          44  // get the total length of the sentence
          45  int last_term_loc = term_offsets[num_terms-1];
          46  int last_term_len = strlen(buffer+term_offsets[num_terms-1]);
          47  // include the final \0
          48  int sentence_len = last_term_loc + last_term_len + 1;
          49 
          50  // beginning $
          51  sentence[0] = '$';
          52  // copy the buffer contents
          53  memcpy(sentence+1, buffer, sentence_len);
          54 
          55  // fill in the gaps with commas
          56  for (int i=1; i< num_terms-1; i++) {
          57  sentence[term_offsets[i]] = ',';
          58  }
          59  // the final gap has an asterisk
          60  sentence[term_offsets[num_terms-1]] = '*';
          61 }
          62 
          63 bool parse_int(int* value, char* s) {
          64  int retval = sscanf(s, "%d", value);
          65  return retval==1;
          66 }
          67 
          68 bool parse_float(float* value, char* s) {
          69  int retval = sscanf(s, "%f", value);
          70  return retval==1;
          71 }
          72 
          73 bool parse_double(double* value, char* s) {
          74  int retval = sscanf(s, "%lf", value);
          75  return retval==1;
          76 }
          77 
          78 bool parse_latlon(double* value, char* s) {
          79  double degmin;
          80  int retval = sscanf(s, "%lf", &degmin);
          81  if (retval==1) {
          82  int degrees = degmin / 100;
          83  double minutes = degmin - 100*degrees;
          84  *value = degrees + minutes / 60;
          85  return true;
          86  } else {
          87  return false;
          88  }
          89 }
          90 
          91 bool parse_NS(double* value, char* s) {
          92  switch (*s) {
          93  case 'N':
          94  break;
          95  case 'S':
          96  *value *= 1;
          97  break;
          98  default:
          99  return false;
          100  }
          101  return true;
          102 }
          103 
          104 bool parse_EW(double* value, char* s) {
          105  switch (*s) {
          106  case 'E':
          107  break;
          108  case 'W':
          109  *value *= 1;
          110  break;
          111  default:
          112  return false;
          113  }
          114  return true;
          115 }
          116 
          117 bool parse_M(char* s) {
          118  return (*s == 'M');
          119 }
          120 
          121 bool parse_AV(bool* is_valid, char* s) {
          122  switch (*s) {
          123  case 'A':
          124  *is_valid = true;
          125  break;
          126  case 'V':
          127  *is_valid = false;
          128  break;
          129  default:
          130  return false;
          131  }
          132  return true;
          133 }
          134 
          135 bool parse_PSTI030_mode(GNSSQuality* quality, char* s) {
          136  switch (*s) {
          137  case 'N':
          138  *quality = GNSSQuality::no_gps;
          139  break;
          140  case 'A':
          141  *quality = GNSSQuality::gnss_fix;
          142  break;
          143  case 'D':
          144  *quality = GNSSQuality::dgnss_fix;
          145  break;
          146  case 'E':
          147  *quality = GNSSQuality::estimated_mode;
          148  break;
          149  case 'M':
          150  *quality = GNSSQuality::manual_input;
          151  break;
          152  case 'S':
          153  *quality = GNSSQuality::simulator_mode;
          154  break;
          155  case 'F':
          156  *quality = GNSSQuality::rtk_float;
          157  break;
          158  case 'R':
          160  break;
          161  default:
          162  return false;
          163  }
          164  return true;
          165 }
          166 
          167 bool parse_time(int* hour, int* minute, float* second, char* s) {
          168  int retval = sscanf(s, "%2d%2d%f", hour, minute, second);
          169  return retval==3;
          170 }
          171 
          172 bool parse_date(int* year, int* month, int* day, char* s) {
          173  int retval = sscanf(s, "%2d%2d%2d", day, month, year);
          174  // date expressed as C struct tm
          175  *year += 100;
          176  *month -= 1;
          177  return retval==3;
          178 }
          179 
          180 void report_success(bool ok, const char* sentence) {
          181  if (!ok) {
          182  debugI("Failed to parse %s", sentence);
          183  return;
          184  } else {
          185  debugD("Parsed sentence %s", sentence);
          186  }
          187 }
          188 
          189 void GPGGASentenceParser::parse(char* buffer, int term_offsets[], int num_terms) {
          190  bool ok = true;
          191 
          192  int hour;
          193  int minute;
          194  float second;
          195  Position position;
          196  int quality;
          197  int num_satellites;
          198  float horizontal_dilution;
          199  float geoidal_separation;
          200  float dgps_age;
          201  bool dgps_age_defined = false;
          202  int dgps_id;
          203  bool dgps_id_defined = false;
          204 
          205  // eg3. $GPGGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh
          206  // 1 = UTC of Position
          207  ok &= parse_time(&hour, &minute, &second, buffer+term_offsets[1]);
          208  // 2 = Latitude
          209  ok &= parse_latlon(&position.latitude, buffer+term_offsets[2]);
          210  // 3 = N or S
          211  ok &= parse_NS(&position.latitude, buffer+term_offsets[3]);
          212  // 4 = Longitude
          213  ok &= parse_latlon(&position.longitude, buffer+term_offsets[4]);
          214  // 5 = E or W
          215  ok &= parse_EW(&position.longitude, buffer+term_offsets[5]);
          216  // 6 = GPS quality indicator (0=invalid; 1=GPS fix; 2=Diff. GPS fix)
          217  ok &= parse_int(&quality, buffer+term_offsets[6]);
          218  // 7 = Number of satellites in use [not those in view]
          219  ok &= parse_int(&num_satellites, buffer+term_offsets[7]);
          220  // 8 = Horizontal dilution of position
          221  ok &= parse_float(&horizontal_dilution, buffer+term_offsets[8]);
          222  // 9 = Antenna altitude above/below mean sea level (geoid)
          223  ok &= parse_float(&position.altitude, buffer+term_offsets[9]);
          224  // 10 = Meters (Antenna height unit)
          225  ok &= parse_M(buffer+term_offsets[10]);
          226  // 11 = Geoidal separation (Diff. between WGS-84 earth ellipsoid and
          227  // mean sea level. -=geoid is below WGS-84 ellipsoid)
          228  ok &= parse_float(&geoidal_separation, buffer+term_offsets[11]);
          229  // 12 = Meters (Units of geoidal separation)
          230  ok &= parse_M(buffer+term_offsets[12]);
          231  // 13 = Age in seconds since last update from diff. reference station
          232  if (*(buffer+term_offsets[13])!=0) {
          233  ok &= parse_float(&dgps_age, buffer+term_offsets[13]);
          234  dgps_age_defined = true;
          235  }
          236  // 14 = Diff. reference station ID#
          237  if (*(buffer+term_offsets[14])!=0) {
          238  ok &= parse_int(&dgps_id, buffer+term_offsets[14]);
          239  dgps_id_defined = true;
          240  }
          241  // 15 = Checksum
          242  // (validated already earlier)
          243 
          244  report_success(ok, sentence());
          245  if (!ok) {
          246  return;
          247  }
          248 
          249  // notify relevant observers
          250 
          251  nmea_data->position.set(position);
          253  nmea_data->num_satellites.set(num_satellites);
          254  nmea_data->horizontal_dilution.set(horizontal_dilution);
          255  nmea_data->geoidal_separation.set(geoidal_separation);
          256  if (dgps_age_defined) {
          257  nmea_data->dgps_age.set(dgps_age);
          258  }
          259  if (dgps_id_defined) {
          260  nmea_data->dgps_id.set(dgps_id);
          261  }
          262 }
          263 
          264 void GPGLLSentenceParser::parse(char* buffer, int term_offsets[], int num_terms) {
          265  bool ok = true;
          266 
          267  Position position;
          268 
          269  // eg3. $GPGLL,5133.81,N,00042.25,W*75
          270  // 1 5133.81 Current latitude
          271  ok &= parse_latlon(&position.latitude, buffer+term_offsets[1]);
          272  // 2 N North/South
          273  ok &= parse_NS(&position.latitude, buffer+term_offsets[2]);
          274  // 3 00042.25 Current longitude
          275  ok &= parse_latlon(&position.longitude, buffer+term_offsets[3]);
          276  // 4 W East/West
          277  ok &= parse_EW(&position.longitude, buffer+term_offsets[4]);
          278 
          279  report_success(ok, sentence());
          280  if (!ok) {
          281  return;
          282  }
          283 
          284  position.altitude = -99999;
          285 
          286  // notify relevant observers
          287 
          288  nmea_data->position.set(position);
          289 }
          290 
          291 void GPRMCSentenceParser::parse(char* buffer, int term_offsets[], int num_terms) {
          292  bool ok = true;
          293 
          294  struct tm time;
          295  float second;
          296  bool is_valid;
          297  Position position;
          298  float speed;
          299  float true_course;
          300  double variation;
          301  bool variation_defined = false;
          302 
          303  // eg3. $GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,130694,004.2,W*70
          304  // 1 220516 Time Stamp
          305  ok &= parse_time(&time.tm_hour, &time.tm_min, &second, buffer+term_offsets[1]);
          306  // 2 A validity - A-ok, V-invalid
          307  ok &= parse_AV(&is_valid, buffer+term_offsets[2]);
          308  // 3 5133.82 current Latitude
          309  ok &= parse_latlon(&position.latitude, buffer+term_offsets[3]);
          310  // 4 N North/South
          311  ok &= parse_NS(&position.latitude, buffer+term_offsets[4]);
          312  // 5 00042.24 current Longitude
          313  ok &= parse_latlon(&position.longitude, buffer+term_offsets[5]);
          314  // 6 W East/West
          315  ok &= parse_EW(&position.longitude, buffer+term_offsets[6]);
          316  // 7 173.8 Speed in knots
          317  ok &= parse_float(&speed, buffer+term_offsets[7]);
          318  // 8 231.8 True course
          319  ok &= parse_float(&true_course, buffer+term_offsets[8]);
          320  // 9 130694 Date Stamp
          321  ok &= parse_date(&time.tm_year, &time.tm_mon, &time.tm_mday, buffer+term_offsets[9]);
          322  // 10 004.2 Variation
          323  if (*(buffer+term_offsets[10])!=0) {
          324  ok &= parse_double(&variation, buffer+term_offsets[10]);
          325  }
          326  // 11 W East/West
          327  if (*(buffer+term_offsets[11])!=0) {
          328  ok &= parse_EW(&variation, buffer+term_offsets[11]);
          329  variation_defined = true;
          330  }
          331 
          332  report_success(ok, sentence());
          333  if (!ok) {
          334  return;
          335  }
          336 
          337  position.altitude = -99999;
          338  time.tm_sec = (int)second;
          339  time.tm_isdst = 0;
          340 
          341  // notify relevant observers
          342 
          343  if (is_valid) {
          344  nmea_data->position.set(position);
          345  nmea_data->datetime.set(mktime(&time));
          346  nmea_data->speed.set(1852.*speed/3600.);
          347  nmea_data->true_course.set(2*PI*true_course/360.);
          348  if (variation_defined) {
          349  nmea_data->variation.set(2*PI*variation/360.);
          350  }
          351  }
          352 }
          353 
          355  char* buffer, int term_offsets[], int num_terms,
          356  std::map<String, SentenceParser*>& sentence_parsers
          357  ) {
          358  bool ok = true;
          359  int subsentence;
          360 
          361  ok &= parse_int(&subsentence, buffer+term_offsets[1]);
          362 
          363  report_success(ok, sentence());
          364  if (!ok) {
          365  return;
          366  }
          367 
          368  switch (subsentence) {
          369  case 30:
          370  sentence_parsers["PSTI,030"]->parse(buffer, term_offsets, num_terms);
          371  break;
          372  case 32:
          373  sentence_parsers["PSTI,032"]->parse(buffer, term_offsets, num_terms);
          374  break;
          375  }
          376 }
          377 
          378 void PSTI030SentenceParser::parse(char* buffer, int term_offsets[], int num_terms) {
          379  bool ok = true;
          380 
          381  struct tm time;
          382  float second;
          383  bool is_valid;
          384  Position position;
          385  ENUVector velocity;
          386  GNSSQuality quality;
          387  float rtk_age;
          388  float rtk_ratio;
          389 
          390  // Example:
          391  // $PSTI,030,044606.000,A,2447.0924110,N,12100.5227860,E,103.323,0.00,0.00,0.00,180915,R,1.2,4.2*02
          392 
          393  // note: term offsets are one larger than in the reference because
          394  // the subsentence number is at offset 1
          395 
          396  // Field Name Example Description
          397  // 1 UTC time 044606.000 UTC time in hhmmss.sss format (000000.00 ~ 235959.999)
          398  ok &= parse_time(&time.tm_hour, &time.tm_min, &second, buffer+term_offsets[2]);
          399  // 2 Status A Status
          400  // ‘V’ = Navigation receiver warning
          401  // ‘A’ = Data Valid
          402  ok &= parse_AV(&is_valid, buffer+term_offsets[3]);
          403  // 3 Latitude 2447.0924110 Latitude in dddmm.mmmmmmm format
          404  // Leading zeros transmitted
          405  ok &= parse_latlon(&position.latitude, buffer+term_offsets[4]);
          406  // 4 N/S indicator N Latitude hemisphere indicator
          407  // ‘N’ = North
          408  // ‘S’ = South
          409  ok &= parse_NS(&position.latitude, buffer+term_offsets[5]);
          410  // 5 Longitude 12100.5227860 Longitude in dddmm.mmmmmmm format
          411  // Leading zeros transmitted
          412  ok &= parse_latlon(&position.longitude, buffer+term_offsets[6]);
          413  // 6 E/W Indicator E Longitude hemisphere indicator
          414  // 'E' = East
          415  // 'W' = West
          416  ok &= parse_EW(&position.longitude, buffer+term_offsets[7]);
          417  // 7 Altitude 103.323 mean sea level (geoid), (‐9999.999 ~ 17999.999)
          418  ok &= parse_float(&position.altitude, buffer+term_offsets[8]);
          419  // 8 East Velocity 0.00 ‘East’ component of ENU velocity (m/s)
          420  ok &= parse_float(&velocity.east, buffer+term_offsets[9]);
          421  // 9 North Velocity 0.00 ‘North’ component of ENU velocity (m/s)
          422  ok &= parse_float(&velocity.north, buffer+term_offsets[10]);
          423  // 10 Up Velocity 0.00 ‘Up’ component of ENU velocity (m/s)
          424  ok &= parse_float(&velocity.up, buffer+term_offsets[11]);
          425  // 11 UTC Date 180915 UTC date of position fix, ddmmyy format
          426  ok &= parse_date(&time.tm_year, &time.tm_mon, &time.tm_mday, buffer+term_offsets[12]);
          427  // 12 Mode indicator R Mode indicator
          428  // ‘N’ = Data not valid
          429  // ‘A’ = Autonomous mode
          430  // ‘D’ = Differential mode
          431  // ‘E’ = Estimated (dead reckoning) mode
          432  // ‘M’ = Manual input mode
          433  // ‘S’ = Simulator mode
          434  // ‘F’ = Float RTK. Satellite system used in RTK mode, floating
          435  // integers
          436  // ‘R’ = Real Time Kinematic. System used in RTK mode with fixed
          437  // integers
          438  ok &= parse_PSTI030_mode(&quality, buffer+term_offsets[13]);
          439  // 13 RTK Age 1.2 Age of differential
          440  ok &= parse_float(&rtk_age, buffer+term_offsets[14]);
          441  // 14 RTK Ratio 4.2 AR ratio factor for validation
          442  ok &= parse_float(&rtk_ratio, buffer+term_offsets[15]);
          443 
          444  report_success(ok, sentence());
          445  if (!ok) {
          446  return;
          447  }
          448 
          449  time.tm_sec = (int)second;
          450  time.tm_isdst = 0;
          451 
          452  // notify relevant observers
          453 
          455  nmea_data->rtk_age.set(rtk_age);
          456  nmea_data->rtk_ratio.set(rtk_ratio);
          457 
          458  if (is_valid) {
          459  nmea_data->position.set(position);
          460  nmea_data->datetime.set(mktime(&time));
          461  nmea_data->enu_velocity.set(velocity);
          462  }
          463 }
          464 
          465 void PSTI032SentenceParser::parse(char* buffer, int term_offsets[], int num_terms) {
          466  bool ok = true;
          467 
          468  struct tm time;
          469  float second;
          470  bool is_valid = false;
          471  ENUVector projection;
          472  GNSSQuality quality;
          473  float baseline_length;
          474  float baseline_course;
          475 
          476  char reconstruction[INPUT_BUFFER_LENGTH];
          477  reconstruct_nmea_sentence(reconstruction, buffer, term_offsets, num_terms);
          478  debugD("%s", reconstruction);
          479 
          480  // Example:
          481  // $PSTI,032,041457.000,170316,A,R,0.603,‐0.837,‐0.089,1.036,144.22,,,,,*30
          482 
          483  // note: term offsets are one larger than in the reference because
          484  // the subsentence number is at offset 1
          485 
          486  // Field Name Example Description
          487  // 1 UTC time 041457.000 UTC time in hhmmss.sss format (000000.000~235959.999)
          488  ok &= parse_time(&time.tm_hour, &time.tm_min, &second, buffer+term_offsets[2]);
          489  // 2 UTC Date 170316 UTC date of position fix, ddmmyy format
          490  ok &= parse_date(&time.tm_year, &time.tm_mon, &time.tm_mday, buffer+term_offsets[3]);
          491  // 3 Status A
          492  // Status
          493  // ‘V’ = Void
          494  // ‘A’ = Active
          495  ok &= parse_AV(&is_valid, buffer+term_offsets[4]);
          496  if (is_valid) {
          497  // 4 Mode indicator R
          498  // Mode indicator
          499  // ‘F’ = Float RTK. System used in RTK mode with float ambiguity
          500  // ‘R’ = Real Time Kinematic. System used in RTK mode with fixed
          501  // ambiguity
          502  ok &= parse_PSTI030_mode(&quality, buffer+term_offsets[5]);
          503  // 5 East‐projection of
          504  // baseline 0.603 East‐projection of baseline, meters
          505  ok &= parse_float(&projection.east, buffer+term_offsets[6]);
          506  // 6 North‐projection of
          507  // baseline ‐0.837 North‐projection of baseline, meters
          508  ok &= parse_float(&projection.north, buffer+term_offsets[7]);
          509  // 7 Up‐projection of
          510  // baseline ‐0.089 Up‐projection of baseline, meters
          511  ok &= parse_float(&projection.up, buffer+term_offsets[8]);
          512  // 8 Baseline length 1.036 Baseline length, meters
          513  ok &= parse_float(&baseline_length, buffer+term_offsets[9]);
          514  // 9 Baseline course 144.22
          515  // Baseline course (angle between baseline vector and north
          516  // direction), degrees
          517  ok &= parse_float(&baseline_course, buffer+term_offsets[10]);
          518  // 10 Reserve Reserve
          519  // 11 Reserve Reserve
          520  // 12 Reserve Reserve
          521  // 13 Reserve Reserve
          522  // 14 Reserve Reserve
          523  }
          524 
          525  report_success(ok, sentence());
          526  if (!ok) {
          527  return;
          528  }
          529 
          530  time.tm_sec = (int)second;
          531  time.tm_isdst = 0;
          532 
          533  if (is_valid) {
          534  nmea_data->datetime.set(mktime(&time));
          535  nmea_data->baseline_projection.set(projection);
          536  nmea_data->baseline_length.set(baseline_length);
          537  nmea_data->baseline_course.set(2*PI*baseline_course/360.);
          539  }
          540 }
          541 
          543 
          545  term_offsets[0] = 0;
          546  current_state = &NMEAParser::state_start;
          547 }
          548 
          550  const char* sentence = parser->sentence();
          551  sentence_parsers[sentence] = parser;
          552 }
          553 
          554 void NMEAParser::handle(char c) {
          555  (this->*(current_state))(c);
          556 }
          557 
          558 void NMEAParser::state_start(char c) {
          559  switch (c) {
          560  case '$':
          561  cur_offset = 0;
          562  cur_term = 0;
          563  current_state = &NMEAParser::state_in_term;
          564  parity = 0;
          565  break;
          566  default:
          567  //anything else can be ignored
          568  break;
          569  }
          570 }
          571 
          572 void NMEAParser::state_in_term(char c) {
          573  switch (c) {
          574  case ',':
          575  case '*':
          576  if (cur_offset<INPUT_BUFFER_LENGTH) {
          577  // split terms with 0 to help further processing
          578  buffer[cur_offset++] = 0;
          579  } else {
          580  current_state = &NMEAParser::state_start;
          581  break;
          582  }
          583  if (cur_term<MAX_TERMS) {
          584  // advance term offset
          585  term_offsets[++cur_term] = cur_offset;
          586  } else {
          587  current_state = &NMEAParser::state_start;
          588  break;
          589  }
          590  if (c=='*') {
          591  current_state = &NMEAParser::state_in_checksum;
          592  } else {
          593  parity ^= c;
          594  }
          595  break;
          596  case '\r':
          597  case '\n':
          598  // end of sentence before checksum has been read
          599  buffer[cur_offset++] = 0;
          600  current_state = &NMEAParser::state_start;
          601  break;
          602  default:
          603  // read term characters
          604  buffer[cur_offset++] = c;
          605  parity ^= c;
          606  break;
          607  }
          608 }
          609 
          610 void NMEAParser::state_in_checksum(char c) {
          611  switch (c) {
          612  case ',':
          613  case '*':
          614  // there shouldn't be new terms after the checksum
          615  current_state = &NMEAParser::state_start;
          616  case '\r':
          617  case '\n':
          618  // end of sentence
          619  buffer[cur_offset++] = 0;
          620  if (!validate_checksum()) {
          621  current_state = &NMEAParser::state_start;
          622  return;
          623  }
          624  // call the relevant sentence parser
          625  if (sentence_parsers.find(buffer) == sentence_parsers.end()) {
          626  debugD("Parser not found for sentence %s", buffer);
          627  } else {
          628  sentence_parsers[buffer]->parse(buffer, term_offsets, cur_term+1,
          629  sentence_parsers);
          630  }
          631  current_state = &NMEAParser::state_start;
          632  break;
          633  default:
          634  // read term characters
          635  buffer[cur_offset++] = c;
          636  break;
          637  }
          638 }
          639 
          640 bool NMEAParser::validate_checksum() {
          641  char* checksum_str = buffer + term_offsets[cur_term];
          642  int checksum;
          643  sscanf(checksum_str, "%2x", &checksum);
          644  return this->parity==checksum;
          645 }
          -
          ObservableValue< ENUVector > enu_velocity
          Definition: nmea_parser.h:37
          -
          const char * sentence()
          Definition: nmea_parser.h:109
          -
          bool parse_float(float *value, char *s)
          Definition: nmea_parser.cpp:68
          -
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          Definition: nmea_parser.h:96
          -
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          - - -
          bool parse_EW(double *value, char *s)
          -
          const char * sentence()
          Definition: nmea_parser.h:65
          -
          void reconstruct_nmea_sentence(char *sentence, const char *buffer, int term_offsets[], int num_terms)
          Definition: nmea_parser.cpp:38
          -
          GNSSQuality
          Definition: nmea_parser.cpp:11
          - - -
          const char * sentence()
          Definition: nmea_parser.h:101
          -
          ObservableValue< float > rtk_ratio
          Definition: nmea_parser.h:39
          -
          float up
          Definition: nmea_parser.h:22
          -
          virtual const char * sentence()=0
          - -
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          -
          float east
          Definition: nmea_parser.h:20
          -
          constexpr int INPUT_BUFFER_LENGTH
          Definition: nmea_parser.h:10
          -
          const char * sentence()
          Definition: nmea_parser.h:81
          - -
          ObservableValue< float > dgps_age
          Definition: nmea_parser.h:31
          -
          ObservableValue< float > horizontal_dilution
          Definition: nmea_parser.h:29
          -
          constexpr int MAX_TERMS
          Definition: nmea_parser.h:11
          - - -
          bool parse_double(double *value, char *s)
          Definition: nmea_parser.cpp:73
          -
          ObservableValue< int > num_satellites
          Definition: nmea_parser.h:28
          -
          ObservableValue< Position > position
          Definition: nmea_parser.h:26
          -
          float altitude
          Definition: nmea_parser.h:16
          -
          ObservableValue< float > dgps_id
          Definition: nmea_parser.h:32
          -
          bool parse_latlon(double *value, char *s)
          Definition: nmea_parser.cpp:78
          - - -
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          -
          ObservableValue< float > baseline_course
          Definition: nmea_parser.h:42
          -
          bool parse_AV(bool *is_valid, char *s)
          -
          void add_sentence_parser(SentenceParser *parser)
          -
          bool parse_NS(double *value, char *s)
          Definition: nmea_parser.cpp:91
          - -
          bool parse_time(int *hour, int *minute, float *second, char *s)
          -
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          -
          ObservableValue< float > variation
          Definition: nmea_parser.h:36
          -
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          -
          double longitude
          Definition: nmea_parser.h:15
          -
          double latitude
          Definition: nmea_parser.h:14
          -
          NMEAData * nmea_data
          Definition: nmea_parser.h:57
          -
          ObservableValue< String > gnss_quality
          Definition: nmea_parser.h:27
          -
          ObservableValue< ENUVector > baseline_projection
          Definition: nmea_parser.h:40
          -
          ObservableValue< float > geoidal_separation
          Definition: nmea_parser.h:30
          - - -
          bool parse_date(int *year, int *month, int *day, char *s)
          -
          SentenceParser(NMEAData *nmea_data)
          -
          const char * sentence()
          Definition: nmea_parser.h:117
          -
          bool parse_PSTI030_mode(GNSSQuality *quality, char *s)
          -
          void handle(char c)
          -
          ObservableValue< float > baseline_length
          Definition: nmea_parser.h:41
          - -
          void report_success(bool ok, const char *sentence)
          - -
          const char * sentence()
          Definition: nmea_parser.h:73
          -
          void set(const T &value)
          -
          ObservableValue< float > true_course
          Definition: nmea_parser.h:35
          -
          bool parse_M(char *s)
          -
          ObservableValue< float > speed
          Definition: nmea_parser.h:34
          -
          bool parse_int(int *value, char *s)
          Definition: nmea_parser.cpp:63
          -
          String gnssQualityStrings[]
          Definition: nmea_parser.cpp:24
          -
          float north
          Definition: nmea_parser.h:21
          - -
          ObservableValue< time_t > datetime
          Definition: nmea_parser.h:33
          -
          ObservableValue< float > rtk_age
          Definition: nmea_parser.h:38
          -
          -
          - - - - diff --git a/docs/nmea__parser_8h__dep__incl.md5 b/docs/nmea__parser_8h__dep__incl.md5 deleted file mode 100644 index c493317e5..000000000 --- a/docs/nmea__parser_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -a4a4393e080a74a590f849e357de2eb9 \ No newline at end of file diff --git a/docs/nmea__parser_8h__dep__incl.png b/docs/nmea__parser_8h__dep__incl.png deleted file mode 100644 index b63e138b2..000000000 Binary files a/docs/nmea__parser_8h__dep__incl.png and /dev/null differ diff --git a/docs/nmea__parser_8h__incl.map b/docs/nmea__parser_8h__incl.map deleted file mode 100644 index ef60546ae..000000000 --- a/docs/nmea__parser_8h__incl.map +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/docs/nmea__parser_8h__incl.md5 b/docs/nmea__parser_8h__incl.md5 deleted file mode 100644 index 24a763050..000000000 --- a/docs/nmea__parser_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -1d7ffa04d9e4752e759a935d9a6a8278 \ No newline at end of file diff --git a/docs/nmea__parser_8h__incl.png b/docs/nmea__parser_8h__incl.png deleted file mode 100644 index 48b924635..000000000 Binary files a/docs/nmea__parser_8h__incl.png and /dev/null differ diff --git a/docs/nmea__parser_8h_source.html b/docs/nmea__parser_8h_source.html deleted file mode 100644 index 5585b6004..000000000 --- a/docs/nmea__parser_8h_source.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - -SensESP: src/system/nmea_parser.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          nmea_parser.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _nmea_parser_H_
          2 #define _nmea_parser_H_
          3 
          4 #include "Arduino.h"
          5 
          6 #include <map>
          7 
          8 #include "observablevalue.h"
          9 
          10 constexpr int INPUT_BUFFER_LENGTH = 250;
          11 constexpr int MAX_TERMS = 25;
          12 
          13 struct Position {
          14  double latitude;
          15  double longitude;
          16  float altitude;
          17 };
          18 
          19 struct ENUVector {
          20  float east;
          21  float north;
          22  float up;
          23 };
          24 
          25 struct NMEAData {
          43 };
          44 
          46  public:
          48  virtual void parse(char* buffer, int term_offsets[], int num_terms) = 0;
          49  virtual void parse(
          50  char* buffer, int term_offsets[], int num_terms,
          51  std::map<String, SentenceParser*>& sentence_parsers
          52  ) {
          53  parse(buffer, term_offsets, num_terms);
          54  }
          55  virtual const char* sentence() = 0;
          56  protected:
          58  private:
          59 };
          60 
          62  public:
          64  void parse(char* buffer, int term_offsets[], int num_terms) override final;
          65  const char* sentence() { return "GPGGA"; }
          66  private:
          67 };
          68 
          70  public:
          72  void parse(char* buffer, int term_offsets[], int num_terms) override final;
          73  const char* sentence() { return "GPGLL"; }
          74  private:
          75 };
          76 
          78  public:
          80  void parse(char* buffer, int term_offsets[], int num_terms) override final;
          81  const char* sentence() { return "GPRMC"; }
          82  private:
          83 };
          84 
          85 //class GPVTGSentenceParser : public SentenceParser {
          86 // public:
          87 // GPVTGSentenceParser(NMEAData* nmea_data) : SentenceParser{nmea_data} {}
          88 // void parse(char* buffer, int term_offsets[], int num_terms) override final;
          89 // const char* sentence() { return "GPVTG"; }
          90 // private:
          91 //};
          92 
          94  public:
          96  void parse(char* buffer, int term_offsets[], int num_terms) override final {}
          97  void parse(
          98  char* buffer, int term_offsets[], int num_terms,
          99  std::map<String, SentenceParser*>& sentence_parsers
          100  );
          101  const char* sentence() { return "PSTI"; }
          102  private:
          103 };
          104 
          106  public:
          108  void parse(char* buffer, int term_offsets[], int num_terms) override final;
          109  const char* sentence() { return "PSTI,030"; }
          110  private:
          111 };
          112 
          114  public:
          116  void parse(char* buffer, int term_offsets[], int num_terms) override final;
          117  const char* sentence() { return "PSTI,032"; }
          118  private:
          119 };
          120 
          121 class NMEAParser {
          122 public:
          123  NMEAParser();
          124  void handle(char c);
          125  void add_sentence_parser(SentenceParser* parser);
          126 private:
          127  void (NMEAParser::* current_state) (char);
          128  void state_start(char c);
          129  void state_in_term(char c);
          130  void state_in_checksum(char c);
          131  // current sentence
          132  char buffer[INPUT_BUFFER_LENGTH];
          133  // offset for each sentence term in the buffer
          134  int term_offsets[MAX_TERMS];
          135  // pointer for the next character in buffer
          136  int cur_offset;
          137  // pointer for the current term in buffer
          138  int cur_term;
          139  int parity;
          140  bool validate_checksum();
          141  std::map<String, SentenceParser*> sentence_parsers;
          142 };
          143 
          144 
          145 #endif
          -
          ObservableValue< ENUVector > enu_velocity
          Definition: nmea_parser.h:37
          -
          const char * sentence()
          Definition: nmea_parser.h:109
          - -
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          Definition: nmea_parser.h:96
          -
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          -
          GPGLLSentenceParser(NMEAData *nmea_data)
          Definition: nmea_parser.h:71
          -
          virtual void parse(char *buffer, int term_offsets[], int num_terms)=0
          - -
          const char * sentence()
          Definition: nmea_parser.h:65
          - - -
          const char * sentence()
          Definition: nmea_parser.h:101
          -
          ObservableValue< float > rtk_ratio
          Definition: nmea_parser.h:39
          -
          float up
          Definition: nmea_parser.h:22
          - -
          virtual const char * sentence()=0
          -
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          -
          float east
          Definition: nmea_parser.h:20
          -
          constexpr int INPUT_BUFFER_LENGTH
          Definition: nmea_parser.h:10
          -
          const char * sentence()
          Definition: nmea_parser.h:81
          -
          ObservableValue< float > dgps_age
          Definition: nmea_parser.h:31
          -
          ObservableValue< float > horizontal_dilution
          Definition: nmea_parser.h:29
          -
          constexpr int MAX_TERMS
          Definition: nmea_parser.h:11
          - -
          PSTISentenceParser(NMEAData *nmea_data)
          Definition: nmea_parser.h:95
          -
          ObservableValue< int > num_satellites
          Definition: nmea_parser.h:28
          -
          ObservableValue< Position > position
          Definition: nmea_parser.h:26
          -
          float altitude
          Definition: nmea_parser.h:16
          -
          ObservableValue< float > dgps_id
          Definition: nmea_parser.h:32
          - -
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          -
          ObservableValue< float > baseline_course
          Definition: nmea_parser.h:42
          -
          void add_sentence_parser(SentenceParser *parser)
          -
          GPRMCSentenceParser(NMEAData *nmea_data)
          Definition: nmea_parser.h:79
          -
          GPGGASentenceParser(NMEAData *nmea_data)
          Definition: nmea_parser.h:63
          - -
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          -
          ObservableValue< float > variation
          Definition: nmea_parser.h:36
          -
          void parse(char *buffer, int term_offsets[], int num_terms) override final
          -
          double longitude
          Definition: nmea_parser.h:15
          -
          PSTI032SentenceParser(NMEAData *nmea_data)
          Definition: nmea_parser.h:115
          -
          PSTI030SentenceParser(NMEAData *nmea_data)
          Definition: nmea_parser.h:107
          -
          double latitude
          Definition: nmea_parser.h:14
          -
          NMEAData * nmea_data
          Definition: nmea_parser.h:57
          - -
          ObservableValue< String > gnss_quality
          Definition: nmea_parser.h:27
          -
          ObservableValue< ENUVector > baseline_projection
          Definition: nmea_parser.h:40
          - - -
          ObservableValue< float > geoidal_separation
          Definition: nmea_parser.h:30
          - -
          SentenceParser(NMEAData *nmea_data)
          -
          const char * sentence()
          Definition: nmea_parser.h:117
          -
          void handle(char c)
          -
          virtual void parse(char *buffer, int term_offsets[], int num_terms, std::map< String, SentenceParser * > &sentence_parsers)
          Definition: nmea_parser.h:49
          -
          ObservableValue< float > baseline_length
          Definition: nmea_parser.h:41
          - -
          const char * sentence()
          Definition: nmea_parser.h:73
          -
          ObservableValue< float > true_course
          Definition: nmea_parser.h:35
          -
          ObservableValue< float > speed
          Definition: nmea_parser.h:34
          -
          float north
          Definition: nmea_parser.h:21
          -
          ObservableValue< time_t > datetime
          Definition: nmea_parser.h:33
          -
          ObservableValue< float > rtk_age
          Definition: nmea_parser.h:38
          -
          -
          - - - - diff --git a/docs/observable_8cpp__incl.md5 b/docs/observable_8cpp__incl.md5 deleted file mode 100644 index db94267d4..000000000 --- a/docs/observable_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -0e1df1a3c2cdaed4a16e2ec00e60c637 \ No newline at end of file diff --git a/docs/observable_8cpp__incl.png b/docs/observable_8cpp__incl.png deleted file mode 100644 index 57bba8335..000000000 Binary files a/docs/observable_8cpp__incl.png and /dev/null differ diff --git a/docs/observable_8cpp_source.html b/docs/observable_8cpp_source.html deleted file mode 100644 index ab15048ff..000000000 --- a/docs/observable_8cpp_source.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - -SensESP: src/system/observable.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          observable.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "observable.h"
          2 
          4  for (auto o: observers) {
          5  o();
          6  }
          7 }
          8 
          9 void Observable::attach(std::function<void()> observer) {
          10  observers.push_front(observer);
          11 }
          -
          void notify()
          Definition: observable.cpp:3
          -
          void attach(std::function< void()> observer)
          Definition: observable.cpp:9
          -
          -
          - - - - diff --git a/docs/observable_8h.html b/docs/observable_8h.html deleted file mode 100644 index dd0a8ff0d..000000000 --- a/docs/observable_8h.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - -SensESP: src/system/observable.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          observable.h File Reference
          -
          -
          -
          #include <forward_list>
          -#include <functional>
          -#include <vector>
          -
          -Include dependency graph for observable.h:
          -
          -
          - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  Observable
           
          -
          -
          - - - - diff --git a/docs/observable_8h__dep__incl.map b/docs/observable_8h__dep__incl.map deleted file mode 100644 index b2105f359..000000000 --- a/docs/observable_8h__dep__incl.map +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/observable_8h__dep__incl.md5 b/docs/observable_8h__dep__incl.md5 deleted file mode 100644 index 7a58a7d9d..000000000 --- a/docs/observable_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -e3ad774f8f4f8a6994bf4cc4f764ba45 \ No newline at end of file diff --git a/docs/observable_8h__dep__incl.png b/docs/observable_8h__dep__incl.png deleted file mode 100644 index 64da48d17..000000000 Binary files a/docs/observable_8h__dep__incl.png and /dev/null differ diff --git a/docs/observable_8h__incl.md5 b/docs/observable_8h__incl.md5 deleted file mode 100644 index 66618f389..000000000 --- a/docs/observable_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -49d31f24207360b71fbf39328688825c \ No newline at end of file diff --git a/docs/observable_8h__incl.png b/docs/observable_8h__incl.png deleted file mode 100644 index b85862041..000000000 Binary files a/docs/observable_8h__incl.png and /dev/null differ diff --git a/docs/observable_8h_source.html b/docs/observable_8h_source.html deleted file mode 100644 index 9103ac12c..000000000 --- a/docs/observable_8h_source.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - -SensESP: src/system/observable.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          observable.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _observable_H_
          2 #define _observable_H_
          3 
          4 #include <forward_list>
          5 #include <functional>
          6 #include <vector>
          7 
          8 
          10 // Observables are classes which allow observers
          11 // to attach callbacks to themselves. The callbacks
          12 // will be called when the observable needs to
          13 // notify the observers about some state change.
          14 
          15 class Observable {
          16  public:
          17  void notify();
          18  void attach(std::function<void()> observer);
          19  private:
          20  std::forward_list < std::function<void()> > observers;
          21 };
          22 
          23 #endif
          void notify()
          Definition: observable.cpp:3
          - -
          void attach(std::function< void()> observer)
          Definition: observable.cpp:9
          -
          -
          - - - - diff --git a/docs/observablevalue_8h.html b/docs/observablevalue_8h.html deleted file mode 100644 index 6dda98e6a..000000000 --- a/docs/observablevalue_8h.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - -SensESP: src/system/observablevalue.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          observablevalue.h File Reference
          -
          -
          -
          #include "observable.h"
          -#include "valueproducer.h"
          -
          -Include dependency graph for observablevalue.h:
          -
          -
          - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  ObservableValue< T >
           
          -
          -
          - - - - diff --git a/docs/observablevalue_8h__dep__incl.map b/docs/observablevalue_8h__dep__incl.map deleted file mode 100644 index e59290615..000000000 --- a/docs/observablevalue_8h__dep__incl.map +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/docs/observablevalue_8h__dep__incl.md5 b/docs/observablevalue_8h__dep__incl.md5 deleted file mode 100644 index fcfbfc465..000000000 --- a/docs/observablevalue_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -96a7ad53f78395e0ec7bf17250cb613f \ No newline at end of file diff --git a/docs/observablevalue_8h__dep__incl.png b/docs/observablevalue_8h__dep__incl.png deleted file mode 100644 index b7e984e02..000000000 Binary files a/docs/observablevalue_8h__dep__incl.png and /dev/null differ diff --git a/docs/observablevalue_8h__incl.map b/docs/observablevalue_8h__incl.map deleted file mode 100644 index 8d6c69d49..000000000 --- a/docs/observablevalue_8h__incl.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/observablevalue_8h__incl.md5 b/docs/observablevalue_8h__incl.md5 deleted file mode 100644 index 82ad3519d..000000000 --- a/docs/observablevalue_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -58fc18fe40e37939f74941c535eee44a \ No newline at end of file diff --git a/docs/observablevalue_8h__incl.png b/docs/observablevalue_8h__incl.png deleted file mode 100644 index d8e6a0f6e..000000000 Binary files a/docs/observablevalue_8h__incl.png and /dev/null differ diff --git a/docs/observablevalue_8h_source.html b/docs/observablevalue_8h_source.html deleted file mode 100644 index 857770b8a..000000000 --- a/docs/observablevalue_8h_source.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -SensESP: src/system/observablevalue.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          observablevalue.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _observablevalue_H
          2 #define _observablevalue_H
          3 
          4 #include "observable.h"
          5 #include "valueproducer.h"
          6 
          8 // ObservableValue is simply a value that notifies its observers if
          9 // it gets changed.
          10 
          11 template <class T>
          12 class ObservableValue : public ValueProducer<T> {
          13  public:
          15 
          16  ObservableValue(const T& value) {
          18  }
          19 
          20  void set(const T& value) {
          23  }
          24 
          25  const T& operator=(const T& value) {
          26  set(value);
          27  return value;
          28  }
          29 
          30 };
          31 
          32 
          33 #endif
          ObservableValue(const T &value)
          - -
          void notify()
          Definition: observable.cpp:3
          - - - - -
          void set(const T &value)
          -
          const T & operator=(const T &value)
          -
          -
          - - - - diff --git a/docs/onewire__temperature_8cpp__incl.map b/docs/onewire__temperature_8cpp__incl.map deleted file mode 100644 index 9b05f5414..000000000 --- a/docs/onewire__temperature_8cpp__incl.map +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/onewire__temperature_8cpp__incl.md5 b/docs/onewire__temperature_8cpp__incl.md5 deleted file mode 100644 index e04714baa..000000000 --- a/docs/onewire__temperature_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -8d6c6b3e3109fa6fb2c6ee23ea37766d \ No newline at end of file diff --git a/docs/onewire__temperature_8cpp__incl.png b/docs/onewire__temperature_8cpp__incl.png deleted file mode 100644 index 3e06640c5..000000000 Binary files a/docs/onewire__temperature_8cpp__incl.png and /dev/null differ diff --git a/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.md5 b/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.md5 deleted file mode 100644 index c4f6fe8ee..000000000 --- a/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -8afc871675af1636ba6cbc47e04b17a5 \ No newline at end of file diff --git a/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.png b/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.png deleted file mode 100644 index 319d4d892..000000000 Binary files a/docs/onewire__temperature_8cpp_a2ea2a536fdbbb476ae3fb824d73d3e1a_icgraph.png and /dev/null differ diff --git a/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.md5 b/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.md5 deleted file mode 100644 index 037ed225d..000000000 --- a/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -2a55ea48d542f66478646859b4c19f86 \ No newline at end of file diff --git a/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.png b/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.png deleted file mode 100644 index 71cd844b0..000000000 Binary files a/docs/onewire__temperature_8cpp_ad0134b3041182b5f8c3004025183e6eb_icgraph.png and /dev/null differ diff --git a/docs/onewire__temperature_8cpp_source.html b/docs/onewire__temperature_8cpp_source.html deleted file mode 100644 index a17484d75..000000000 --- a/docs/onewire__temperature_8cpp_source.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - -SensESP: src/sensors/onewire_temperature.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          onewire_temperature.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "onewire_temperature.h"
          2 
          3 #include <algorithm>
          4 
          5 #include <DallasTemperature.h>
          6 #include <OneWire.h>
          7 
          8 #include "sensor.h"
          9 #include "sensesp.h"
          10 
          11 const OWDevAddr null_ow_addr = {0, 0, 0, 0, 0, 0, 0, 0};
          12 
          13 void owda_to_string(char* str, const OWDevAddr& addr) {
          14  // brute force it
          15  sprintf(str,
          16  "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
          17  addr[0], addr[1], addr[2], addr[3],
          18  addr[4], addr[5], addr[6], addr[7]);
          19 }
          20 
          21 bool string_to_owda(OWDevAddr* addr, const char* str) {
          22  // brute force it
          23  uint vals[8];
          24  int num_items = sscanf(str,
          25  "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
          26  &vals[0], &vals[1], &vals[2], &vals[3],
          27  &vals[4], &vals[5], &vals[6], &vals[7]);
          28  for (int i=0; i<8; i++) {
          29  (*addr)[i] = vals[i];
          30  }
          31  return num_items==8;
          32 }
          33 
          35  int pin, String config_path)
          36  : Sensor(config_path) {
          37  className = "DallasTemperatureSensor";
          38  onewire = new OneWire(pin);
          39  sensors = new DallasTemperature(onewire);
          40  sensors->begin();
          41 
          42  // getDeviceCount() is a method of DallasTemperature
          43  // and can't be renamed to conform to the SensESP
          44  // nomenclature
          45  int num_sensors = sensors->getDeviceCount();
          46  debugI("OneWire sensors found: %d", num_sensors);
          47 
          48  DeviceAddress addr;
          49  OWDevAddr owda;
          50  for (int i=0; i<num_sensors; i++) {
          51  sensors->getAddress(addr, i);
          52  std::copy(std::begin(addr), std::end(addr), std::begin(owda));
          53  known_addresses.insert(owda);
          54  #ifndef DEBUG_DISABLED
          55  char addrstr[24];
          56  owda_to_string(addrstr, owda);
          57  debugI("Found OneWire sensor %s", addrstr);
          58  #endif
          59  }
          60 
          61  // all conversions will by async
          62  sensors->setWaitForConversion(false);
          63  // always use maximum resolution
          64  sensors->setResolution(12);
          65 }
          66 
          68  auto search_known = known_addresses.find(addr);
          69  if (search_known == known_addresses.end()) {
          70  // address is not known
          71  return false;
          72  }
          73  auto search_reg = registered_addresses.find(addr);
          74  if (search_reg != registered_addresses.end()) {
          75  // address is already registered
          76  return false;
          77  }
          78 
          79  registered_addresses.insert(addr);
          80  return true;
          81 }
          82 
          84  // find the next address from known_addresses which is
          85  // not present in registered_addresses
          86  for (auto known : known_addresses) {
          87  auto reg_it = registered_addresses.find(known);
          88  if (reg_it == registered_addresses.end()) {
          89  *addr = known;
          90  return true;
          91  }
          92  }
          93  return false;
          94 }
          95 
          97  DallasTemperatureSensors* dts, String config_path)
          98  : NumericSensor(config_path), dts{dts} {
          99  className = "OneWireTemperature";
          100  load_configuration();
          101  if (address==null_ow_addr) {
          102  // previously unconfigured sensor
          103  bool success = dts->get_next_address(&address);
          104  if (!success) {
          105  debugE("FATAL: Unable to allocate a OneWire sensor for %s. "
          106  "All sensors have already been configured. "
          107  "Check the physical wiring of your sensors.",
          108  config_path.c_str());
          109  found = false;
          110  } else {
          111  debugD("Registered a new OneWire sensor");
          112  dts->register_address(address);
          113  }
          114  } else {
          115  bool success = dts->register_address(address);
          116  if (!success) {
          117  char addrstr[24];
          118  owda_to_string(addrstr, address);
          119  debugE("FATAL: OneWire sensor %s at %s is missing. "
          120  "Check the physical wiring of your sensors.",
          121  config_path.c_str(), addrstr);
          122  found = false;
          123  }
          124  }
          125 }
          126 
          128  if (found) {
          129  app.onRepeat(1000, [this](){ this->update(); });
          130  }
          131 }
          132 
          133 void OneWireTemperature::update() {
          134  dts->sensors->requestTemperaturesByAddress(address.data());
          135 
          136  app.onDelay(750, [this](){ this->read_value(); });
          137 }
          138 
          139 void OneWireTemperature::read_value() {
          140  // getTempC returns degrees Celsius but SignalK expects Kelvins
          141  output = dts->sensors->getTempC(address.data()) + 273.15;
          142  this->notify();
          143 }
          144 
          145 JsonObject& OneWireTemperature::get_configuration(JsonBuffer& buf) {
          146  JsonObject& root = buf.createObject();
          147  root.set("value", output);
          148  char addr_str[24];
          149  owda_to_string(addr_str, address);
          150  root.set("address", addr_str);
          151  root.set("found", found);
          152  return root;
          153 }
          154 
          155 static const char SCHEMA[] PROGMEM = R"({
          156  "type": "object",
          157  "properties": {
          158  "address": { "title": "OneWire address", "type": "string" },
          159  "found": { "title": "Device found", "type": "boolean", "readOnly": true },
          160  "value": { "title": "Last value", "type" : "number", "readOnly": true }
          161  }
          162  })";
          163 
          165  return FPSTR(SCHEMA);
          166 }
          167 
          168 bool OneWireTemperature::set_configuration(const JsonObject& config) {
          169  if (!config.containsKey("address")) {
          170  return false;
          171  }
          172  string_to_owda(&address, config["address"]);
          173  return true;
          174 }
          Definition: sensor.h:15
          -
          DallasTemperatureSensors(int pin, String config_path="")
          -
          virtual String get_config_schema() override
          -
          bool string_to_owda(OWDevAddr *addr, const char *str)
          -
          bool get_next_address(OWDevAddr *addr)
          -
          virtual bool set_configuration(const JsonObject &config) override final
          -
          void notify()
          Definition: observable.cpp:3
          - - -
          bool register_address(const OWDevAddr &addr)
          -
          const OWDevAddr null_ow_addr
          -
          void owda_to_string(char *str, const OWDevAddr &addr)
          -
          OneWireTemperature(DallasTemperatureSensors *dts, String config_path="")
          -
          DallasTemperature * sensors
          - - - -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override final
          -
          void enable() override final
          -
          const char * className
          Definition: enable.h:55
          -
          const char PAGE_index [] PROGMEM
          Definition: index.h:2
          - -
          ReactESP app
          -
          std::array< uint8_t, 8 > OWDevAddr
          -
          -
          - - - - diff --git a/docs/onewire__temperature_8h.html b/docs/onewire__temperature_8h.html deleted file mode 100644 index 5dbf8d5b7..000000000 --- a/docs/onewire__temperature_8h.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - -SensESP: src/sensors/onewire_temperature.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          onewire_temperature.h File Reference
          -
          -
          -
          #include <set>
          -#include <DallasTemperature.h>
          -#include <OneWire.h>
          -#include "sensor.h"
          -
          -Include dependency graph for onewire_temperature.h:
          -
          -
          - - - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - - - -

          -Classes

          class  DallasTemperatureSensors
           
          class  OneWireTemperature
           
          - - - -

          -Typedefs

          typedef std::array< uint8_t, 8 > OWDevAddr
           
          -

          Typedef Documentation

          - -

          ◆ OWDevAddr

          - -
          -
          - - - - -
          typedef std::array<uint8_t, 8> OWDevAddr
          -
          - -

          Definition at line 11 of file onewire_temperature.h.

          - -
          -
          -
          -
          - - - - diff --git a/docs/onewire__temperature_8h__dep__incl.md5 b/docs/onewire__temperature_8h__dep__incl.md5 deleted file mode 100644 index 3480727b1..000000000 --- a/docs/onewire__temperature_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -744a287e2bb6ded8dd9848f33f90969c \ No newline at end of file diff --git a/docs/onewire__temperature_8h__dep__incl.png b/docs/onewire__temperature_8h__dep__incl.png deleted file mode 100644 index 505806c75..000000000 Binary files a/docs/onewire__temperature_8h__dep__incl.png and /dev/null differ diff --git a/docs/onewire__temperature_8h__incl.map b/docs/onewire__temperature_8h__incl.map deleted file mode 100644 index 1386f8921..000000000 --- a/docs/onewire__temperature_8h__incl.map +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/docs/onewire__temperature_8h__incl.md5 b/docs/onewire__temperature_8h__incl.md5 deleted file mode 100644 index cc0d22b12..000000000 --- a/docs/onewire__temperature_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -9f3327d8b80fb1bc9f27ce73776d63bf \ No newline at end of file diff --git a/docs/onewire__temperature_8h__incl.png b/docs/onewire__temperature_8h__incl.png deleted file mode 100644 index 832b41c29..000000000 Binary files a/docs/onewire__temperature_8h__incl.png and /dev/null differ diff --git a/docs/onewire__temperature_8h_source.html b/docs/onewire__temperature_8h_source.html deleted file mode 100644 index ce883a030..000000000 --- a/docs/onewire__temperature_8h_source.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -SensESP: src/sensors/onewire_temperature.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          onewire_temperature.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _onewire_H_
          2 #define _onewire_H_
          3 
          4 #include <set>
          5 
          6 #include <DallasTemperature.h>
          7 #include <OneWire.h>
          8 
          9 #include "sensor.h"
          10 
          11 typedef std::array<uint8_t, 8> OWDevAddr;
          12 
          14  public:
          15  DallasTemperatureSensors(int pin, String config_path="");
          16  void enable() override final {}
          17  bool register_address(const OWDevAddr& addr);
          18  bool get_next_address(OWDevAddr* addr);
          19  DallasTemperature* sensors;
          20  private:
          21  OneWire* onewire;
          22  uint8_t next_sensor = 0;
          23  std::set<OWDevAddr> known_addresses;
          24  std::set<OWDevAddr> registered_addresses;
          25 };
          26 
          28  public:
          30  String config_path="");
          31  void enable() override final;
          32  virtual JsonObject& get_configuration(JsonBuffer& buf) override final;
          33  virtual bool set_configuration(const JsonObject& config) override final;
          34  virtual String get_config_schema() override;
          35 
          36  private:
          37  OneWire* onewire;
          39  bool found = true;
          40  OWDevAddr address = {};
          41  void update();
          42  void read_value();
          43 };
          44 
          45 #endif
          Definition: sensor.h:15
          -
          DallasTemperatureSensors(int pin, String config_path="")
          -
          virtual String get_config_schema() override
          -
          bool get_next_address(OWDevAddr *addr)
          -
          virtual bool set_configuration(const JsonObject &config) override final
          - - -
          bool register_address(const OWDevAddr &addr)
          -
          OneWireTemperature(DallasTemperatureSensors *dts, String config_path="")
          -
          void enable() override final
          -
          DallasTemperature * sensors
          -
          const String config_path
          Definition: configurable.h:29
          - -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override final
          - -
          void enable() override final
          -
          std::array< uint8_t, 8 > OWDevAddr
          -
          -
          - - - - diff --git a/docs/ota_8cpp.html b/docs/ota_8cpp.html deleted file mode 100644 index 28896201d..000000000 --- a/docs/ota_8cpp.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - -SensESP: src/net/ota.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          ota.cpp File Reference
          -
          -
          -
          #include "ota.h"
          -#include <Arduino.h>
          -#include <ArduinoOTA.h>
          -#include "sensesp.h"
          -
          -Include dependency graph for ota.cpp:
          -
          -
          - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - - - -

          -Functions

          void handle_OTA ()
           
          void setup_OTA ()
           
          -

          Function Documentation

          - -

          ◆ handle_OTA()

          - -
          -
          - - - - - - - -
          void handle_OTA ()
          -
          - -

          Definition at line 13 of file ota.cpp.

          -
          -Here is the caller graph for this function:
          -
          -
          - - - - -
          - -
          -
          - -

          ◆ setup_OTA()

          - -
          -
          - - - - - - - -
          void setup_OTA ()
          -
          - -

          Definition at line 17 of file ota.cpp.

          -
          -Here is the call graph for this function:
          -
          -
          - - - - -
          - -
          -
          -
          -
          - - - - diff --git a/docs/ota_8cpp.js b/docs/ota_8cpp.js deleted file mode 100644 index a4a0f050d..000000000 --- a/docs/ota_8cpp.js +++ /dev/null @@ -1,5 +0,0 @@ -var ota_8cpp = -[ - [ "handle_OTA", "ota_8cpp.html#a6696a10cb1e3746f263fb053fd5df092", null ], - [ "setup_OTA", "ota_8cpp.html#a29c2aa13f2bbaccceeb33ed39a6ece11", null ] -]; \ No newline at end of file diff --git a/docs/ota_8cpp__incl.md5 b/docs/ota_8cpp__incl.md5 deleted file mode 100644 index 963ed052d..000000000 --- a/docs/ota_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -d566897361b48173345840a3600778c2 \ No newline at end of file diff --git a/docs/ota_8cpp__incl.png b/docs/ota_8cpp__incl.png deleted file mode 100644 index 43f4108dc..000000000 Binary files a/docs/ota_8cpp__incl.png and /dev/null differ diff --git a/docs/ota_8cpp_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.map b/docs/ota_8cpp_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.map deleted file mode 100644 index 093da0a13..000000000 --- a/docs/ota_8cpp_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/ota_8cpp_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.md5 b/docs/ota_8cpp_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.md5 deleted file mode 100644 index 78e5993ae..000000000 --- a/docs/ota_8cpp_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -3698c1f6833f1d0c2c33498d6049a7e9 \ No newline at end of file diff --git a/docs/ota_8cpp_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.png b/docs/ota_8cpp_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.png deleted file mode 100644 index b7b4385dc..000000000 Binary files a/docs/ota_8cpp_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.png and /dev/null differ diff --git a/docs/ota_8cpp_a6696a10cb1e3746f263fb053fd5df092_icgraph.map b/docs/ota_8cpp_a6696a10cb1e3746f263fb053fd5df092_icgraph.map deleted file mode 100644 index 2d9e4bd52..000000000 --- a/docs/ota_8cpp_a6696a10cb1e3746f263fb053fd5df092_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/ota_8cpp_a6696a10cb1e3746f263fb053fd5df092_icgraph.md5 b/docs/ota_8cpp_a6696a10cb1e3746f263fb053fd5df092_icgraph.md5 deleted file mode 100644 index e19bf70b0..000000000 --- a/docs/ota_8cpp_a6696a10cb1e3746f263fb053fd5df092_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -5c9f52fe36c189e6a8c6f561cf115771 \ No newline at end of file diff --git a/docs/ota_8cpp_a6696a10cb1e3746f263fb053fd5df092_icgraph.png b/docs/ota_8cpp_a6696a10cb1e3746f263fb053fd5df092_icgraph.png deleted file mode 100644 index eb34c179f..000000000 Binary files a/docs/ota_8cpp_a6696a10cb1e3746f263fb053fd5df092_icgraph.png and /dev/null differ diff --git a/docs/ota_8cpp_source.html b/docs/ota_8cpp_source.html deleted file mode 100644 index b998636cc..000000000 --- a/docs/ota_8cpp_source.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -SensESP: src/net/ota.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          ota.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "ota.h"
          2 
          3 #include <Arduino.h>
          4 #include <ArduinoOTA.h>
          5 
          6 #include "sensesp.h"
          7 
          8 // Password for Over-the-air (OTA) updates
          9 #ifndef OTA_PASSWORD
          10 //#define OTA_PASSWORD "bonvoyage"
          11 #endif
          12 
          13 void handle_OTA() {
          14  ArduinoOTA.handle();
          15 }
          16 
          17 void setup_OTA() {
          18 #ifdef OTA_PASSWORD
          19  ArduinoOTA.setPassword((const char *)OTA_PASSWORD);
          20 #endif
          21  ArduinoOTA.onStart([]() {
          22  debugW("Starting OTA");
          23  });
          24  ArduinoOTA.onEnd([]() {
          25  debugW("OTA End");
          26  });
          27  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
          28  debugI("OTA Progress: %u%%\r", (progress / (total / 100)));
          29  });
          30  ArduinoOTA.onError([](ota_error_t error) {
          31  debugE("OTA Error[%u]: ", error);
          32  if (error == OTA_AUTH_ERROR) { debugE("OTA Auth Failed"); }
          33  else if (error == OTA_BEGIN_ERROR) { debugE("OTA Begin Failed"); }
          34  else if (error == OTA_CONNECT_ERROR) { debugE("OTA Connect Failed"); }
          35  else if (error == OTA_RECEIVE_ERROR) { debugE("OTA Receive Failed"); }
          36  else if (error == OTA_END_ERROR) { debugE("OTA End Failed"); }
          37  });
          38  ArduinoOTA.begin();
          39  //app.onTick(&handle_OTA);
          40  app.onRepeat(20, handle_OTA);
          41 }
          - -
          void setup_OTA()
          Definition: ota.cpp:17
          -
          void handle_OTA()
          Definition: ota.cpp:13
          - -
          ReactESP app
          -
          -
          - - - - diff --git a/docs/ota_8h.html b/docs/ota_8h.html deleted file mode 100644 index 31ca74197..000000000 --- a/docs/ota_8h.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - -SensESP: src/net/ota.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          ota.h File Reference
          -
          -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Functions

          void setup_OTA ()
           
          -

          Function Documentation

          - -

          ◆ setup_OTA()

          - -
          -
          - - - - - - - -
          void setup_OTA ()
          -
          - -

          Definition at line 17 of file ota.cpp.

          -
          -Here is the call graph for this function:
          -
          -
          - - - - -
          - -
          -
          -
          -
          - - - - diff --git a/docs/ota_8h.js b/docs/ota_8h.js deleted file mode 100644 index 2f74e31bb..000000000 --- a/docs/ota_8h.js +++ /dev/null @@ -1,4 +0,0 @@ -var ota_8h = -[ - [ "setup_OTA", "ota_8h.html#a29c2aa13f2bbaccceeb33ed39a6ece11", null ] -]; \ No newline at end of file diff --git a/docs/ota_8h__dep__incl.png b/docs/ota_8h__dep__incl.png deleted file mode 100644 index 56500336f..000000000 Binary files a/docs/ota_8h__dep__incl.png and /dev/null differ diff --git a/docs/ota_8h_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.map b/docs/ota_8h_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.map deleted file mode 100644 index 093da0a13..000000000 --- a/docs/ota_8h_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/ota_8h_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.md5 b/docs/ota_8h_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.md5 deleted file mode 100644 index 4f9f8bf65..000000000 --- a/docs/ota_8h_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -d54be0d190a43a6ee86441ce4851539f \ No newline at end of file diff --git a/docs/ota_8h_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.png b/docs/ota_8h_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.png deleted file mode 100644 index b7b4385dc..000000000 Binary files a/docs/ota_8h_a29c2aa13f2bbaccceeb33ed39a6ece11_cgraph.png and /dev/null differ diff --git a/docs/ota_8h_source.html b/docs/ota_8h_source.html deleted file mode 100644 index 607a0c852..000000000 --- a/docs/ota_8h_source.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - -SensESP: src/net/ota.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          ota.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _ota_H_
          2 #define _ota_H_
          3 
          4 void setup_OTA();
          5 
          6 #endif
          void setup_OTA()
          Definition: ota.cpp:17
          -
          -
          - - - - diff --git a/docs/resize.js b/docs/resize.js deleted file mode 100644 index 6617aee8e..000000000 --- a/docs/resize.js +++ /dev/null @@ -1,136 +0,0 @@ -/* - @licstart The following is the entire license notice for the - JavaScript code in this file. - - Copyright (C) 1997-2017 by Dimitri van Heesch - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - @licend The above is the entire license notice - for the JavaScript code in this file - */ -function initResizable() -{ - var cookie_namespace = 'doxygen'; - var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; - - function readCookie(cookie) - { - var myCookie = cookie_namespace+"_"+cookie+"="; - if (document.cookie) { - var index = document.cookie.indexOf(myCookie); - if (index != -1) { - var valStart = index + myCookie.length; - var valEnd = document.cookie.indexOf(";", valStart); - if (valEnd == -1) { - valEnd = document.cookie.length; - } - var val = document.cookie.substring(valStart, valEnd); - return val; - } - } - return 0; - } - - function writeCookie(cookie, val, expiration) - { - if (val==undefined) return; - if (expiration == null) { - var date = new Date(); - date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week - expiration = date.toGMTString(); - } - document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; - } - - function resizeWidth() - { - var windowWidth = $(window).width() + "px"; - var sidenavWidth = $(sidenav).outerWidth(); - content.css({marginLeft:parseInt(sidenavWidth)+"px"}); - writeCookie('width',sidenavWidth-barWidth, null); - } - - function restoreWidth(navWidth) - { - var windowWidth = $(window).width() + "px"; - content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); - sidenav.css({width:navWidth + "px"}); - } - - function resizeHeight() - { - var headerHeight = header.outerHeight(); - var footerHeight = footer.outerHeight(); - var windowHeight = $(window).height() - headerHeight - footerHeight; - content.css({height:windowHeight + "px"}); - navtree.css({height:windowHeight + "px"}); - sidenav.css({height:windowHeight + "px"}); - var width=$(window).width(); - if (width!=collapsedWidth) { - if (width=desktop_vp) { - if (!collapsed) { - collapseExpand(); - } - } else if (width>desktop_vp && collapsedWidth0) { - restoreWidth(0); - collapsed=true; - } - else { - var width = readCookie('width'); - if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); } - collapsed=false; - } - } - - header = $("#top"); - sidenav = $("#side-nav"); - content = $("#doc-content"); - navtree = $("#nav-tree"); - footer = $("#nav-path"); - $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); - $(sidenav).resizable({ minWidth: 0 }); - $(window).resize(function() { resizeHeight(); }); - var device = navigator.userAgent.toLowerCase(); - var touch_device = device.match(/(iphone|ipod|ipad|android)/); - if (touch_device) { /* wider split bar for touch only devices */ - $(sidenav).css({ paddingRight:'20px' }); - $('.ui-resizable-e').css({ width:'20px' }); - $('#nav-sync').css({ right:'34px' }); - barWidth=20; - } - var width = readCookie('width'); - if (width) { restoreWidth(width); } else { resizeWidth(); } - resizeHeight(); - var url = location.href; - var i=url.indexOf("#"); - if (i>=0) window.location.hash=url.substr(i); - var _preventDefault = function(evt) { evt.preventDefault(); }; - $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); - $(".ui-resizable-handle").dblclick(collapseExpand); - $(window).load(resizeHeight); -} -/* @license-end */ diff --git a/docs/search/all_0.js b/docs/search/all_0.js deleted file mode 100644 index 25ed1194d..000000000 --- a/docs/search/all_0.js +++ /dev/null @@ -1,18 +0,0 @@ -var searchData= -[ - ['add_5fsentence_5fparser',['add_sentence_parser',['../class_n_m_e_a_parser.html#a438b3fd8f8587b55a3785656651f73a6',1,'NMEAParser']]], - ['addsample',['addSample',['../class_curve_interpolator.html#a314df8dc54dc73798197c9c9ce6859ac',1,'CurveInterpolator']]], - ['altitude',['altitude',['../struct_position.html#add1df8470102854f3950fc9dd2fee06d',1,'Position']]], - ['analog_5finput_2ecpp',['analog_input.cpp',['../analog__input_8cpp.html',1,'']]], - ['analog_5finput_2eh',['analog_input.h',['../analog__input_8h.html',1,'']]], - ['analoginput',['AnalogInput',['../class_analog_input.html',1,'AnalogInput'],['../class_analog_input.html#af40968136e406531f8838434f1c1356b',1,'AnalogInput::AnalogInput()']]], - ['analogvoltage',['AnalogVoltage',['../class_analog_voltage.html',1,'AnalogVoltage'],['../class_analog_voltage.html#a22cee4790f99a391a883370cac00894a',1,'AnalogVoltage::AnalogVoltage()']]], - ['analogvoltage_2eh',['analogvoltage.h',['../analogvoltage_8h.html',1,'']]], - ['angle_5fcorrection_2ecpp',['angle_correction.cpp',['../angle__correction_8cpp.html',1,'']]], - ['angle_5fcorrection_2eh',['angle_correction.h',['../angle__correction_8h.html',1,'']]], - ['anglecorrection',['AngleCorrection',['../class_angle_correction.html',1,'AngleCorrection'],['../class_angle_correction.html#a6a023df6e49e8ada977738dc8cbe150c',1,'AngleCorrection::AngleCorrection()']]], - ['app',['app',['../sensesp_8h.html#aaa2ffd80e6f851dc6bb43c95a2c7d26f',1,'sensesp.h']]], - ['append',['append',['../class_s_k_delta.html#afacfa3952be6179d0e96960575f393a8',1,'SKDelta']]], - ['as_5fsignalk',['as_signalK',['../class_s_k_emitter.html#aa08f537c7d7b1782fea4d381a65cf521',1,'SKEmitter::as_signalK()'],['../class_s_k_output.html#a07b3524ca9ffa1dff03f4bf522d9e3d2',1,'SKOutput::as_signalK()'],['../class_s_k_output_time.html#a09b9f813788470bd06891f34ba58d84b',1,'SKOutputTime::as_signalK()'],['../class_s_k_output.html#afb74fff00aed31212a5150035ddacd4e',1,'SKOutput::as_signalK()'],['../class_s_k_output.html#afb74fff00aed31212a5150035ddacd4e',1,'SKOutput::as_signalK()']]], - ['attach',['attach',['../class_observable.html#af72ed9c9cf7157a33caad4b930232e69',1,'Observable']]] -]; diff --git a/docs/search/all_1.js b/docs/search/all_1.js deleted file mode 100644 index a9b5514cd..000000000 --- a/docs/search/all_1.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['baseline_5fcourse',['baseline_course',['../struct_n_m_e_a_data.html#ad752076d48c74317d72a26643fef7fef',1,'NMEAData']]], - ['baseline_5flength',['baseline_length',['../struct_n_m_e_a_data.html#a96cce54518c05c611d50c159ea5122d6',1,'NMEAData']]], - ['baseline_5fprojection',['baseline_projection',['../struct_n_m_e_a_data.html#a3ae9e3d23c088e1c435acf4c232d6a5c',1,'NMEAData']]], - ['booleanconsumer',['BooleanConsumer',['../valueconsumer_8h.html#abea8a189967941972b3e7c5a329c4963',1,'valueconsumer.h']]], - ['booleanproducer',['BooleanProducer',['../valueproducer_8h.html#a79edc4b65652f6948d690891bb6d7e0c',1,'valueproducer.h']]], - ['booleantransform',['BooleanTransform',['../transform_8h.html#ac1617ff234bef4e8a50341c1d6943246',1,'transform.h']]] -]; diff --git a/docs/search/all_10.js b/docs/search/all_10.js deleted file mode 100644 index ec20b95c4..000000000 --- a/docs/search/all_10.js +++ /dev/null @@ -1,77 +0,0 @@ -var searchData= -[ - ['sample',['Sample',['../class_curve_interpolator_1_1_sample.html',1,'CurveInterpolator::Sample'],['../class_curve_interpolator_1_1_sample.html#a7ad23733bf31c9a8ccbe9689b55f6d67',1,'CurveInterpolator::Sample::Sample()'],['../class_curve_interpolator_1_1_sample.html#aa2ed35560a823ced306ef02a50d95cac',1,'CurveInterpolator::Sample::Sample(float input, float output)'],['../class_curve_interpolator_1_1_sample.html#a5f69567a227e29b795b68e4310a9da40',1,'CurveInterpolator::Sample::Sample(JsonObject &obj)']]], - ['save_5fconfig_5fcallback',['save_config_callback',['../networking_8cpp.html#a7930cb24915efc348611f4c48d1d5e4c',1,'networking.cpp']]], - ['save_5fconfiguration',['save_configuration',['../class_configurable.html#a657419f13060caa20c45a41935b9d53a',1,'Configurable']]], - ['send_5fdelta',['send_delta',['../class_w_s_client.html#ab6bcc3fb4cfe71aff3929480fab9bd5a',1,'WSClient']]], - ['sensesp_2eh',['sensesp.h',['../sensesp_8h.html',1,'']]], - ['sensesp_5fapp',['sensesp_app',['../sensesp__app_8cpp.html#a9b53af60ecde971876d66994134fbfff',1,'sensesp_app(): sensesp_app.cpp'],['../sensesp__app_8h.html#a9b53af60ecde971876d66994134fbfff',1,'sensesp_app(): sensesp_app.cpp']]], - ['sensesp_5fapp_2ecpp',['sensesp_app.cpp',['../sensesp__app_8cpp.html',1,'']]], - ['sensesp_5fapp_2eh',['sensesp_app.h',['../sensesp__app_8h.html',1,'']]], - ['sensespapp',['SensESPApp',['../class_sens_e_s_p_app.html',1,'SensESPApp'],['../class_sens_e_s_p_app.html#a092f600dda1a51189bc2c9fd5de360e8',1,'SensESPApp::SensESPApp()']]], - ['sensor',['Sensor',['../class_sensor.html',1,'Sensor'],['../class_sensor.html#a921d5f94f7f77fa42b5950a807a8e79c',1,'Sensor::Sensor()']]], - ['sensor_2ecpp',['sensor.cpp',['../sensor_8cpp.html',1,'']]], - ['sensor_2eh',['sensor.h',['../sensor_8h.html',1,'']]], - ['sensors',['sensors',['../class_dallas_temperature_sensors.html#abd79995496fd66d416e6d9cd1ff56342',1,'DallasTemperatureSensors']]], - ['sentence',['sentence',['../class_sentence_parser.html#aa079d8ee1b96e2f03a9c7a1f2ddf7519',1,'SentenceParser::sentence()'],['../class_g_p_g_g_a_sentence_parser.html#ac70d60b587cd0e48479c397bb30983a3',1,'GPGGASentenceParser::sentence()'],['../class_g_p_g_l_l_sentence_parser.html#acbee347184ae22343a9af2515ae57c98',1,'GPGLLSentenceParser::sentence()'],['../class_g_p_r_m_c_sentence_parser.html#a75afdae2ce4e8a27676d86ef2f5cbf9f',1,'GPRMCSentenceParser::sentence()'],['../class_p_s_t_i_sentence_parser.html#add6764d7c0579101840b82a86f6bd2ef',1,'PSTISentenceParser::sentence()'],['../class_p_s_t_i030_sentence_parser.html#adf5b386bffd76b1055d70aa59615d493',1,'PSTI030SentenceParser::sentence()'],['../class_p_s_t_i032_sentence_parser.html#acbe297f07ea6729d870ec8222535b1ce',1,'PSTI032SentenceParser::sentence()']]], - ['sentenceparser',['SentenceParser',['../class_sentence_parser.html',1,'SentenceParser'],['../class_sentence_parser.html#a20be85c734aab87cf783aaa6a999a29a',1,'SentenceParser::SentenceParser()']]], - ['set',['set',['../class_observable_value.html#a51cf25d4951d3214021da0c25985838d',1,'ObservableValue']]], - ['set_5fconfiguration',['set_configuration',['../class_networking.html#a59d475a2f12b88ef8334274a9a0b1cee',1,'Networking::set_configuration()'],['../class_w_s_client.html#ad099870379ee102fa4f5b3b584b50658',1,'WSClient::set_configuration()'],['../class_one_wire_temperature.html#a83bce20a52e396dbd97a43a6e72b2824',1,'OneWireTemperature::set_configuration()'],['../class_s_k_output.html#a406e7e56220dd41bd567c56c0e6b9a4d',1,'SKOutput::set_configuration()'],['../class_s_k_output_time.html#a41ad61c700a444916873e908612eca63',1,'SKOutputTime::set_configuration()'],['../class_configurable.html#a6e0281fe25cfbdf024bdb05147ffb52b',1,'Configurable::set_configuration()'],['../class_angle_correction.html#a53b1594b6161feff6f218a2aa7a05ad3',1,'AngleCorrection::set_configuration()'],['../class_change_filter.html#a0bbe692080d7ee9a41fcd77a3f581ca9',1,'ChangeFilter::set_configuration()'],['../class_curve_interpolator.html#acfda195c475a261d2e2a3af365fd6c19',1,'CurveInterpolator::set_configuration()'],['../class_difference.html#a57e134a00cd6688d147f93c662520040',1,'Difference::set_configuration()'],['../class_frequency.html#a87d16c67ce064b9b0f671747808c3963',1,'Frequency::set_configuration()'],['../class_integrator.html#aa53205d3211635dad0a035adf5d511a6',1,'Integrator::set_configuration()'],['../class_linear.html#ab12c626261e763892d4253f48478771a',1,'Linear::set_configuration()'],['../class_median.html#ac06073c22b922aceee9f01ddaccfb54a',1,'Median::set_configuration()'],['../class_moving_average.html#a9f02a3c253c6456e4d5c063ea5f6d364',1,'MovingAverage::set_configuration()'],['../class_voltage_divider_r2.html#a805b64252dccfd3720ce5fc0f84964b3',1,'VoltageDividerR2::set_configuration()']]], - ['set_5fhostname',['set_hostname',['../class_networking.html#a500aa01c7d7da3d823a43c40212353f5',1,'Networking::set_hostname()'],['../class_s_k_delta.html#acd3c98ae0fe75f92d5d9c1e6a216a8dd',1,'SKDelta::set_hostname()']]], - ['set_5finput',['set_input',['../class_s_k_output.html#a43d76eef72e8dad90ee13a001c265be8',1,'SKOutput::set_input()'],['../class_value_consumer.html#a7bf920e5ad5f171ec6e2aeda056ff01f',1,'ValueConsumer::set_input()'],['../class_angle_correction.html#afd9a559ce1218e9b78137ff1a9c6d77d',1,'AngleCorrection::set_input()'],['../class_change_filter.html#a592657a8a1c12a9c16dc334aa804865c',1,'ChangeFilter::set_input()'],['../class_curve_interpolator.html#a6e4fcb3bb046ecacbe1855d74cdc47bb',1,'CurveInterpolator::set_input()'],['../class_debounce.html#a41ba3a24ea3490fc0717fa4d5f7fae0b',1,'Debounce::set_input()'],['../class_difference.html#a432ef87751c6bee8e5dadc610dfcb4ff',1,'Difference::set_input()'],['../class_frequency.html#a99df388f446a8aa46f465fe464023f55',1,'Frequency::set_input()'],['../class_integrator.html#a7fb38d2d19aa3e918dbee34b9096f7a6',1,'Integrator::set_input()'],['../class_linear.html#a057c8519f6eb7dd28392073010a2cfc3',1,'Linear::set_input()'],['../class_median.html#a012bc8d16c361b38ab01f56898ead20b',1,'Median::set_input()'],['../class_moving_average.html#a22a08de98351ed805b49beecb234ab0b',1,'MovingAverage::set_input()'],['../class_time_string.html#a631583475f42183fdc5cd02914a26320',1,'TimeString::set_input()'],['../class_voltage_divider_r2.html#a43fa7bb9dc49c50de247aac272d7f697',1,'VoltageDividerR2::set_input()']]], - ['set_5fserver_5fconnected',['set_server_connected',['../class_led_blinker.html#a0cdd9d7e8cc453edd234ce2785ce28ea',1,'LedBlinker']]], - ['set_5fserver_5fdisconnected',['set_server_disconnected',['../class_led_blinker.html#ab0f765b76f30406a7b53d4360c897d64',1,'LedBlinker']]], - ['set_5fsk_5fpath',['set_sk_path',['../class_s_k_emitter.html#a670348fb1ef1bf3d5e1ba49660fc15d9',1,'SKEmitter']]], - ['set_5fstate',['set_state',['../class_led_blinker.html#aa9870e4cb1a35a175edcd710142b8595',1,'LedBlinker']]], - ['set_5fwifi_5fconnected',['set_wifi_connected',['../class_led_blinker.html#a394a529a52a7ee1e0321498de017f788',1,'LedBlinker']]], - ['set_5fwifi_5fdisconnected',['set_wifi_disconnected',['../class_led_blinker.html#a9c0b4f9aaacc14ab555df6abb43e8ae5',1,'LedBlinker']]], - ['setclassname',['setClassName',['../class_enable.html#a5c8fbdba606732e028a6bf194a3e2529',1,'Enable']]], - ['setpriority',['setPriority',['../class_enable.html#ab4ca14d496a85788896df6c78143994c',1,'Enable']]], - ['setup',['setup',['../class_networking.html#a94815dd34af734e9fc3839cbe6279355',1,'Networking']]], - ['setup_2eh',['setup.h',['../setup_8h.html',1,'']]], - ['setup_5fanalog_5finput',['setup_analog_input',['../wiring__helpers_8cpp.html#a3a4bbd0371b8285dbb7b8666d50a53a3',1,'setup_analog_input(String sk_path, float k, float c, String config_path): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a70ac1c40d730c9e0f9b93b1f4dd5f0f9',1,'setup_analog_input(String sk_path, float k=1, float c=0, String config_path=""): wiring_helpers.cpp']]], - ['setup_5fdiscovery',['setup_discovery',['../discovery_8cpp.html#aeea49ee803402167d8d79ca58268363e',1,'setup_discovery(const char *hostname): discovery.cpp'],['../discovery_8h.html#aeea49ee803402167d8d79ca58268363e',1,'setup_discovery(const char *hostname): discovery.cpp']]], - ['setup_5ffuel_5fflow_5fmeter',['setup_fuel_flow_meter',['../wiring__helpers_8cpp.html#ae36e0604b36693bd720bffcf4145baf9',1,'setup_fuel_flow_meter(int inflow_pin, int return_flow_pin): wiring_helpers.cpp'],['../wiring__helpers_8h.html#ae36e0604b36693bd720bffcf4145baf9',1,'setup_fuel_flow_meter(int inflow_pin, int return_flow_pin): wiring_helpers.cpp']]], - ['setup_5fgps',['setup_gps',['../wiring__helpers_8cpp.html#a8f7d5e59747355ce523001faddc7ada9',1,'setup_gps(Stream *rx_stream): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a8f7d5e59747355ce523001faddc7ada9',1,'setup_gps(Stream *rx_stream): wiring_helpers.cpp']]], - ['setup_5fonewire_5ftemperature',['setup_onewire_temperature',['../wiring__helpers_8cpp.html#a17220137bcd65b6f922f5a14165a8fcf',1,'setup_onewire_temperature(SensESPApp *seapp, DallasTemperatureSensors *dts, String sk_path, String config_path, String schema): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a37c83d7d3ac2abb00e8f9e86c1da52d3',1,'setup_onewire_temperature(DallasTemperatureSensors *dts, String sk_path, String config_path): wiring_helpers.h']]], - ['setup_5fota',['setup_OTA',['../ota_8cpp.html#a29c2aa13f2bbaccceeb33ed39a6ece11',1,'setup_OTA(): ota.cpp'],['../ota_8h.html#a29c2aa13f2bbaccceeb33ed39a6ece11',1,'setup_OTA(): ota.cpp']]], - ['setup_5frpm_5fmeter',['setup_rpm_meter',['../wiring__helpers_8cpp.html#aa6279a7bab0b61c448263a90303bb7e0',1,'setup_rpm_meter(SensESPApp *seapp, int input_pin): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a99ed20d80aca90bb060c88019c5f739f',1,'setup_rpm_meter(int input_pin): wiring_helpers.h']]], - ['setup_5fsaved_5fssid',['setup_saved_ssid',['../class_networking.html#a91507b52fbc31dd34d143c8a5634027e',1,'Networking']]], - ['setup_5fspiffs_5fstorage',['setup_spiffs_storage',['../spiffs__storage_8cpp.html#a1dfee751479797b385c81cacb151c115',1,'setup_spiffs_storage(): spiffs_storage.cpp'],['../spiffs__storage_8h.html#a1dfee751479797b385c81cacb151c115',1,'setup_spiffs_storage(): spiffs_storage.cpp']]], - ['setup_5fwifi_5fmanager',['setup_wifi_manager',['../class_networking.html#a082fa99914f8f6f277b640667877c85e',1,'Networking']]], - ['should_5fsave_5fconfig',['should_save_config',['../networking_8cpp.html#ade4bb65788e7b6ea2d2e3e026baf7310',1,'networking.cpp']]], - ['signalk_5fdelta_2ecpp',['signalk_delta.cpp',['../signalk__delta_8cpp.html',1,'']]], - ['signalk_5fdelta_2eh',['signalk_delta.h',['../signalk__delta_8h.html',1,'']]], - ['signalk_5femitter_2ecpp',['signalk_emitter.cpp',['../signalk__emitter_8cpp.html',1,'']]], - ['signalk_5femitter_2eh',['signalk_emitter.h',['../signalk__emitter_8h.html',1,'']]], - ['signalk_5foutput_2eh',['signalk_output.h',['../signalk__output_8h.html',1,'']]], - ['signalk_5fposition_2ecpp',['signalk_position.cpp',['../signalk__position_8cpp.html',1,'']]], - ['signalk_5fposition_2eh',['signalk_position.h',['../signalk__position_8h.html',1,'']]], - ['signalk_5ftime_2ecpp',['signalk_time.cpp',['../signalk__time_8cpp.html',1,'']]], - ['signalk_5ftime_2eh',['signalk_time.h',['../signalk__time_8h.html',1,'']]], - ['simulator_5fmode',['simulator_mode',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a32b763dac1af6b0b08ab952ea202f6a3',1,'nmea_parser.cpp']]], - ['sk_5fpath',['sk_path',['../class_s_k_emitter.html#a06dbe70e930074437b12b86ac4e2464c',1,'SKEmitter']]], - ['skdelta',['SKDelta',['../class_s_k_delta.html',1,'SKDelta'],['../class_s_k_delta.html#a3d4825fc72903feaebe635dc643d2b16',1,'SKDelta::SKDelta()']]], - ['skemitter',['SKEmitter',['../class_s_k_emitter.html',1,'SKEmitter'],['../class_s_k_emitter.html#aeba0ccd27a8b6bad1e2ddbf2603a5d8d',1,'SKEmitter::SKEmitter()']]], - ['skips',['skips',['../class_change_filter.html#ae51076f79fdfc36e34b8383a0e13e700',1,'ChangeFilter']]], - ['skoutput',['SKOutput',['../class_s_k_output.html',1,'SKOutput< T >'],['../class_s_k_output.html#a88f9638dd4779818b41a62738ba44876',1,'SKOutput::SKOutput()'],['../class_s_k_output.html#a811a99c30626b6840000b0c152aa1f37',1,'SKOutput::SKOutput(String sk_path, String config_path="")']]], - ['skoutputbool',['SKOutputBool',['../signalk__output_8h.html#a1a26c344db2dff33a77cf620aafa6c0c',1,'signalk_output.h']]], - ['skoutputint',['SKOutputInt',['../signalk__output_8h.html#a2a0e216e5ada5e31f7a6d995d2c52642',1,'signalk_output.h']]], - ['skoutputnumber',['SKOutputNumber',['../signalk__output_8h.html#a6c84656f504f6de21c63c1d54d6f39e1',1,'signalk_output.h']]], - ['skoutputposition',['SKOutputPosition',['../signalk__position_8h.html#af7b68a40dd9aa2220abb8e1bd8998455',1,'signalk_position.h']]], - ['skoutputstring',['SKOutputString',['../signalk__output_8h.html#a008f63a91ea787950cb6c17e4c031859',1,'signalk_output.h']]], - ['skoutputtime',['SKOutputTime',['../class_s_k_output_time.html',1,'SKOutputTime'],['../class_s_k_output_time.html#ab77e9bdfeb69fd37c6fc87ac247146e4',1,'SKOutputTime::SKOutputTime()']]], - ['speed',['speed',['../struct_n_m_e_a_data.html#afe6efa0ec62ce332673ab98b282990c8',1,'NMEAData']]], - ['spiffs_5fstorage_2ecpp',['spiffs_storage.cpp',['../spiffs__storage_8cpp.html',1,'']]], - ['spiffs_5fstorage_2eh',['spiffs_storage.h',['../spiffs__storage_8h.html',1,'']]], - ['string_5fto_5fowda',['string_to_owda',['../onewire__temperature_8cpp.html#a2ea2a536fdbbb476ae3fb824d73d3e1a',1,'onewire_temperature.cpp']]], - ['stringconsumer',['StringConsumer',['../valueconsumer_8h.html#a1d91b84157f6818bb8b8b04caede8a02',1,'valueconsumer.h']]], - ['stringproducer',['StringProducer',['../valueproducer_8h.html#ab845e985974e3ae4c050b8f221337b0d',1,'valueproducer.h']]], - ['stringsensor',['StringSensor',['../class_string_sensor.html',1,'StringSensor'],['../class_string_sensor.html#a8ed16d934bf90314e4f00dba25b1d202',1,'StringSensor::StringSensor()']]], - ['stringtransform',['StringTransform',['../transform_8h.html#a463af5c6e30307ac67004d67dd014030',1,'transform.h']]], - ['symmetrictransform',['SymmetricTransform',['../class_symmetric_transform.html',1,'SymmetricTransform< T >'],['../class_symmetric_transform.html#a77383aeb8a2dc0e27a2fbc24b451bc90',1,'SymmetricTransform::SymmetricTransform()']]], - ['symmetrictransform_3c_20float_20_3e',['SymmetricTransform< float >',['../class_symmetric_transform.html',1,'']]], - ['system_5finfo_2ecpp',['system_info.cpp',['../system__info_8cpp.html',1,'']]], - ['system_5finfo_2eh',['system_info.h',['../system__info_8h.html',1,'']]], - ['systemhz',['SystemHz',['../class_system_hz.html',1,'SystemHz'],['../class_system_hz.html#a72aa9d59ca93c864b3c4bba55fdd4ec6',1,'SystemHz::SystemHz()']]] -]; diff --git a/docs/search/all_11.js b/docs/search/all_11.js deleted file mode 100644 index 78c21f69e..000000000 --- a/docs/search/all_11.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['timestring',['TimeString',['../class_time_string.html',1,'TimeString'],['../class_time_string.html#adc18ed47c4b6d88acceec81741aab5c3',1,'TimeString::TimeString()']]], - ['timestring_2ecpp',['timestring.cpp',['../timestring_8cpp.html',1,'']]], - ['timestring_2eh',['timestring.h',['../timestring_8h.html',1,'']]], - ['transform',['Transform',['../class_transform.html',1,'Transform< C, P >'],['../class_transform.html#a764037842596e71f15621e3732dac75a',1,'Transform::Transform()']]], - ['transform_2ecpp',['transform.cpp',['../transform_8cpp.html',1,'']]], - ['transform_2eh',['transform.h',['../transform_8h.html',1,'']]], - ['transform_3c_20float_2c_20float_20_3e',['Transform< float, float >',['../class_transform.html',1,'']]], - ['transform_3c_20int_2c_20float_20_3e',['Transform< int, float >',['../class_transform.html',1,'']]], - ['transform_3c_20t_2c_20t_20_3e',['Transform< T, T >',['../class_transform.html',1,'']]], - ['transform_3c_20time_5ft_2c_20string_20_3e',['Transform< time_t, String >',['../class_transform.html',1,'']]], - ['transformbase',['TransformBase',['../class_transform_base.html',1,'TransformBase'],['../class_transform_base.html#a4f28a4ec27046ac3ef1546eda4b5b43b',1,'TransformBase::TransformBase()']]], - ['true_5fcourse',['true_course',['../struct_n_m_e_a_data.html#a91263e0aa16f47a7535d8d4a09b2ffca',1,'NMEAData']]] -]; diff --git a/docs/search/all_12.js b/docs/search/all_12.js deleted file mode 100644 index 6085f47b8..000000000 --- a/docs/search/all_12.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['up',['up',['../struct_e_n_u_vector.html#ac4254f925ae071868c7961a006cdf768',1,'ENUVector']]], - ['uptime',['Uptime',['../class_uptime.html',1,'Uptime'],['../class_uptime.html#a3723d5d7c5b11879065dc3defb6e171f',1,'Uptime::Uptime()']]], - ['use_5flib_5fwebsocket',['USE_LIB_WEBSOCKET',['../sensesp__app_8h.html#a8abe44af131f55591035d3587ca9484d',1,'sensesp_app.h']]] -]; diff --git a/docs/search/all_13.js b/docs/search/all_13.js deleted file mode 100644 index 75a894664..000000000 --- a/docs/search/all_13.js +++ /dev/null @@ -1,25 +0,0 @@ -var searchData= -[ - ['valueconsumer',['ValueConsumer',['../class_value_consumer.html',1,'']]], - ['valueconsumer_2eh',['valueconsumer.h',['../valueconsumer_8h.html',1,'']]], - ['valueconsumer_3c_20c_20_3e',['ValueConsumer< C >',['../class_value_consumer.html',1,'']]], - ['valueconsumer_3c_20float_20_3e',['ValueConsumer< float >',['../class_value_consumer.html',1,'']]], - ['valueconsumer_3c_20int_20_3e',['ValueConsumer< int >',['../class_value_consumer.html',1,'']]], - ['valueconsumer_3c_20time_5ft_20_3e',['ValueConsumer< time_t >',['../class_value_consumer.html',1,'']]], - ['valueproducer',['ValueProducer',['../class_value_producer.html',1,'ValueProducer< T >'],['../class_value_producer.html#a0ef05992883120f7202c14fd8e577103',1,'ValueProducer::ValueProducer()']]], - ['valueproducer_2eh',['valueproducer.h',['../valueproducer_8h.html',1,'']]], - ['valueproducer_3c_20enuvector_20_3e',['ValueProducer< ENUVector >',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20float_20_3e',['ValueProducer< float >',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20int_20_3e',['ValueProducer< int >',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20p_20_3e',['ValueProducer< P >',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20position_20_3e',['ValueProducer< Position >',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20string_20_3e',['ValueProducer< String >',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20time_5ft_20_3e',['ValueProducer< time_t >',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20uint32_5ft_20_3e',['ValueProducer< uint32_t >',['../class_value_producer.html',1,'']]], - ['variation',['variation',['../struct_n_m_e_a_data.html#ab5b508669ea5109f812b28cdba65c402',1,'NMEAData']]], - ['vin',['Vin',['../class_voltage_divider_r2.html#a482239a7e4031b16091886109efd2296',1,'VoltageDividerR2']]], - ['void_5fcb_5ffunc',['void_cb_func',['../sensesp_8h.html#abb3668fa85a914138ab7c0c4329681ec',1,'sensesp.h']]], - ['voltagedividerr2',['VoltageDividerR2',['../class_voltage_divider_r2.html',1,'VoltageDividerR2'],['../class_voltage_divider_r2.html#a609ab5e2db4122ddc875a94ba8f9d325',1,'VoltageDividerR2::VoltageDividerR2()']]], - ['voltagedividerr2_2ecpp',['voltagedividerR2.cpp',['../voltagedivider_r2_8cpp.html',1,'']]], - ['voltagedividerr2_2eh',['voltagedividerR2.h',['../voltagedivider_r2_8h.html',1,'']]] -]; diff --git a/docs/search/all_14.js b/docs/search/all_14.js deleted file mode 100644 index 21c12d6ce..000000000 --- a/docs/search/all_14.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['websocketclientevent',['webSocketClientEvent',['../ws__client_8cpp.html#a5e74f160471b58a262cceef5edaea7e0',1,'ws_client.cpp']]], - ['wifi_5fconfig_5fportal_5ftimeout',['WIFI_CONFIG_PORTAL_TIMEOUT',['../networking_8cpp.html#a6beb3d9ab4141921e87c56b399230fce',1,'networking.cpp']]], - ['wiring_5fhelpers_2ecpp',['wiring_helpers.cpp',['../wiring__helpers_8cpp.html',1,'']]], - ['wiring_5fhelpers_2eh',['wiring_helpers.h',['../wiring__helpers_8h.html',1,'']]], - ['write_5fjson',['write_json',['../spiffs__storage_8h.html#afc3e0da568f2f14c9954eeab665ab9cd',1,'spiffs_storage.h']]], - ['write_5fstring',['write_string',['../spiffs__storage_8cpp.html#ae1cd66733f6f724334874c5ff65b958b',1,'write_string(const String filename, String data): spiffs_storage.cpp'],['../spiffs__storage_8h.html#ae1cd66733f6f724334874c5ff65b958b',1,'write_string(const String filename, String data): spiffs_storage.cpp']]], - ['ws_5fclient',['ws_client',['../ws__client_8cpp.html#a4d8d7cfce2bd21646b059e9aa4d0349b',1,'ws_client.cpp']]], - ['ws_5fclient_2ecpp',['ws_client.cpp',['../ws__client_8cpp.html',1,'']]], - ['ws_5fclient_2eh',['ws_client.h',['../ws__client_8h.html',1,'']]], - ['wsclient',['WSClient',['../class_w_s_client.html',1,'WSClient'],['../class_w_s_client.html#a46394a4855cdb0d9587fde318574b6e4',1,'WSClient::WSClient()']]] -]; diff --git a/docs/search/all_15.js b/docs/search/all_15.js deleted file mode 100644 index 4591fc562..000000000 --- a/docs/search/all_15.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['_7ehttpserver',['~HTTPServer',['../class_h_t_t_p_server.html#af09066b05417f9a9ce9f1cd8e5ad9e18',1,'HTTPServer']]] -]; diff --git a/docs/search/all_2.js b/docs/search/all_2.js deleted file mode 100644 index 04bab0dfb..000000000 --- a/docs/search/all_2.js +++ /dev/null @@ -1,24 +0,0 @@ -var searchData= -[ - ['change_5ffilter_2ecpp',['change_filter.cpp',['../change__filter_8cpp.html',1,'']]], - ['change_5ffilter_2eh',['change_filter.h',['../change__filter_8h.html',1,'']]], - ['changefilter',['ChangeFilter',['../class_change_filter.html',1,'ChangeFilter'],['../class_change_filter.html#a6ca0d72e2d4f5afc36ec6c38513cb9c3',1,'ChangeFilter::ChangeFilter()']]], - ['check_5fconnection',['check_connection',['../class_networking.html#ae4b12924970227730df3377144301a7c',1,'Networking']]], - ['classname',['className',['../class_enable.html#a88a9d200883d86ac64d5b1cd03c07d29',1,'Enable']]], - ['clearsamples',['clearSamples',['../class_curve_interpolator.html#afb1dbb8e85015e2909dff8495875f8f5',1,'CurveInterpolator']]], - ['config_5fpath',['config_path',['../class_configurable.html#aaa54fa6156d9c7f5848d670bd9b18aa9',1,'Configurable']]], - ['configurable',['Configurable',['../class_configurable.html',1,'Configurable'],['../class_configurable.html#a8972a439fb9b734ff68d27c699640f78',1,'Configurable::Configurable()']]], - ['configurable_2ecpp',['configurable.cpp',['../configurable_8cpp.html',1,'']]], - ['configurable_2eh',['configurable.h',['../configurable_8h.html',1,'']]], - ['configurables',['configurables',['../configurable_8cpp.html#a19ac563e52fea3af6b643155f9d258b6',1,'configurables(): configurable.cpp'],['../configurable_8h.html#a19ac563e52fea3af6b643155f9d258b6',1,'configurables(): configurable.cpp']]], - ['connect',['connect',['../class_w_s_client.html#a1612670a5dccbc8a39518ae972fbae90',1,'WSClient::connect()'],['../class_sens_e_s_p_app.html#ac53d90429563f50e4aca5224a1e85afd',1,'SensESPApp::connect()']]], - ['connect_5f1to1_5fh',['connect_1to1_h',['../class_sens_e_s_p_app.html#aa6e3bc4bb1c696cc0bef02835ce0f7bf',1,'SensESPApp']]], - ['connected',['connected',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba8ba3de7243211c98f5ec24395c73d65b',1,'ws_client.h']]], - ['connectfrom',['connectFrom',['../class_value_consumer.html#a6adf62d8d87ffa3ce70bb85379a68715',1,'ValueConsumer::connectFrom()'],['../class_transform.html#a7721846cbfe5b3d95c6f1f40cb387c5d',1,'Transform::connectFrom()']]], - ['connecting',['connecting',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9bab4dbdd36e3f602f54d0024fd818e12d6',1,'ws_client.h']]], - ['connectionstate',['ConnectionState',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9b',1,'ws_client.h']]], - ['connectto',['connectTo',['../class_value_producer.html#a1669282467997608ce6164fe4d729bb2',1,'ValueProducer::connectTo(ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)'],['../class_value_producer.html#adfb3d9679b80c9fae0951ca13911344f',1,'ValueProducer::connectTo(Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)']]], - ['curveinterpolator',['CurveInterpolator',['../class_curve_interpolator.html',1,'CurveInterpolator'],['../class_curve_interpolator.html#a09bdf144307f1264c36d5afaea5c96a3',1,'CurveInterpolator::CurveInterpolator()']]], - ['curveinterpolator_2ecpp',['curveinterpolator.cpp',['../curveinterpolator_8cpp.html',1,'']]], - ['curveinterpolator_2eh',['curveinterpolator.h',['../curveinterpolator_8h.html',1,'']]] -]; diff --git a/docs/search/all_3.js b/docs/search/all_3.js deleted file mode 100644 index 2ebc10527..000000000 --- a/docs/search/all_3.js +++ /dev/null @@ -1,24 +0,0 @@ -var searchData= -[ - ['dallastemperaturesensors',['DallasTemperatureSensors',['../class_dallas_temperature_sensors.html',1,'DallasTemperatureSensors'],['../class_dallas_temperature_sensors.html#a778aa28e0e329028f2811c5ed71cb11d',1,'DallasTemperatureSensors::DallasTemperatureSensors()']]], - ['data_5favailable',['data_available',['../class_s_k_delta.html#a74ab20a661a4f80a336b50fccc4bd9bc',1,'SKDelta']]], - ['datetime',['datetime',['../struct_n_m_e_a_data.html#aae3cb7b0e14cc41ad1c271b9afaae27d',1,'NMEAData']]], - ['debounce',['Debounce',['../class_debounce.html',1,'Debounce'],['../class_debounce.html#a1cf5653ecaffe84d03202cd9f002bba4',1,'Debounce::Debounce()']]], - ['debounce_2ecpp',['debounce.cpp',['../debounce_8cpp.html',1,'']]], - ['debounce_2eh',['debounce.h',['../debounce_8h.html',1,'']]], - ['debug',['Debug',['../sensesp_8h.html#a5ae2f374710d648c2027c78237f5df01',1,'Debug(): sensesp_app.cpp'],['../sensesp__app_8cpp.html#a5ae2f374710d648c2027c78237f5df01',1,'Debug(): sensesp_app.cpp']]], - ['dgnss_5ffix',['dgnss_fix',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a8d26d1fa1d0cda42a29843162786a0b6',1,'nmea_parser.cpp']]], - ['dgps_5fage',['dgps_age',['../struct_n_m_e_a_data.html#af61e9824ffaf9b43c1a95d8d7a93bc10',1,'NMEAData']]], - ['dgps_5fid',['dgps_id',['../struct_n_m_e_a_data.html#a99328058cfe4cf26b5025511d64ce576',1,'NMEAData']]], - ['difference',['Difference',['../class_difference.html',1,'Difference'],['../class_difference.html#ab37fbe4fe6592f7591a124c1b90f8f48',1,'Difference::Difference()']]], - ['difference_2ecpp',['difference.cpp',['../difference_8cpp.html',1,'']]], - ['difference_2eh',['difference.h',['../difference_8h.html',1,'']]], - ['digital_5finput_2ecpp',['digital_input.cpp',['../digital__input_8cpp.html',1,'']]], - ['digital_5finput_2eh',['digital_input.h',['../digital__input_8h.html',1,'']]], - ['digitalinput',['DigitalInput',['../class_digital_input.html',1,'DigitalInput'],['../class_digital_input.html#ac87da1c4d7b53427d71d71b34d25c6eb',1,'DigitalInput::DigitalInput()']]], - ['digitalinputcounter',['DigitalInputCounter',['../class_digital_input_counter.html',1,'DigitalInputCounter'],['../class_digital_input_counter.html#adde82c1aeae1f8f452b3bbb31a3114a5',1,'DigitalInputCounter::DigitalInputCounter()']]], - ['digitalinputvalue',['DigitalInputValue',['../class_digital_input_value.html',1,'DigitalInputValue'],['../class_digital_input_value.html#a04759be73328ea38d11eb7ec63517761',1,'DigitalInputValue::DigitalInputValue()']]], - ['disconnected',['disconnected',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba519f950c18a0ec32082cf9984cd2b225',1,'ws_client.h']]], - ['discovery_2ecpp',['discovery.cpp',['../discovery_8cpp.html',1,'']]], - ['discovery_2eh',['discovery.h',['../discovery_8h.html',1,'']]] -]; diff --git a/docs/search/all_4.js b/docs/search/all_4.js deleted file mode 100644 index b45cc4965..000000000 --- a/docs/search/all_4.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['east',['east',['../struct_e_n_u_vector.html#affaf84db367ff8259448116fe4c75370',1,'ENUVector']]], - ['enable',['Enable',['../class_enable.html',1,'Enable'],['../class_enable.html#a62d0a37863086502e168bfa8ab94ebc0',1,'Enable::Enable()'],['../class_h_t_t_p_server.html#a6f5600d8187ec82cb83e84252a387c38',1,'HTTPServer::enable()'],['../class_w_s_client.html#a1313d063fd61739f7e3ca9b2c126b048',1,'WSClient::enable()'],['../class_sens_e_s_p_app.html#a3d70c22bfd1bf842f6daa83ab2f50f79',1,'SensESPApp::enable()'],['../class_analog_input.html#a34942eae263f68e8f44fa3f405d057fb',1,'AnalogInput::enable()'],['../class_digital_input_value.html#a504c6c9ad6578156df7eb524f9635912',1,'DigitalInputValue::enable()'],['../class_digital_input_counter.html#a9848278592225d90ff71b99ce940771e',1,'DigitalInputCounter::enable()'],['../class_g_p_s_input.html#af94497b920d346ed5ccad18bd4dbfd9c',1,'GPSInput::enable()'],['../class_dallas_temperature_sensors.html#ae30b8206143d488a4d887b4294da6bb2',1,'DallasTemperatureSensors::enable()'],['../class_one_wire_temperature.html#a86817f083dfb5e9373b48d8fd1f8d165',1,'OneWireTemperature::enable()'],['../class_system_hz.html#a2f2337dcbe45cce879392f28579e233d',1,'SystemHz::enable()'],['../class_free_mem.html#aa3487ef2dff96a33778881da391b2129',1,'FreeMem::enable()'],['../class_uptime.html#a677ab855187348527ccdb0725552e02a',1,'Uptime::enable()'],['../class_i_p_addr_dev.html#afd8dec59375d39cf785819f8ea3685a1',1,'IPAddrDev::enable()'],['../class_enable.html#a62ea021bf8d986150be346977a8eede3',1,'Enable::enable()'],['../class_frequency.html#a0d6846952b3295809421ac18633e397e',1,'Frequency::enable()'],['../class_integrator.html#ad52503a30ef9abf171209988d256ec22',1,'Integrator::enable()']]], - ['enable_2ecpp',['enable.cpp',['../enable_8cpp.html',1,'']]], - ['enable_2eh',['enable.h',['../enable_8h.html',1,'']]], - ['enableall',['enableAll',['../class_enable.html#ab55d4552f3b66d7a198377b2d3fc7fa2',1,'Enable']]], - ['enu_5fvelocity',['enu_velocity',['../struct_n_m_e_a_data.html#a1b62fa2b8b0b62d9cef48f7576e0da30',1,'NMEAData']]], - ['enuvector',['ENUVector',['../struct_e_n_u_vector.html',1,'']]], - ['error',['error',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520ad606e435413ea0944dd00d49e901e4ed',1,'nmea_parser.cpp']]], - ['estimated_5fmode',['estimated_mode',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a59f188885f9974ee947a7e5af4b9f5bc',1,'nmea_parser.cpp']]] -]; diff --git a/docs/search/all_5.js b/docs/search/all_5.js deleted file mode 100644 index a11004f00..000000000 --- a/docs/search/all_5.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['flip',['flip',['../class_led_blinker.html#af00270a463b74c855dfc95d98c7bfd7e',1,'LedBlinker']]], - ['freemem',['FreeMem',['../class_free_mem.html',1,'FreeMem'],['../class_free_mem.html#aa8b5f3ef10c4148f75d6dc531a3d46c3',1,'FreeMem::FreeMem()']]], - ['frequency',['Frequency',['../class_frequency.html',1,'Frequency'],['../class_frequency.html#abbaff61b74433bb8a990685be24c3c8b',1,'Frequency::Frequency()']]], - ['frequency_2ecpp',['frequency.cpp',['../frequency_8cpp.html',1,'']]], - ['frequency_2eh',['frequency.h',['../frequency_8h.html',1,'']]] -]; diff --git a/docs/search/all_6.js b/docs/search/all_6.js deleted file mode 100644 index d43339728..000000000 --- a/docs/search/all_6.js +++ /dev/null @@ -1,27 +0,0 @@ -var searchData= -[ - ['geoidal_5fseparation',['geoidal_separation',['../struct_n_m_e_a_data.html#a3acdff78f354082419d01ebfe8846f7f',1,'NMEAData']]], - ['get',['get',['../class_value_producer.html#adaf30ea1027efa0c83c75dfe3afc0c1a',1,'ValueProducer']]], - ['get_5fconfig_5fschema',['get_config_schema',['../class_networking.html#a253025ed2a3c36eb998e7b900155359e',1,'Networking::get_config_schema()'],['../class_w_s_client.html#a78fbe2ccf0f84423abbf9d1047aff0bc',1,'WSClient::get_config_schema()'],['../class_one_wire_temperature.html#a4331b2b91d6c7d000454e741cdce9d0a',1,'OneWireTemperature::get_config_schema()'],['../class_s_k_output.html#a0f29018517bcb51943dae1dd7bbace0a',1,'SKOutput::get_config_schema()'],['../class_s_k_output_time.html#aa283f508ef59103626c835cd37b9bfb3',1,'SKOutputTime::get_config_schema()'],['../class_configurable.html#a73131c4e7dd8134f23a93de861e1c0e4',1,'Configurable::get_config_schema()'],['../class_angle_correction.html#ad31bbb6a8fd400879eceba5f0b2880fe',1,'AngleCorrection::get_config_schema()'],['../class_change_filter.html#a769403176db0e4a619811bbba603d597',1,'ChangeFilter::get_config_schema()'],['../class_curve_interpolator.html#a6f9c593782d05c95ba92810b8f70f287',1,'CurveInterpolator::get_config_schema()'],['../class_difference.html#ac5b6559e3820f2f58bed5d120a440a55',1,'Difference::get_config_schema()'],['../class_frequency.html#a93e3f28917f7faa7411b95745171f6af',1,'Frequency::get_config_schema()'],['../class_integrator.html#a513afaf30460fee68abd295780527d05',1,'Integrator::get_config_schema()'],['../class_linear.html#afc896eaed1df40409ea3ce17d81929cc',1,'Linear::get_config_schema()'],['../class_median.html#aa8515edf3b34ee8439bd77dcfc69a93f',1,'Median::get_config_schema()'],['../class_moving_average.html#ad6f06b147a017e528e3d8b991cec2763',1,'MovingAverage::get_config_schema()'],['../class_voltage_divider_r2.html#ae37065fd9bd093497ff74a9faf5b6cea',1,'VoltageDividerR2::get_config_schema()']]], - ['get_5fconfiguration',['get_configuration',['../class_networking.html#a2b8f2f52b332dc0af375113a64881a8a',1,'Networking::get_configuration()'],['../class_w_s_client.html#a2a41e313d8d3be52cd7bb53e6bbf3117',1,'WSClient::get_configuration()'],['../class_one_wire_temperature.html#a4a1058669383f507ed70bd46f9f0d2f0',1,'OneWireTemperature::get_configuration()'],['../class_s_k_output.html#a1020f0eb3e0eb6bc10f57034c7fbc0c6',1,'SKOutput::get_configuration()'],['../class_s_k_output_time.html#a03982e7159ac7e6d44b8f7c6976617c4',1,'SKOutputTime::get_configuration()'],['../class_configurable.html#a787559a1a907f909d6088d2ec6825b44',1,'Configurable::get_configuration()'],['../class_angle_correction.html#a454172cb376cbeb9f3b7467392bf582e',1,'AngleCorrection::get_configuration()'],['../class_change_filter.html#a6cd0d60d57663d94c1972bf939b40d76',1,'ChangeFilter::get_configuration()'],['../class_curve_interpolator.html#a274cd3426b3e379db1538c71bebad9c8',1,'CurveInterpolator::get_configuration()'],['../class_difference.html#a70f6832fd0b14c5eb5c2c05188757b72',1,'Difference::get_configuration()'],['../class_frequency.html#ae121e43d37643d390bc607def68e0e02',1,'Frequency::get_configuration()'],['../class_integrator.html#a1b4cfd7f598d8456a582865a88d768e7',1,'Integrator::get_configuration()'],['../class_linear.html#a98f7cf12073c2aa89bbb7f89b13f6299',1,'Linear::get_configuration()'],['../class_median.html#a2ce826a6b0cc7e467345671b843d7af2',1,'Median::get_configuration()'],['../class_moving_average.html#a1cac9948f8ca32b8d4446e419b09cccb',1,'MovingAverage::get_configuration()'],['../class_voltage_divider_r2.html#a35275626b89244eb30f0c1be504dbdb6',1,'VoltageDividerR2::get_configuration()']]], - ['get_5fdelta',['get_delta',['../class_s_k_delta.html#ab1592b494b343964703102a4797d3bbc',1,'SKDelta']]], - ['get_5fhostname',['get_hostname',['../class_networking.html#a7a3cac2e878aa2c513451f235c70aff7',1,'Networking::get_hostname()'],['../class_sens_e_s_p_app.html#ac068882b9e9f6092da0818c5e42b48b8',1,'SensESPApp::get_hostname()']]], - ['get_5fnext_5faddress',['get_next_address',['../class_dallas_temperature_sensors.html#a1e1b9cd3dd2bde0d51ef657a490881eb',1,'DallasTemperatureSensors']]], - ['get_5fsensors',['get_sensors',['../class_sensor.html#a772509291ea3a645853975e404ad89f9',1,'Sensor']]], - ['get_5fsk_5fpath',['get_sk_path',['../class_s_k_emitter.html#ab619d4a66c7683bf06350809e8c2153f',1,'SKEmitter']]], - ['get_5fsources',['get_sources',['../class_s_k_emitter.html#a14e45e259c78d1e4ab7bdcce94fc8b02',1,'SKEmitter']]], - ['get_5ftransforms',['get_transforms',['../class_transform_base.html#a17bfeb1e7a836b7bc597aa7d7c4ac116',1,'TransformBase']]], - ['get_5fvalue_5fname',['get_value_name',['../class_system_hz.html#aafe9250142a6c4b234f3d8e64771ce95',1,'SystemHz::get_value_name()'],['../class_free_mem.html#a114359cfbb1cffce40e545bf00889757',1,'FreeMem::get_value_name()'],['../class_uptime.html#a43cdcac661b684e1c746fcdf7224e68f',1,'Uptime::get_value_name()'],['../class_i_p_addr_dev.html#aad770ae7db264bfc4bc33d3d1dca71fb',1,'IPAddrDev::get_value_name()']]], - ['getclassname',['getClassName',['../class_enable.html#af924d33e6ccb0a065af78f264997299f',1,'Enable']]], - ['getenablepriority',['getEnablePriority',['../class_enable.html#a38bebd90f45effcd9fa2781cc43f0d34',1,'Enable']]], - ['gnss_5ffix',['gnss_fix',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520adea098971e394461267006ddf5d2d4b0',1,'nmea_parser.cpp']]], - ['gnss_5fquality',['gnss_quality',['../struct_n_m_e_a_data.html#a8048e071ffb9f37ff425305525f2223a',1,'NMEAData']]], - ['gnssquality',['GNSSQuality',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520',1,'nmea_parser.cpp']]], - ['gnssqualitystrings',['gnssQualityStrings',['../nmea__parser_8cpp.html#a78e0374f91eaf4035ec29121f7e40064',1,'nmea_parser.cpp']]], - ['gpggasentenceparser',['GPGGASentenceParser',['../class_g_p_g_g_a_sentence_parser.html',1,'GPGGASentenceParser'],['../class_g_p_g_g_a_sentence_parser.html#a1a3a77042194bd6ef59b7960c0f35fd1',1,'GPGGASentenceParser::GPGGASentenceParser()']]], - ['gpgllsentenceparser',['GPGLLSentenceParser',['../class_g_p_g_l_l_sentence_parser.html',1,'GPGLLSentenceParser'],['../class_g_p_g_l_l_sentence_parser.html#af4335548b0e919cb23ec9149bc2e8012',1,'GPGLLSentenceParser::GPGLLSentenceParser()']]], - ['gprmcsentenceparser',['GPRMCSentenceParser',['../class_g_p_r_m_c_sentence_parser.html',1,'GPRMCSentenceParser'],['../class_g_p_r_m_c_sentence_parser.html#a8ea0212728334cc4b6fa4aa650fa2e58',1,'GPRMCSentenceParser::GPRMCSentenceParser()']]], - ['gps_2ecpp',['gps.cpp',['../gps_8cpp.html',1,'']]], - ['gps_2eh',['gps.h',['../gps_8h.html',1,'']]], - ['gpsinput',['GPSInput',['../class_g_p_s_input.html',1,'GPSInput'],['../class_g_p_s_input.html#ac434000c2641c7ef06badb2d51f79520',1,'GPSInput::GPSInput()']]] -]; diff --git a/docs/search/all_7.js b/docs/search/all_7.js deleted file mode 100644 index ef3721318..000000000 --- a/docs/search/all_7.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['handle',['handle',['../class_n_m_e_a_parser.html#a8687b75207c6df0c049721fe5a586913',1,'NMEAParser']]], - ['handle_5fconfig',['handle_config',['../class_h_t_t_p_server.html#a3b7406f8ac0cb9b90e86513acee23542',1,'HTTPServer']]], - ['handle_5fdevice_5freset',['handle_device_reset',['../class_h_t_t_p_server.html#ab088a2530794acb9db8a8e1910729c35',1,'HTTPServer']]], - ['handle_5fdevice_5frestart',['handle_device_restart',['../class_h_t_t_p_server.html#a8b03465f1ad5631d0e20cc67e5419562',1,'HTTPServer']]], - ['handle_5finfo',['handle_info',['../class_h_t_t_p_server.html#ac854fa80c31eba36ad3f2dd5f02d4a14',1,'HTTPServer']]], - ['handle_5fnot_5ffound',['handle_not_found',['../class_h_t_t_p_server.html#aafce79dc976b69b318f8fe69f45542be',1,'HTTPServer']]], - ['handle_5fota',['handle_OTA',['../ota_8cpp.html#a6696a10cb1e3746f263fb053fd5df092',1,'ota.cpp']]], - ['horizontal_5fdilution',['horizontal_dilution',['../struct_n_m_e_a_data.html#aa6d1ee7ee222393032e1f57cde891b31',1,'NMEAData']]], - ['http_2ecpp',['http.cpp',['../http_8cpp.html',1,'']]], - ['http_2eh',['http.h',['../http_8h.html',1,'']]], - ['httpserver',['HTTPServer',['../class_h_t_t_p_server.html',1,'HTTPServer'],['../class_h_t_t_p_server.html#adacba9a090d5b0465da86dd6c82953a9',1,'HTTPServer::HTTPServer()']]] -]; diff --git a/docs/search/all_8.js b/docs/search/all_8.js deleted file mode 100644 index 69a6ec5e9..000000000 --- a/docs/search/all_8.js +++ /dev/null @@ -1,18 +0,0 @@ -var searchData= -[ - ['index_2eh',['index.h',['../index_8h.html',1,'']]], - ['input',['input',['../class_curve_interpolator_1_1_sample.html#a43dd7cc1fd950a03a6674056194e935b',1,'CurveInterpolator::Sample']]], - ['input_5fbuffer_5flength',['INPUT_BUFFER_LENGTH',['../nmea__parser_8h.html#a6088978b66925a9ff44bbdf302f00726',1,'nmea_parser.h']]], - ['integerconsumer',['IntegerConsumer',['../valueconsumer_8h.html#a45a844f7269f830a1f708f965627248c',1,'valueconsumer.h']]], - ['integerproducer',['IntegerProducer',['../valueproducer_8h.html#ab74ca4be7de22a21f73128ea38a4cbbb',1,'valueproducer.h']]], - ['integersensor',['IntegerSensor',['../class_integer_sensor.html',1,'IntegerSensor'],['../class_integer_sensor.html#a2214ecc518fbbb314be8ca987aa0e730',1,'IntegerSensor::IntegerSensor()']]], - ['integertransform',['IntegerTransform',['../transform_8h.html#ae9c0b5d70ecdf35d4bd3a0a4bd4e0d17',1,'transform.h']]], - ['integrator',['Integrator',['../class_integrator.html',1,'Integrator'],['../class_integrator.html#a787de1dd45b1ced5607e6209f0e01dd0',1,'Integrator::Integrator()']]], - ['integrator_2ecpp',['integrator.cpp',['../integrator_8cpp.html',1,'']]], - ['integrator_2eh',['integrator.h',['../integrator_8h.html',1,'']]], - ['interrupt_5ftype',['interrupt_type',['../class_digital_input.html#aa4e30fc0836ce2d0934b9eb5d507f116',1,'DigitalInput']]], - ['ipaddrdev',['IPAddrDev',['../class_i_p_addr_dev.html',1,'IPAddrDev'],['../class_i_p_addr_dev.html#ae5d89601ff69fb635850bbaacdd61664',1,'IPAddrDev::IPAddrDev()']]], - ['is_5fconnected',['is_connected',['../class_w_s_client.html#a6ae43b80f511194b43b0dff2763d68b1',1,'WSClient']]], - ['issignalkconnected',['isSignalKConnected',['../class_sens_e_s_p_app.html#adee3f53bc75ae6d5d73a8707dd75600e',1,'SensESPApp']]], - ['iswificonnected',['isWifiConnected',['../class_sens_e_s_p_app.html#a15f6e0569533b417e9724540d758c884',1,'SensESPApp']]] -]; diff --git a/docs/search/all_9.js b/docs/search/all_9.js deleted file mode 100644 index d32a277e6..000000000 --- a/docs/search/all_9.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['js_5fjsoneditor_2eh',['js_jsoneditor.h',['../js__jsoneditor_8h.html',1,'']]], - ['js_5fsensesp_2eh',['js_sensesp.h',['../js__sensesp_8h.html',1,'']]] -]; diff --git a/docs/search/all_a.js b/docs/search/all_a.js deleted file mode 100644 index 043bc8fdf..000000000 --- a/docs/search/all_a.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['lasttime',['lastTime',['../class_debounce.html#a52075b35c5a7036ea7a06813a71117ea',1,'Debounce']]], - ['latitude',['latitude',['../struct_position.html#ac6606384ff43b39b8614dd3b590d6b36',1,'Position']]], - ['led_5fblinker_2ecpp',['led_blinker.cpp',['../led__blinker_8cpp.html',1,'']]], - ['led_5fblinker_2eh',['led_blinker.h',['../led__blinker_8h.html',1,'']]], - ['led_5fpin',['LED_PIN',['../led__blinker_8cpp.html#ab4553be4db9860d940f81d7447173b2f',1,'led_blinker.cpp']]], - ['ledblinker',['LedBlinker',['../class_led_blinker.html',1,'LedBlinker'],['../class_led_blinker.html#a7e774b60394cf16d0be68cfd38197199',1,'LedBlinker::LedBlinker()']]], - ['linear',['Linear',['../class_linear.html',1,'Linear'],['../class_linear.html#ad9477f54820b5a234339d342836e9869',1,'Linear::Linear()']]], - ['linear_2ecpp',['linear.cpp',['../linear_8cpp.html',1,'']]], - ['linear_2eh',['linear.h',['../linear_8h.html',1,'']]], - ['load_5fconfiguration',['load_configuration',['../class_configurable.html#ac2ba4044c81acc2fc6bf95cce411f6a4',1,'Configurable']]], - ['longitude',['longitude',['../struct_position.html#a76a87a4287c53ae7e53eba716e740c12',1,'Position']]], - ['loop',['loop',['../class_w_s_client.html#ae23657a7da08a9413a09e9054495904e',1,'WSClient']]] -]; diff --git a/docs/search/all_b.js b/docs/search/all_b.js deleted file mode 100644 index fcb5bb415..000000000 --- a/docs/search/all_b.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['manual_5finput',['manual_input',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a4692e23f3770a255f880456f7fbec485',1,'nmea_parser.cpp']]], - ['max_5fterms',['MAX_TERMS',['../nmea__parser_8h.html#a6487a496a45b3acfe263589909cfc101',1,'nmea_parser.h']]], - ['maxdelta',['maxDelta',['../class_change_filter.html#aa92a8149f304a8627cc8c990dc929c35',1,'ChangeFilter']]], - ['maxskips',['maxSkips',['../class_change_filter.html#a48314db9ee86e057f0c771573b302331',1,'ChangeFilter']]], - ['median',['Median',['../class_median.html',1,'Median'],['../class_median.html#a986e318f167a85623757c0e247f892fd',1,'Median::Median()']]], - ['median_2ecpp',['median.cpp',['../median_8cpp.html',1,'']]], - ['median_2eh',['median.h',['../median_8h.html',1,'']]], - ['mindelta',['minDelta',['../class_change_filter.html#accc1a8a8df0fd7051708b183b8570b5a',1,'ChangeFilter']]], - ['moving_5faverage_2ecpp',['moving_average.cpp',['../moving__average_8cpp.html',1,'']]], - ['moving_5faverage_2eh',['moving_average.h',['../moving__average_8h.html',1,'']]], - ['movingaverage',['MovingAverage',['../class_moving_average.html',1,'MovingAverage'],['../class_moving_average.html#adda127d69bc5441a3f4ca98d51c87f4b',1,'MovingAverage::MovingAverage()']]], - ['msmindelay',['msMinDelay',['../class_debounce.html#a3e1dca3d133fdef71d95b58a922c478a',1,'Debounce']]] -]; diff --git a/docs/search/all_c.js b/docs/search/all_c.js deleted file mode 100644 index 9c861af78..000000000 --- a/docs/search/all_c.js +++ /dev/null @@ -1,20 +0,0 @@ -var searchData= -[ - ['networking',['Networking',['../class_networking.html',1,'Networking'],['../class_networking.html#a4b8c4d193f59be9aea6b09fd36b4f956',1,'Networking::Networking()']]], - ['networking_2ecpp',['networking.cpp',['../networking_8cpp.html',1,'']]], - ['networking_2eh',['networking.h',['../networking_8h.html',1,'']]], - ['nmea_5fdata',['nmea_data',['../class_g_p_s_input.html#ae31d915c7701418b950dcbba4f87f72a',1,'GPSInput::nmea_data()'],['../class_sentence_parser.html#a77a87f5f20ac471591d2110856e8232b',1,'SentenceParser::nmea_data()']]], - ['nmea_5fparser_2ecpp',['nmea_parser.cpp',['../nmea__parser_8cpp.html',1,'']]], - ['nmea_5fparser_2eh',['nmea_parser.h',['../nmea__parser_8h.html',1,'']]], - ['nmeadata',['NMEAData',['../struct_n_m_e_a_data.html',1,'']]], - ['nmeaparser',['NMEAParser',['../class_n_m_e_a_parser.html',1,'NMEAParser'],['../class_n_m_e_a_parser.html#acf7b68ddc8fc466324abede2dd592ad0',1,'NMEAParser::NMEAParser()']]], - ['no_5fgps',['no_gps',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520acad07a79b4226b1e51ce24a510e6aef0',1,'nmea_parser.cpp']]], - ['north',['north',['../struct_e_n_u_vector.html#a4cf8b3abdd2edd2f9a463fc6394dbb50',1,'ENUVector']]], - ['notify',['notify',['../class_observable.html#a099bf851e05bb8c1a25e83f2a1389e58',1,'Observable']]], - ['null_5fow_5faddr',['null_ow_addr',['../onewire__temperature_8cpp.html#af247f8ddcd26451c72c7706fc884a6dc',1,'onewire_temperature.cpp']]], - ['num_5fsatellites',['num_satellites',['../struct_n_m_e_a_data.html#ac5e91779da683f23c11da42c1db41b60',1,'NMEAData']]], - ['numericconsumer',['NumericConsumer',['../valueconsumer_8h.html#a1220e1ddede7c4512fde395262841b74',1,'valueconsumer.h']]], - ['numericproducer',['NumericProducer',['../valueproducer_8h.html#aaf22f94e9cc9067637cd0625ad9fe352',1,'valueproducer.h']]], - ['numericsensor',['NumericSensor',['../class_numeric_sensor.html',1,'NumericSensor'],['../class_numeric_sensor.html#a456c5509bf2af2007bd9ee1703e8315f',1,'NumericSensor::NumericSensor()']]], - ['numerictransform',['NumericTransform',['../transform_8h.html#ac62af394caec478e4d32c254c96af25b',1,'transform.h']]] -]; diff --git a/docs/search/all_d.js b/docs/search/all_d.js deleted file mode 100644 index 32f42bf75..000000000 --- a/docs/search/all_d.js +++ /dev/null @@ -1,28 +0,0 @@ -var searchData= -[ - ['observable',['Observable',['../class_observable.html',1,'']]], - ['observable_2ecpp',['observable.cpp',['../observable_8cpp.html',1,'']]], - ['observable_2eh',['observable.h',['../observable_8h.html',1,'']]], - ['observablevalue',['ObservableValue',['../class_observable_value.html',1,'ObservableValue< T >'],['../class_observable_value.html#a92bc2f2646592dc209717bb546d86a2c',1,'ObservableValue::ObservableValue()'],['../class_observable_value.html#adaf97ca440787ba883915603056f002b',1,'ObservableValue::ObservableValue(const T &value)']]], - ['observablevalue_2eh',['observablevalue.h',['../observablevalue_8h.html',1,'']]], - ['observablevalue_3c_20enuvector_20_3e',['ObservableValue< ENUVector >',['../class_observable_value.html',1,'']]], - ['observablevalue_3c_20float_20_3e',['ObservableValue< float >',['../class_observable_value.html',1,'']]], - ['observablevalue_3c_20int_20_3e',['ObservableValue< int >',['../class_observable_value.html',1,'']]], - ['observablevalue_3c_20position_20_3e',['ObservableValue< Position >',['../class_observable_value.html',1,'']]], - ['observablevalue_3c_20string_20_3e',['ObservableValue< String >',['../class_observable_value.html',1,'']]], - ['observablevalue_3c_20time_5ft_20_3e',['ObservableValue< time_t >',['../class_observable_value.html',1,'']]], - ['on_5fconnected',['on_connected',['../class_w_s_client.html#a262d41693fab15daa3acac9de78fbf35',1,'WSClient']]], - ['on_5fdisconnected',['on_disconnected',['../class_w_s_client.html#ae110b10f209f55a82e2d700c8c9149a7',1,'WSClient']]], - ['on_5ferror',['on_error',['../class_w_s_client.html#af921852d17f75f46999c2cc1442c4723',1,'WSClient']]], - ['on_5freceive_5fdelta',['on_receive_delta',['../class_w_s_client.html#a2b235f3e62668b6e7923cbbcba00e5c1',1,'WSClient']]], - ['onewire_5ftemperature_2ecpp',['onewire_temperature.cpp',['../onewire__temperature_8cpp.html',1,'']]], - ['onewire_5ftemperature_2eh',['onewire_temperature.h',['../onewire__temperature_8h.html',1,'']]], - ['onewiretemperature',['OneWireTemperature',['../class_one_wire_temperature.html',1,'OneWireTemperature'],['../class_one_wire_temperature.html#a6ceb584282ee0949f76a35ca5ae40a51',1,'OneWireTemperature::OneWireTemperature()']]], - ['operator_3c',['operator<',['../class_enable.html#a5e6385aea4a61b890368ce0b411f690c',1,'Enable::operator<()'],['../class_curve_interpolator_1_1_sample.html#a1cf03a106b3a98056fdb448df6fb9c17',1,'CurveInterpolator::Sample::operator<()']]], - ['operator_3d',['operator=',['../class_observable_value.html#a900b99ef37a8d31e84c48a97b8eff10d',1,'ObservableValue']]], - ['ota_2ecpp',['ota.cpp',['../ota_8cpp.html',1,'']]], - ['ota_2eh',['ota.h',['../ota_8h.html',1,'']]], - ['output',['output',['../class_value_producer.html#a9d3882f6de7ef8b05e78947cf9df2697',1,'ValueProducer::output()'],['../class_curve_interpolator_1_1_sample.html#ada14a8de02c7cc737db52aa3a54a330b',1,'CurveInterpolator::Sample::output()']]], - ['owda_5fto_5fstring',['owda_to_string',['../onewire__temperature_8cpp.html#ad0134b3041182b5f8c3004025183e6eb',1,'onewire_temperature.cpp']]], - ['owdevaddr',['OWDevAddr',['../onewire__temperature_8h.html#aaada9c625aab143feda6189e26144775',1,'onewire_temperature.h']]] -]; diff --git a/docs/search/all_e.js b/docs/search/all_e.js deleted file mode 100644 index 41f62317b..000000000 --- a/docs/search/all_e.js +++ /dev/null @@ -1,22 +0,0 @@ -var searchData= -[ - ['parse',['parse',['../class_sentence_parser.html#ad92490af20d92f942b2e52abfc26007f',1,'SentenceParser::parse(char *buffer, int term_offsets[], int num_terms)=0'],['../class_sentence_parser.html#a74ed90a9386887e9ff2c13dbb12a556e',1,'SentenceParser::parse(char *buffer, int term_offsets[], int num_terms, std::map< String, SentenceParser * > &sentence_parsers)'],['../class_g_p_g_g_a_sentence_parser.html#a6bce986c2fb84af7c54477cd7d43f1b1',1,'GPGGASentenceParser::parse()'],['../class_g_p_g_l_l_sentence_parser.html#ab1583e721b24183fcc59f2b2826b8c52',1,'GPGLLSentenceParser::parse()'],['../class_g_p_r_m_c_sentence_parser.html#a67589bcbddabbe32aac949c3ca9f4a75',1,'GPRMCSentenceParser::parse()'],['../class_p_s_t_i_sentence_parser.html#a308af730f992717a0d1e84416396ae38',1,'PSTISentenceParser::parse(char *buffer, int term_offsets[], int num_terms) override final'],['../class_p_s_t_i_sentence_parser.html#a94f6b75ee9ad9965c4a5cf27e44a12e5',1,'PSTISentenceParser::parse(char *buffer, int term_offsets[], int num_terms, std::map< String, SentenceParser * > &sentence_parsers)'],['../class_p_s_t_i030_sentence_parser.html#aee500dadf0a5ff089d8281c642cdb9bc',1,'PSTI030SentenceParser::parse()'],['../class_p_s_t_i032_sentence_parser.html#ac25a7c9f31987ce7a01ce499f045a6a9',1,'PSTI032SentenceParser::parse()']]], - ['parse_5fav',['parse_AV',['../nmea__parser_8cpp.html#af394f12d9ff6fb97e4c158dac1eb6dc0',1,'nmea_parser.cpp']]], - ['parse_5fdate',['parse_date',['../nmea__parser_8cpp.html#a29c34542d9842302271bb6a0380d4d4d',1,'nmea_parser.cpp']]], - ['parse_5fdouble',['parse_double',['../nmea__parser_8cpp.html#a3f3c4d059e6d6bcc7040f624486d37ae',1,'nmea_parser.cpp']]], - ['parse_5few',['parse_EW',['../nmea__parser_8cpp.html#a113615295f150c16f895c9e2525bbd6e',1,'nmea_parser.cpp']]], - ['parse_5ffloat',['parse_float',['../nmea__parser_8cpp.html#ac534d920f6775ddb34453e554699e1b4',1,'nmea_parser.cpp']]], - ['parse_5fint',['parse_int',['../nmea__parser_8cpp.html#a4de8e35130646cbb488072ff8e457126',1,'nmea_parser.cpp']]], - ['parse_5flatlon',['parse_latlon',['../nmea__parser_8cpp.html#a21e8f85a497e58ad08d5c473e89a8463',1,'nmea_parser.cpp']]], - ['parse_5fm',['parse_M',['../nmea__parser_8cpp.html#a4021e9ad227b156bfdedaa8fd938590b',1,'nmea_parser.cpp']]], - ['parse_5fns',['parse_NS',['../nmea__parser_8cpp.html#a18bf596259e1849f3b6bdbdd765ab606',1,'nmea_parser.cpp']]], - ['parse_5fpsti030_5fmode',['parse_PSTI030_mode',['../nmea__parser_8cpp.html#a37bce694f34f625b2c3e29a1a74c1570',1,'nmea_parser.cpp']]], - ['parse_5ftime',['parse_time',['../nmea__parser_8cpp.html#a202c8d748e820b33d2fb1a324710698b',1,'nmea_parser.cpp']]], - ['pin',['pin',['../class_digital_input.html#a92b46ff35c6b0fcf13644727c0a6b61f',1,'DigitalInput']]], - ['position',['Position',['../struct_position.html',1,'Position'],['../struct_n_m_e_a_data.html#a249d831d604857b04284d4c33719005e',1,'NMEAData::position()']]], - ['precise_5fgnss',['precise_gnss',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520afa0a09a3165e3cc313372a0b424b149c',1,'nmea_parser.cpp']]], - ['progmem',['PROGMEM',['../index_8h.html#a9e09bea0eddc6841460f6654d2ba1a5f',1,'PROGMEM(): index.h'],['../js__jsoneditor_8h.html#a53fb277b2065a969013a1bc4b071abd1',1,'PROGMEM(): js_jsoneditor.h'],['../js__sensesp_8h.html#a8de262bdd3fe0e74c591a5174112011f',1,'PROGMEM(): js_sensesp.h'],['../setup_8h.html#a183306764a8509f2c9635a13289ea64f',1,'PROGMEM(): setup.h']]], - ['psti030sentenceparser',['PSTI030SentenceParser',['../class_p_s_t_i030_sentence_parser.html',1,'PSTI030SentenceParser'],['../class_p_s_t_i030_sentence_parser.html#aa368abaa7d559a9a0893d3846a01fdb7',1,'PSTI030SentenceParser::PSTI030SentenceParser()']]], - ['psti032sentenceparser',['PSTI032SentenceParser',['../class_p_s_t_i032_sentence_parser.html',1,'PSTI032SentenceParser'],['../class_p_s_t_i032_sentence_parser.html#af44c303ec78c3a24a18eacb265cee013',1,'PSTI032SentenceParser::PSTI032SentenceParser()']]], - ['pstisentenceparser',['PSTISentenceParser',['../class_p_s_t_i_sentence_parser.html',1,'PSTISentenceParser'],['../class_p_s_t_i_sentence_parser.html#a4bb2246e947c443d5bca3706e2853cd0',1,'PSTISentenceParser::PSTISentenceParser()']]] -]; diff --git a/docs/search/all_f.js b/docs/search/all_f.js deleted file mode 100644 index 73fc43e1d..000000000 --- a/docs/search/all_f.js +++ /dev/null @@ -1,16 +0,0 @@ -var searchData= -[ - ['r1',['R1',['../class_voltage_divider_r2.html#a927b6c4d26bc24dfd326f63a0a127f66',1,'VoltageDividerR2']]], - ['read_5fjson',['read_json',['../spiffs__storage_8h.html#aeb6c893649f188e378de0c76055b1f01',1,'spiffs_storage.h']]], - ['read_5fstring',['read_string',['../spiffs__storage_8cpp.html#a7429780969e66149e25ea6088bf65b7a',1,'read_string(const String filename): spiffs_storage.cpp'],['../spiffs__storage_8h.html#a7429780969e66149e25ea6088bf65b7a',1,'read_string(const String filename): spiffs_storage.cpp']]], - ['reconstruct_5fnmea_5fsentence',['reconstruct_nmea_sentence',['../nmea__parser_8cpp.html#a69a390886762ecd9593ebeada6f3e52d',1,'nmea_parser.cpp']]], - ['register_5faddress',['register_address',['../class_dallas_temperature_sensors.html#a020ae149bf4372f926d4414ac5c67f5a',1,'DallasTemperatureSensors']]], - ['report_5fsuccess',['report_success',['../nmea__parser_8cpp.html#af7a3600deec155122015fcfedfc126a7',1,'nmea_parser.cpp']]], - ['reset',['reset',['../class_sens_e_s_p_app.html#a0f7605a2c63a3ed250e1c742608956b2',1,'SensESPApp']]], - ['reset_5fsettings',['reset_settings',['../class_networking.html#a207f306c10b8f65ca0904cc26a9ef15c',1,'Networking']]], - ['restart',['restart',['../class_w_s_client.html#a478877d14e5a303c24ea60a4cc4f8752',1,'WSClient']]], - ['rtk_5fage',['rtk_age',['../struct_n_m_e_a_data.html#a5271f014cd9d9b7ebcfa64d772006044',1,'NMEAData']]], - ['rtk_5ffixed_5finteger',['rtk_fixed_integer',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a05e849a8cef5c44456bd54132f622ef2',1,'nmea_parser.cpp']]], - ['rtk_5ffloat',['rtk_float',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a1b64cc0e9a9ebc1afccab8e472ed2e3c',1,'nmea_parser.cpp']]], - ['rtk_5fratio',['rtk_ratio',['../struct_n_m_e_a_data.html#a590b94e1133efeaa9a05456da0dab2dd',1,'NMEAData']]] -]; diff --git a/docs/search/classes_0.js b/docs/search/classes_0.js deleted file mode 100644 index 4b434b560..000000000 --- a/docs/search/classes_0.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['analoginput',['AnalogInput',['../class_analog_input.html',1,'']]], - ['analogvoltage',['AnalogVoltage',['../class_analog_voltage.html',1,'']]], - ['anglecorrection',['AngleCorrection',['../class_angle_correction.html',1,'']]] -]; diff --git a/docs/search/classes_1.js b/docs/search/classes_1.js deleted file mode 100644 index c047f30da..000000000 --- a/docs/search/classes_1.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['changefilter',['ChangeFilter',['../class_change_filter.html',1,'']]], - ['configurable',['Configurable',['../class_configurable.html',1,'']]], - ['curveinterpolator',['CurveInterpolator',['../class_curve_interpolator.html',1,'']]] -]; diff --git a/docs/search/classes_10.js b/docs/search/classes_10.js deleted file mode 100644 index b1eec9a45..000000000 --- a/docs/search/classes_10.js +++ /dev/null @@ -1,18 +0,0 @@ -var searchData= -[ - ['valueconsumer',['ValueConsumer',['../class_value_consumer.html',1,'']]], - ['valueconsumer_3c_20c_20_3e',['ValueConsumer< C >',['../class_value_consumer.html',1,'']]], - ['valueconsumer_3c_20float_20_3e',['ValueConsumer< float >',['../class_value_consumer.html',1,'']]], - ['valueconsumer_3c_20int_20_3e',['ValueConsumer< int >',['../class_value_consumer.html',1,'']]], - ['valueconsumer_3c_20time_5ft_20_3e',['ValueConsumer< time_t >',['../class_value_consumer.html',1,'']]], - ['valueproducer',['ValueProducer',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20enuvector_20_3e',['ValueProducer< ENUVector >',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20float_20_3e',['ValueProducer< float >',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20int_20_3e',['ValueProducer< int >',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20p_20_3e',['ValueProducer< P >',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20position_20_3e',['ValueProducer< Position >',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20string_20_3e',['ValueProducer< String >',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20time_5ft_20_3e',['ValueProducer< time_t >',['../class_value_producer.html',1,'']]], - ['valueproducer_3c_20uint32_5ft_20_3e',['ValueProducer< uint32_t >',['../class_value_producer.html',1,'']]], - ['voltagedividerr2',['VoltageDividerR2',['../class_voltage_divider_r2.html',1,'']]] -]; diff --git a/docs/search/classes_11.js b/docs/search/classes_11.js deleted file mode 100644 index 9cd230f69..000000000 --- a/docs/search/classes_11.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['wsclient',['WSClient',['../class_w_s_client.html',1,'']]] -]; diff --git a/docs/search/classes_2.js b/docs/search/classes_2.js deleted file mode 100644 index f1413de52..000000000 --- a/docs/search/classes_2.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['dallastemperaturesensors',['DallasTemperatureSensors',['../class_dallas_temperature_sensors.html',1,'']]], - ['debounce',['Debounce',['../class_debounce.html',1,'']]], - ['difference',['Difference',['../class_difference.html',1,'']]], - ['digitalinput',['DigitalInput',['../class_digital_input.html',1,'']]], - ['digitalinputcounter',['DigitalInputCounter',['../class_digital_input_counter.html',1,'']]], - ['digitalinputvalue',['DigitalInputValue',['../class_digital_input_value.html',1,'']]] -]; diff --git a/docs/search/classes_3.js b/docs/search/classes_3.js deleted file mode 100644 index 2061e1526..000000000 --- a/docs/search/classes_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['enable',['Enable',['../class_enable.html',1,'']]], - ['enuvector',['ENUVector',['../struct_e_n_u_vector.html',1,'']]] -]; diff --git a/docs/search/classes_4.js b/docs/search/classes_4.js deleted file mode 100644 index 32dffd86f..000000000 --- a/docs/search/classes_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['freemem',['FreeMem',['../class_free_mem.html',1,'']]], - ['frequency',['Frequency',['../class_frequency.html',1,'']]] -]; diff --git a/docs/search/classes_5.js b/docs/search/classes_5.js deleted file mode 100644 index 69c7f6494..000000000 --- a/docs/search/classes_5.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['gpggasentenceparser',['GPGGASentenceParser',['../class_g_p_g_g_a_sentence_parser.html',1,'']]], - ['gpgllsentenceparser',['GPGLLSentenceParser',['../class_g_p_g_l_l_sentence_parser.html',1,'']]], - ['gprmcsentenceparser',['GPRMCSentenceParser',['../class_g_p_r_m_c_sentence_parser.html',1,'']]], - ['gpsinput',['GPSInput',['../class_g_p_s_input.html',1,'']]] -]; diff --git a/docs/search/classes_6.js b/docs/search/classes_6.js deleted file mode 100644 index f9ddcc433..000000000 --- a/docs/search/classes_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['httpserver',['HTTPServer',['../class_h_t_t_p_server.html',1,'']]] -]; diff --git a/docs/search/classes_7.js b/docs/search/classes_7.js deleted file mode 100644 index 0acfa39d4..000000000 --- a/docs/search/classes_7.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['integersensor',['IntegerSensor',['../class_integer_sensor.html',1,'']]], - ['integrator',['Integrator',['../class_integrator.html',1,'']]], - ['ipaddrdev',['IPAddrDev',['../class_i_p_addr_dev.html',1,'']]] -]; diff --git a/docs/search/classes_8.js b/docs/search/classes_8.js deleted file mode 100644 index de872bbb6..000000000 --- a/docs/search/classes_8.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['ledblinker',['LedBlinker',['../class_led_blinker.html',1,'']]], - ['linear',['Linear',['../class_linear.html',1,'']]] -]; diff --git a/docs/search/classes_9.js b/docs/search/classes_9.js deleted file mode 100644 index e3395069f..000000000 --- a/docs/search/classes_9.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['median',['Median',['../class_median.html',1,'']]], - ['movingaverage',['MovingAverage',['../class_moving_average.html',1,'']]] -]; diff --git a/docs/search/classes_a.js b/docs/search/classes_a.js deleted file mode 100644 index 125b4a4b5..000000000 --- a/docs/search/classes_a.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['networking',['Networking',['../class_networking.html',1,'']]], - ['nmeadata',['NMEAData',['../struct_n_m_e_a_data.html',1,'']]], - ['nmeaparser',['NMEAParser',['../class_n_m_e_a_parser.html',1,'']]], - ['numericsensor',['NumericSensor',['../class_numeric_sensor.html',1,'']]] -]; diff --git a/docs/search/classes_b.js b/docs/search/classes_b.js deleted file mode 100644 index 6eb2c06b2..000000000 --- a/docs/search/classes_b.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['observable',['Observable',['../class_observable.html',1,'']]], - ['observablevalue',['ObservableValue',['../class_observable_value.html',1,'']]], - ['observablevalue_3c_20enuvector_20_3e',['ObservableValue< ENUVector >',['../class_observable_value.html',1,'']]], - ['observablevalue_3c_20float_20_3e',['ObservableValue< float >',['../class_observable_value.html',1,'']]], - ['observablevalue_3c_20int_20_3e',['ObservableValue< int >',['../class_observable_value.html',1,'']]], - ['observablevalue_3c_20position_20_3e',['ObservableValue< Position >',['../class_observable_value.html',1,'']]], - ['observablevalue_3c_20string_20_3e',['ObservableValue< String >',['../class_observable_value.html',1,'']]], - ['observablevalue_3c_20time_5ft_20_3e',['ObservableValue< time_t >',['../class_observable_value.html',1,'']]], - ['onewiretemperature',['OneWireTemperature',['../class_one_wire_temperature.html',1,'']]] -]; diff --git a/docs/search/classes_c.js b/docs/search/classes_c.js deleted file mode 100644 index cd142a849..000000000 --- a/docs/search/classes_c.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['position',['Position',['../struct_position.html',1,'']]], - ['psti030sentenceparser',['PSTI030SentenceParser',['../class_p_s_t_i030_sentence_parser.html',1,'']]], - ['psti032sentenceparser',['PSTI032SentenceParser',['../class_p_s_t_i032_sentence_parser.html',1,'']]], - ['pstisentenceparser',['PSTISentenceParser',['../class_p_s_t_i_sentence_parser.html',1,'']]] -]; diff --git a/docs/search/classes_d.js b/docs/search/classes_d.js deleted file mode 100644 index 69c682e9d..000000000 --- a/docs/search/classes_d.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['sample',['Sample',['../class_curve_interpolator_1_1_sample.html',1,'CurveInterpolator']]], - ['sensespapp',['SensESPApp',['../class_sens_e_s_p_app.html',1,'']]], - ['sensor',['Sensor',['../class_sensor.html',1,'']]], - ['sentenceparser',['SentenceParser',['../class_sentence_parser.html',1,'']]], - ['skdelta',['SKDelta',['../class_s_k_delta.html',1,'']]], - ['skemitter',['SKEmitter',['../class_s_k_emitter.html',1,'']]], - ['skoutput',['SKOutput',['../class_s_k_output.html',1,'']]], - ['skoutputtime',['SKOutputTime',['../class_s_k_output_time.html',1,'']]], - ['stringsensor',['StringSensor',['../class_string_sensor.html',1,'']]], - ['symmetrictransform',['SymmetricTransform',['../class_symmetric_transform.html',1,'']]], - ['symmetrictransform_3c_20float_20_3e',['SymmetricTransform< float >',['../class_symmetric_transform.html',1,'']]], - ['systemhz',['SystemHz',['../class_system_hz.html',1,'']]] -]; diff --git a/docs/search/classes_e.js b/docs/search/classes_e.js deleted file mode 100644 index e154d8809..000000000 --- a/docs/search/classes_e.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['timestring',['TimeString',['../class_time_string.html',1,'']]], - ['transform',['Transform',['../class_transform.html',1,'']]], - ['transform_3c_20float_2c_20float_20_3e',['Transform< float, float >',['../class_transform.html',1,'']]], - ['transform_3c_20int_2c_20float_20_3e',['Transform< int, float >',['../class_transform.html',1,'']]], - ['transform_3c_20t_2c_20t_20_3e',['Transform< T, T >',['../class_transform.html',1,'']]], - ['transform_3c_20time_5ft_2c_20string_20_3e',['Transform< time_t, String >',['../class_transform.html',1,'']]], - ['transformbase',['TransformBase',['../class_transform_base.html',1,'']]] -]; diff --git a/docs/search/classes_f.js b/docs/search/classes_f.js deleted file mode 100644 index 95546416e..000000000 --- a/docs/search/classes_f.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['uptime',['Uptime',['../class_uptime.html',1,'']]] -]; diff --git a/docs/search/close.png b/docs/search/close.png deleted file mode 100644 index 9342d3dfe..000000000 Binary files a/docs/search/close.png and /dev/null differ diff --git a/docs/search/defines_0.js b/docs/search/defines_0.js deleted file mode 100644 index e4b7cda8c..000000000 --- a/docs/search/defines_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['led_5fpin',['LED_PIN',['../led__blinker_8cpp.html#ab4553be4db9860d940f81d7447173b2f',1,'led_blinker.cpp']]] -]; diff --git a/docs/search/defines_1.js b/docs/search/defines_1.js deleted file mode 100644 index 97f992d08..000000000 --- a/docs/search/defines_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['use_5flib_5fwebsocket',['USE_LIB_WEBSOCKET',['../sensesp__app_8h.html#a8abe44af131f55591035d3587ca9484d',1,'sensesp_app.h']]] -]; diff --git a/docs/search/defines_2.js b/docs/search/defines_2.js deleted file mode 100644 index b68930e25..000000000 --- a/docs/search/defines_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['wifi_5fconfig_5fportal_5ftimeout',['WIFI_CONFIG_PORTAL_TIMEOUT',['../networking_8cpp.html#a6beb3d9ab4141921e87c56b399230fce',1,'networking.cpp']]] -]; diff --git a/docs/search/enums_0.js b/docs/search/enums_0.js deleted file mode 100644 index b422e8362..000000000 --- a/docs/search/enums_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['connectionstate',['ConnectionState',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9b',1,'ws_client.h']]] -]; diff --git a/docs/search/enums_1.js b/docs/search/enums_1.js deleted file mode 100644 index dce87366b..000000000 --- a/docs/search/enums_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['gnssquality',['GNSSQuality',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520',1,'nmea_parser.cpp']]] -]; diff --git a/docs/search/enumvalues_0.js b/docs/search/enumvalues_0.js deleted file mode 100644 index 67ba59a73..000000000 --- a/docs/search/enumvalues_0.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['connected',['connected',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba8ba3de7243211c98f5ec24395c73d65b',1,'ws_client.h']]], - ['connecting',['connecting',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9bab4dbdd36e3f602f54d0024fd818e12d6',1,'ws_client.h']]] -]; diff --git a/docs/search/enumvalues_1.js b/docs/search/enumvalues_1.js deleted file mode 100644 index bb2f05637..000000000 --- a/docs/search/enumvalues_1.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['dgnss_5ffix',['dgnss_fix',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a8d26d1fa1d0cda42a29843162786a0b6',1,'nmea_parser.cpp']]], - ['disconnected',['disconnected',['../ws__client_8h.html#acdd867d72142510ce53521a63a062f9ba519f950c18a0ec32082cf9984cd2b225',1,'ws_client.h']]] -]; diff --git a/docs/search/enumvalues_2.js b/docs/search/enumvalues_2.js deleted file mode 100644 index 7e78bb063..000000000 --- a/docs/search/enumvalues_2.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['error',['error',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520ad606e435413ea0944dd00d49e901e4ed',1,'nmea_parser.cpp']]], - ['estimated_5fmode',['estimated_mode',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a59f188885f9974ee947a7e5af4b9f5bc',1,'nmea_parser.cpp']]] -]; diff --git a/docs/search/enumvalues_3.js b/docs/search/enumvalues_3.js deleted file mode 100644 index bf4ac3ca5..000000000 --- a/docs/search/enumvalues_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['gnss_5ffix',['gnss_fix',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520adea098971e394461267006ddf5d2d4b0',1,'nmea_parser.cpp']]] -]; diff --git a/docs/search/enumvalues_4.js b/docs/search/enumvalues_4.js deleted file mode 100644 index 272cf111f..000000000 --- a/docs/search/enumvalues_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['manual_5finput',['manual_input',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a4692e23f3770a255f880456f7fbec485',1,'nmea_parser.cpp']]] -]; diff --git a/docs/search/enumvalues_5.js b/docs/search/enumvalues_5.js deleted file mode 100644 index 8a7f64caf..000000000 --- a/docs/search/enumvalues_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['no_5fgps',['no_gps',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520acad07a79b4226b1e51ce24a510e6aef0',1,'nmea_parser.cpp']]] -]; diff --git a/docs/search/enumvalues_6.js b/docs/search/enumvalues_6.js deleted file mode 100644 index 8065c7948..000000000 --- a/docs/search/enumvalues_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['precise_5fgnss',['precise_gnss',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520afa0a09a3165e3cc313372a0b424b149c',1,'nmea_parser.cpp']]] -]; diff --git a/docs/search/enumvalues_7.js b/docs/search/enumvalues_7.js deleted file mode 100644 index 4e8955233..000000000 --- a/docs/search/enumvalues_7.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['rtk_5ffixed_5finteger',['rtk_fixed_integer',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a05e849a8cef5c44456bd54132f622ef2',1,'nmea_parser.cpp']]], - ['rtk_5ffloat',['rtk_float',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a1b64cc0e9a9ebc1afccab8e472ed2e3c',1,'nmea_parser.cpp']]] -]; diff --git a/docs/search/enumvalues_8.js b/docs/search/enumvalues_8.js deleted file mode 100644 index b5ef12630..000000000 --- a/docs/search/enumvalues_8.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['simulator_5fmode',['simulator_mode',['../nmea__parser_8cpp.html#ae6214acf1027a76f58e3b83767cc4520a32b763dac1af6b0b08ab952ea202f6a3',1,'nmea_parser.cpp']]] -]; diff --git a/docs/search/files_0.js b/docs/search/files_0.js deleted file mode 100644 index f7a09558a..000000000 --- a/docs/search/files_0.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['analog_5finput_2ecpp',['analog_input.cpp',['../analog__input_8cpp.html',1,'']]], - ['analog_5finput_2eh',['analog_input.h',['../analog__input_8h.html',1,'']]], - ['analogvoltage_2eh',['analogvoltage.h',['../analogvoltage_8h.html',1,'']]], - ['angle_5fcorrection_2ecpp',['angle_correction.cpp',['../angle__correction_8cpp.html',1,'']]], - ['angle_5fcorrection_2eh',['angle_correction.h',['../angle__correction_8h.html',1,'']]] -]; diff --git a/docs/search/files_1.js b/docs/search/files_1.js deleted file mode 100644 index 708d27639..000000000 --- a/docs/search/files_1.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['change_5ffilter_2ecpp',['change_filter.cpp',['../change__filter_8cpp.html',1,'']]], - ['change_5ffilter_2eh',['change_filter.h',['../change__filter_8h.html',1,'']]], - ['configurable_2ecpp',['configurable.cpp',['../configurable_8cpp.html',1,'']]], - ['configurable_2eh',['configurable.h',['../configurable_8h.html',1,'']]], - ['curveinterpolator_2ecpp',['curveinterpolator.cpp',['../curveinterpolator_8cpp.html',1,'']]], - ['curveinterpolator_2eh',['curveinterpolator.h',['../curveinterpolator_8h.html',1,'']]] -]; diff --git a/docs/search/files_10.js b/docs/search/files_10.js deleted file mode 100644 index 06700036a..000000000 --- a/docs/search/files_10.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['wiring_5fhelpers_2ecpp',['wiring_helpers.cpp',['../wiring__helpers_8cpp.html',1,'']]], - ['wiring_5fhelpers_2eh',['wiring_helpers.h',['../wiring__helpers_8h.html',1,'']]], - ['ws_5fclient_2ecpp',['ws_client.cpp',['../ws__client_8cpp.html',1,'']]], - ['ws_5fclient_2eh',['ws_client.h',['../ws__client_8h.html',1,'']]] -]; diff --git a/docs/search/files_2.js b/docs/search/files_2.js deleted file mode 100644 index 6c33203f9..000000000 --- a/docs/search/files_2.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['debounce_2ecpp',['debounce.cpp',['../debounce_8cpp.html',1,'']]], - ['debounce_2eh',['debounce.h',['../debounce_8h.html',1,'']]], - ['difference_2ecpp',['difference.cpp',['../difference_8cpp.html',1,'']]], - ['difference_2eh',['difference.h',['../difference_8h.html',1,'']]], - ['digital_5finput_2ecpp',['digital_input.cpp',['../digital__input_8cpp.html',1,'']]], - ['digital_5finput_2eh',['digital_input.h',['../digital__input_8h.html',1,'']]], - ['discovery_2ecpp',['discovery.cpp',['../discovery_8cpp.html',1,'']]], - ['discovery_2eh',['discovery.h',['../discovery_8h.html',1,'']]] -]; diff --git a/docs/search/files_3.js b/docs/search/files_3.js deleted file mode 100644 index 8bb7ddf79..000000000 --- a/docs/search/files_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['enable_2ecpp',['enable.cpp',['../enable_8cpp.html',1,'']]], - ['enable_2eh',['enable.h',['../enable_8h.html',1,'']]] -]; diff --git a/docs/search/files_4.js b/docs/search/files_4.js deleted file mode 100644 index c192c2a48..000000000 --- a/docs/search/files_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['frequency_2ecpp',['frequency.cpp',['../frequency_8cpp.html',1,'']]], - ['frequency_2eh',['frequency.h',['../frequency_8h.html',1,'']]] -]; diff --git a/docs/search/files_5.js b/docs/search/files_5.js deleted file mode 100644 index 130ac12d0..000000000 --- a/docs/search/files_5.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['gps_2ecpp',['gps.cpp',['../gps_8cpp.html',1,'']]], - ['gps_2eh',['gps.h',['../gps_8h.html',1,'']]] -]; diff --git a/docs/search/files_6.js b/docs/search/files_6.js deleted file mode 100644 index 244b5162e..000000000 --- a/docs/search/files_6.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['http_2ecpp',['http.cpp',['../http_8cpp.html',1,'']]], - ['http_2eh',['http.h',['../http_8h.html',1,'']]] -]; diff --git a/docs/search/files_7.js b/docs/search/files_7.js deleted file mode 100644 index 9ee53dd2d..000000000 --- a/docs/search/files_7.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['index_2eh',['index.h',['../index_8h.html',1,'']]], - ['integrator_2ecpp',['integrator.cpp',['../integrator_8cpp.html',1,'']]], - ['integrator_2eh',['integrator.h',['../integrator_8h.html',1,'']]] -]; diff --git a/docs/search/files_8.js b/docs/search/files_8.js deleted file mode 100644 index d32a277e6..000000000 --- a/docs/search/files_8.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['js_5fjsoneditor_2eh',['js_jsoneditor.h',['../js__jsoneditor_8h.html',1,'']]], - ['js_5fsensesp_2eh',['js_sensesp.h',['../js__sensesp_8h.html',1,'']]] -]; diff --git a/docs/search/files_9.js b/docs/search/files_9.js deleted file mode 100644 index 647f2a77c..000000000 --- a/docs/search/files_9.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['led_5fblinker_2ecpp',['led_blinker.cpp',['../led__blinker_8cpp.html',1,'']]], - ['led_5fblinker_2eh',['led_blinker.h',['../led__blinker_8h.html',1,'']]], - ['linear_2ecpp',['linear.cpp',['../linear_8cpp.html',1,'']]], - ['linear_2eh',['linear.h',['../linear_8h.html',1,'']]] -]; diff --git a/docs/search/files_a.js b/docs/search/files_a.js deleted file mode 100644 index 004d1af66..000000000 --- a/docs/search/files_a.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['median_2ecpp',['median.cpp',['../median_8cpp.html',1,'']]], - ['median_2eh',['median.h',['../median_8h.html',1,'']]], - ['moving_5faverage_2ecpp',['moving_average.cpp',['../moving__average_8cpp.html',1,'']]], - ['moving_5faverage_2eh',['moving_average.h',['../moving__average_8h.html',1,'']]] -]; diff --git a/docs/search/files_b.js b/docs/search/files_b.js deleted file mode 100644 index 64b5b44e6..000000000 --- a/docs/search/files_b.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['networking_2ecpp',['networking.cpp',['../networking_8cpp.html',1,'']]], - ['networking_2eh',['networking.h',['../networking_8h.html',1,'']]], - ['nmea_5fparser_2ecpp',['nmea_parser.cpp',['../nmea__parser_8cpp.html',1,'']]], - ['nmea_5fparser_2eh',['nmea_parser.h',['../nmea__parser_8h.html',1,'']]] -]; diff --git a/docs/search/files_c.js b/docs/search/files_c.js deleted file mode 100644 index 1e09aa400..000000000 --- a/docs/search/files_c.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['observable_2ecpp',['observable.cpp',['../observable_8cpp.html',1,'']]], - ['observable_2eh',['observable.h',['../observable_8h.html',1,'']]], - ['observablevalue_2eh',['observablevalue.h',['../observablevalue_8h.html',1,'']]], - ['onewire_5ftemperature_2ecpp',['onewire_temperature.cpp',['../onewire__temperature_8cpp.html',1,'']]], - ['onewire_5ftemperature_2eh',['onewire_temperature.h',['../onewire__temperature_8h.html',1,'']]], - ['ota_2ecpp',['ota.cpp',['../ota_8cpp.html',1,'']]], - ['ota_2eh',['ota.h',['../ota_8h.html',1,'']]] -]; diff --git a/docs/search/files_d.js b/docs/search/files_d.js deleted file mode 100644 index 6a6169856..000000000 --- a/docs/search/files_d.js +++ /dev/null @@ -1,22 +0,0 @@ -var searchData= -[ - ['sensesp_2eh',['sensesp.h',['../sensesp_8h.html',1,'']]], - ['sensesp_5fapp_2ecpp',['sensesp_app.cpp',['../sensesp__app_8cpp.html',1,'']]], - ['sensesp_5fapp_2eh',['sensesp_app.h',['../sensesp__app_8h.html',1,'']]], - ['sensor_2ecpp',['sensor.cpp',['../sensor_8cpp.html',1,'']]], - ['sensor_2eh',['sensor.h',['../sensor_8h.html',1,'']]], - ['setup_2eh',['setup.h',['../setup_8h.html',1,'']]], - ['signalk_5fdelta_2ecpp',['signalk_delta.cpp',['../signalk__delta_8cpp.html',1,'']]], - ['signalk_5fdelta_2eh',['signalk_delta.h',['../signalk__delta_8h.html',1,'']]], - ['signalk_5femitter_2ecpp',['signalk_emitter.cpp',['../signalk__emitter_8cpp.html',1,'']]], - ['signalk_5femitter_2eh',['signalk_emitter.h',['../signalk__emitter_8h.html',1,'']]], - ['signalk_5foutput_2eh',['signalk_output.h',['../signalk__output_8h.html',1,'']]], - ['signalk_5fposition_2ecpp',['signalk_position.cpp',['../signalk__position_8cpp.html',1,'']]], - ['signalk_5fposition_2eh',['signalk_position.h',['../signalk__position_8h.html',1,'']]], - ['signalk_5ftime_2ecpp',['signalk_time.cpp',['../signalk__time_8cpp.html',1,'']]], - ['signalk_5ftime_2eh',['signalk_time.h',['../signalk__time_8h.html',1,'']]], - ['spiffs_5fstorage_2ecpp',['spiffs_storage.cpp',['../spiffs__storage_8cpp.html',1,'']]], - ['spiffs_5fstorage_2eh',['spiffs_storage.h',['../spiffs__storage_8h.html',1,'']]], - ['system_5finfo_2ecpp',['system_info.cpp',['../system__info_8cpp.html',1,'']]], - ['system_5finfo_2eh',['system_info.h',['../system__info_8h.html',1,'']]] -]; diff --git a/docs/search/files_e.js b/docs/search/files_e.js deleted file mode 100644 index 348b1ee15..000000000 --- a/docs/search/files_e.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['timestring_2ecpp',['timestring.cpp',['../timestring_8cpp.html',1,'']]], - ['timestring_2eh',['timestring.h',['../timestring_8h.html',1,'']]], - ['transform_2ecpp',['transform.cpp',['../transform_8cpp.html',1,'']]], - ['transform_2eh',['transform.h',['../transform_8h.html',1,'']]] -]; diff --git a/docs/search/files_f.js b/docs/search/files_f.js deleted file mode 100644 index 839d94562..000000000 --- a/docs/search/files_f.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['valueconsumer_2eh',['valueconsumer.h',['../valueconsumer_8h.html',1,'']]], - ['valueproducer_2eh',['valueproducer.h',['../valueproducer_8h.html',1,'']]], - ['voltagedividerr2_2ecpp',['voltagedividerR2.cpp',['../voltagedivider_r2_8cpp.html',1,'']]], - ['voltagedividerr2_2eh',['voltagedividerR2.h',['../voltagedivider_r2_8h.html',1,'']]] -]; diff --git a/docs/search/functions_0.js b/docs/search/functions_0.js deleted file mode 100644 index ee168b06e..000000000 --- a/docs/search/functions_0.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['add_5fsentence_5fparser',['add_sentence_parser',['../class_n_m_e_a_parser.html#a438b3fd8f8587b55a3785656651f73a6',1,'NMEAParser']]], - ['addsample',['addSample',['../class_curve_interpolator.html#a314df8dc54dc73798197c9c9ce6859ac',1,'CurveInterpolator']]], - ['analoginput',['AnalogInput',['../class_analog_input.html#af40968136e406531f8838434f1c1356b',1,'AnalogInput']]], - ['analogvoltage',['AnalogVoltage',['../class_analog_voltage.html#a22cee4790f99a391a883370cac00894a',1,'AnalogVoltage']]], - ['anglecorrection',['AngleCorrection',['../class_angle_correction.html#a6a023df6e49e8ada977738dc8cbe150c',1,'AngleCorrection']]], - ['append',['append',['../class_s_k_delta.html#afacfa3952be6179d0e96960575f393a8',1,'SKDelta']]], - ['as_5fsignalk',['as_signalK',['../class_s_k_emitter.html#aa08f537c7d7b1782fea4d381a65cf521',1,'SKEmitter::as_signalK()'],['../class_s_k_output.html#a07b3524ca9ffa1dff03f4bf522d9e3d2',1,'SKOutput::as_signalK()'],['../class_s_k_output_time.html#a09b9f813788470bd06891f34ba58d84b',1,'SKOutputTime::as_signalK()'],['../class_s_k_output.html#afb74fff00aed31212a5150035ddacd4e',1,'SKOutput::as_signalK()'],['../class_s_k_output.html#afb74fff00aed31212a5150035ddacd4e',1,'SKOutput::as_signalK()']]], - ['attach',['attach',['../class_observable.html#af72ed9c9cf7157a33caad4b930232e69',1,'Observable']]] -]; diff --git a/docs/search/functions_1.js b/docs/search/functions_1.js deleted file mode 100644 index 9c5f9654e..000000000 --- a/docs/search/functions_1.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['changefilter',['ChangeFilter',['../class_change_filter.html#a6ca0d72e2d4f5afc36ec6c38513cb9c3',1,'ChangeFilter']]], - ['check_5fconnection',['check_connection',['../class_networking.html#ae4b12924970227730df3377144301a7c',1,'Networking']]], - ['clearsamples',['clearSamples',['../class_curve_interpolator.html#afb1dbb8e85015e2909dff8495875f8f5',1,'CurveInterpolator']]], - ['configurable',['Configurable',['../class_configurable.html#a8972a439fb9b734ff68d27c699640f78',1,'Configurable']]], - ['connect',['connect',['../class_w_s_client.html#a1612670a5dccbc8a39518ae972fbae90',1,'WSClient::connect()'],['../class_sens_e_s_p_app.html#ac53d90429563f50e4aca5224a1e85afd',1,'SensESPApp::connect()']]], - ['connect_5f1to1_5fh',['connect_1to1_h',['../class_sens_e_s_p_app.html#aa6e3bc4bb1c696cc0bef02835ce0f7bf',1,'SensESPApp']]], - ['connectfrom',['connectFrom',['../class_value_consumer.html#a6adf62d8d87ffa3ce70bb85379a68715',1,'ValueConsumer::connectFrom()'],['../class_transform.html#a7721846cbfe5b3d95c6f1f40cb387c5d',1,'Transform::connectFrom()']]], - ['connectto',['connectTo',['../class_value_producer.html#a1669282467997608ce6164fe4d729bb2',1,'ValueProducer::connectTo(ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)'],['../class_value_producer.html#adfb3d9679b80c9fae0951ca13911344f',1,'ValueProducer::connectTo(Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)']]], - ['curveinterpolator',['CurveInterpolator',['../class_curve_interpolator.html#a09bdf144307f1264c36d5afaea5c96a3',1,'CurveInterpolator']]] -]; diff --git a/docs/search/functions_10.js b/docs/search/functions_10.js deleted file mode 100644 index 166a91b07..000000000 --- a/docs/search/functions_10.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['uptime',['Uptime',['../class_uptime.html#a3723d5d7c5b11879065dc3defb6e171f',1,'Uptime']]] -]; diff --git a/docs/search/functions_11.js b/docs/search/functions_11.js deleted file mode 100644 index d1f67275e..000000000 --- a/docs/search/functions_11.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['valueproducer',['ValueProducer',['../class_value_producer.html#a0ef05992883120f7202c14fd8e577103',1,'ValueProducer']]], - ['voltagedividerr2',['VoltageDividerR2',['../class_voltage_divider_r2.html#a609ab5e2db4122ddc875a94ba8f9d325',1,'VoltageDividerR2']]] -]; diff --git a/docs/search/functions_12.js b/docs/search/functions_12.js deleted file mode 100644 index 1a1a18982..000000000 --- a/docs/search/functions_12.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['websocketclientevent',['webSocketClientEvent',['../ws__client_8cpp.html#a5e74f160471b58a262cceef5edaea7e0',1,'ws_client.cpp']]], - ['write_5fjson',['write_json',['../spiffs__storage_8h.html#afc3e0da568f2f14c9954eeab665ab9cd',1,'spiffs_storage.h']]], - ['write_5fstring',['write_string',['../spiffs__storage_8cpp.html#ae1cd66733f6f724334874c5ff65b958b',1,'write_string(const String filename, String data): spiffs_storage.cpp'],['../spiffs__storage_8h.html#ae1cd66733f6f724334874c5ff65b958b',1,'write_string(const String filename, String data): spiffs_storage.cpp']]], - ['wsclient',['WSClient',['../class_w_s_client.html#a46394a4855cdb0d9587fde318574b6e4',1,'WSClient']]] -]; diff --git a/docs/search/functions_13.js b/docs/search/functions_13.js deleted file mode 100644 index 4591fc562..000000000 --- a/docs/search/functions_13.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['_7ehttpserver',['~HTTPServer',['../class_h_t_t_p_server.html#af09066b05417f9a9ce9f1cd8e5ad9e18',1,'HTTPServer']]] -]; diff --git a/docs/search/functions_2.js b/docs/search/functions_2.js deleted file mode 100644 index 73c6159fe..000000000 --- a/docs/search/functions_2.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['dallastemperaturesensors',['DallasTemperatureSensors',['../class_dallas_temperature_sensors.html#a778aa28e0e329028f2811c5ed71cb11d',1,'DallasTemperatureSensors']]], - ['data_5favailable',['data_available',['../class_s_k_delta.html#a74ab20a661a4f80a336b50fccc4bd9bc',1,'SKDelta']]], - ['debounce',['Debounce',['../class_debounce.html#a1cf5653ecaffe84d03202cd9f002bba4',1,'Debounce']]], - ['difference',['Difference',['../class_difference.html#ab37fbe4fe6592f7591a124c1b90f8f48',1,'Difference']]], - ['digitalinput',['DigitalInput',['../class_digital_input.html#ac87da1c4d7b53427d71d71b34d25c6eb',1,'DigitalInput']]], - ['digitalinputcounter',['DigitalInputCounter',['../class_digital_input_counter.html#adde82c1aeae1f8f452b3bbb31a3114a5',1,'DigitalInputCounter']]], - ['digitalinputvalue',['DigitalInputValue',['../class_digital_input_value.html#a04759be73328ea38d11eb7ec63517761',1,'DigitalInputValue']]] -]; diff --git a/docs/search/functions_3.js b/docs/search/functions_3.js deleted file mode 100644 index 174f6204a..000000000 --- a/docs/search/functions_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['enable',['Enable',['../class_enable.html#a62d0a37863086502e168bfa8ab94ebc0',1,'Enable::Enable()'],['../class_h_t_t_p_server.html#a6f5600d8187ec82cb83e84252a387c38',1,'HTTPServer::enable()'],['../class_w_s_client.html#a1313d063fd61739f7e3ca9b2c126b048',1,'WSClient::enable()'],['../class_sens_e_s_p_app.html#a3d70c22bfd1bf842f6daa83ab2f50f79',1,'SensESPApp::enable()'],['../class_analog_input.html#a34942eae263f68e8f44fa3f405d057fb',1,'AnalogInput::enable()'],['../class_digital_input_value.html#a504c6c9ad6578156df7eb524f9635912',1,'DigitalInputValue::enable()'],['../class_digital_input_counter.html#a9848278592225d90ff71b99ce940771e',1,'DigitalInputCounter::enable()'],['../class_g_p_s_input.html#af94497b920d346ed5ccad18bd4dbfd9c',1,'GPSInput::enable()'],['../class_dallas_temperature_sensors.html#ae30b8206143d488a4d887b4294da6bb2',1,'DallasTemperatureSensors::enable()'],['../class_one_wire_temperature.html#a86817f083dfb5e9373b48d8fd1f8d165',1,'OneWireTemperature::enable()'],['../class_system_hz.html#a2f2337dcbe45cce879392f28579e233d',1,'SystemHz::enable()'],['../class_free_mem.html#aa3487ef2dff96a33778881da391b2129',1,'FreeMem::enable()'],['../class_uptime.html#a677ab855187348527ccdb0725552e02a',1,'Uptime::enable()'],['../class_i_p_addr_dev.html#afd8dec59375d39cf785819f8ea3685a1',1,'IPAddrDev::enable()'],['../class_enable.html#a62ea021bf8d986150be346977a8eede3',1,'Enable::enable()'],['../class_frequency.html#a0d6846952b3295809421ac18633e397e',1,'Frequency::enable()'],['../class_integrator.html#ad52503a30ef9abf171209988d256ec22',1,'Integrator::enable()']]], - ['enableall',['enableAll',['../class_enable.html#ab55d4552f3b66d7a198377b2d3fc7fa2',1,'Enable']]] -]; diff --git a/docs/search/functions_4.js b/docs/search/functions_4.js deleted file mode 100644 index 3c427c6e5..000000000 --- a/docs/search/functions_4.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['flip',['flip',['../class_led_blinker.html#af00270a463b74c855dfc95d98c7bfd7e',1,'LedBlinker']]], - ['freemem',['FreeMem',['../class_free_mem.html#aa8b5f3ef10c4148f75d6dc531a3d46c3',1,'FreeMem']]], - ['frequency',['Frequency',['../class_frequency.html#abbaff61b74433bb8a990685be24c3c8b',1,'Frequency']]] -]; diff --git a/docs/search/functions_5.js b/docs/search/functions_5.js deleted file mode 100644 index b99fc9c71..000000000 --- a/docs/search/functions_5.js +++ /dev/null @@ -1,20 +0,0 @@ -var searchData= -[ - ['get',['get',['../class_value_producer.html#adaf30ea1027efa0c83c75dfe3afc0c1a',1,'ValueProducer']]], - ['get_5fconfig_5fschema',['get_config_schema',['../class_networking.html#a253025ed2a3c36eb998e7b900155359e',1,'Networking::get_config_schema()'],['../class_w_s_client.html#a78fbe2ccf0f84423abbf9d1047aff0bc',1,'WSClient::get_config_schema()'],['../class_one_wire_temperature.html#a4331b2b91d6c7d000454e741cdce9d0a',1,'OneWireTemperature::get_config_schema()'],['../class_s_k_output.html#a0f29018517bcb51943dae1dd7bbace0a',1,'SKOutput::get_config_schema()'],['../class_s_k_output_time.html#aa283f508ef59103626c835cd37b9bfb3',1,'SKOutputTime::get_config_schema()'],['../class_configurable.html#a73131c4e7dd8134f23a93de861e1c0e4',1,'Configurable::get_config_schema()'],['../class_angle_correction.html#ad31bbb6a8fd400879eceba5f0b2880fe',1,'AngleCorrection::get_config_schema()'],['../class_change_filter.html#a769403176db0e4a619811bbba603d597',1,'ChangeFilter::get_config_schema()'],['../class_curve_interpolator.html#a6f9c593782d05c95ba92810b8f70f287',1,'CurveInterpolator::get_config_schema()'],['../class_difference.html#ac5b6559e3820f2f58bed5d120a440a55',1,'Difference::get_config_schema()'],['../class_frequency.html#a93e3f28917f7faa7411b95745171f6af',1,'Frequency::get_config_schema()'],['../class_integrator.html#a513afaf30460fee68abd295780527d05',1,'Integrator::get_config_schema()'],['../class_linear.html#afc896eaed1df40409ea3ce17d81929cc',1,'Linear::get_config_schema()'],['../class_median.html#aa8515edf3b34ee8439bd77dcfc69a93f',1,'Median::get_config_schema()'],['../class_moving_average.html#ad6f06b147a017e528e3d8b991cec2763',1,'MovingAverage::get_config_schema()'],['../class_voltage_divider_r2.html#ae37065fd9bd093497ff74a9faf5b6cea',1,'VoltageDividerR2::get_config_schema()']]], - ['get_5fconfiguration',['get_configuration',['../class_networking.html#a2b8f2f52b332dc0af375113a64881a8a',1,'Networking::get_configuration()'],['../class_w_s_client.html#a2a41e313d8d3be52cd7bb53e6bbf3117',1,'WSClient::get_configuration()'],['../class_one_wire_temperature.html#a4a1058669383f507ed70bd46f9f0d2f0',1,'OneWireTemperature::get_configuration()'],['../class_s_k_output.html#a1020f0eb3e0eb6bc10f57034c7fbc0c6',1,'SKOutput::get_configuration()'],['../class_s_k_output_time.html#a03982e7159ac7e6d44b8f7c6976617c4',1,'SKOutputTime::get_configuration()'],['../class_configurable.html#a787559a1a907f909d6088d2ec6825b44',1,'Configurable::get_configuration()'],['../class_angle_correction.html#a454172cb376cbeb9f3b7467392bf582e',1,'AngleCorrection::get_configuration()'],['../class_change_filter.html#a6cd0d60d57663d94c1972bf939b40d76',1,'ChangeFilter::get_configuration()'],['../class_curve_interpolator.html#a274cd3426b3e379db1538c71bebad9c8',1,'CurveInterpolator::get_configuration()'],['../class_difference.html#a70f6832fd0b14c5eb5c2c05188757b72',1,'Difference::get_configuration()'],['../class_frequency.html#ae121e43d37643d390bc607def68e0e02',1,'Frequency::get_configuration()'],['../class_integrator.html#a1b4cfd7f598d8456a582865a88d768e7',1,'Integrator::get_configuration()'],['../class_linear.html#a98f7cf12073c2aa89bbb7f89b13f6299',1,'Linear::get_configuration()'],['../class_median.html#a2ce826a6b0cc7e467345671b843d7af2',1,'Median::get_configuration()'],['../class_moving_average.html#a1cac9948f8ca32b8d4446e419b09cccb',1,'MovingAverage::get_configuration()'],['../class_voltage_divider_r2.html#a35275626b89244eb30f0c1be504dbdb6',1,'VoltageDividerR2::get_configuration()']]], - ['get_5fdelta',['get_delta',['../class_s_k_delta.html#ab1592b494b343964703102a4797d3bbc',1,'SKDelta']]], - ['get_5fhostname',['get_hostname',['../class_networking.html#a7a3cac2e878aa2c513451f235c70aff7',1,'Networking::get_hostname()'],['../class_sens_e_s_p_app.html#ac068882b9e9f6092da0818c5e42b48b8',1,'SensESPApp::get_hostname()']]], - ['get_5fnext_5faddress',['get_next_address',['../class_dallas_temperature_sensors.html#a1e1b9cd3dd2bde0d51ef657a490881eb',1,'DallasTemperatureSensors']]], - ['get_5fsensors',['get_sensors',['../class_sensor.html#a772509291ea3a645853975e404ad89f9',1,'Sensor']]], - ['get_5fsk_5fpath',['get_sk_path',['../class_s_k_emitter.html#ab619d4a66c7683bf06350809e8c2153f',1,'SKEmitter']]], - ['get_5fsources',['get_sources',['../class_s_k_emitter.html#a14e45e259c78d1e4ab7bdcce94fc8b02',1,'SKEmitter']]], - ['get_5ftransforms',['get_transforms',['../class_transform_base.html#a17bfeb1e7a836b7bc597aa7d7c4ac116',1,'TransformBase']]], - ['get_5fvalue_5fname',['get_value_name',['../class_system_hz.html#aafe9250142a6c4b234f3d8e64771ce95',1,'SystemHz::get_value_name()'],['../class_free_mem.html#a114359cfbb1cffce40e545bf00889757',1,'FreeMem::get_value_name()'],['../class_uptime.html#a43cdcac661b684e1c746fcdf7224e68f',1,'Uptime::get_value_name()'],['../class_i_p_addr_dev.html#aad770ae7db264bfc4bc33d3d1dca71fb',1,'IPAddrDev::get_value_name()']]], - ['getclassname',['getClassName',['../class_enable.html#af924d33e6ccb0a065af78f264997299f',1,'Enable']]], - ['getenablepriority',['getEnablePriority',['../class_enable.html#a38bebd90f45effcd9fa2781cc43f0d34',1,'Enable']]], - ['gpggasentenceparser',['GPGGASentenceParser',['../class_g_p_g_g_a_sentence_parser.html#a1a3a77042194bd6ef59b7960c0f35fd1',1,'GPGGASentenceParser']]], - ['gpgllsentenceparser',['GPGLLSentenceParser',['../class_g_p_g_l_l_sentence_parser.html#af4335548b0e919cb23ec9149bc2e8012',1,'GPGLLSentenceParser']]], - ['gprmcsentenceparser',['GPRMCSentenceParser',['../class_g_p_r_m_c_sentence_parser.html#a8ea0212728334cc4b6fa4aa650fa2e58',1,'GPRMCSentenceParser']]], - ['gpsinput',['GPSInput',['../class_g_p_s_input.html#ac434000c2641c7ef06badb2d51f79520',1,'GPSInput']]] -]; diff --git a/docs/search/functions_6.js b/docs/search/functions_6.js deleted file mode 100644 index 14d991a67..000000000 --- a/docs/search/functions_6.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['handle',['handle',['../class_n_m_e_a_parser.html#a8687b75207c6df0c049721fe5a586913',1,'NMEAParser']]], - ['handle_5fconfig',['handle_config',['../class_h_t_t_p_server.html#a3b7406f8ac0cb9b90e86513acee23542',1,'HTTPServer']]], - ['handle_5fdevice_5freset',['handle_device_reset',['../class_h_t_t_p_server.html#ab088a2530794acb9db8a8e1910729c35',1,'HTTPServer']]], - ['handle_5fdevice_5frestart',['handle_device_restart',['../class_h_t_t_p_server.html#a8b03465f1ad5631d0e20cc67e5419562',1,'HTTPServer']]], - ['handle_5finfo',['handle_info',['../class_h_t_t_p_server.html#ac854fa80c31eba36ad3f2dd5f02d4a14',1,'HTTPServer']]], - ['handle_5fnot_5ffound',['handle_not_found',['../class_h_t_t_p_server.html#aafce79dc976b69b318f8fe69f45542be',1,'HTTPServer']]], - ['handle_5fota',['handle_OTA',['../ota_8cpp.html#a6696a10cb1e3746f263fb053fd5df092',1,'ota.cpp']]], - ['httpserver',['HTTPServer',['../class_h_t_t_p_server.html#adacba9a090d5b0465da86dd6c82953a9',1,'HTTPServer']]] -]; diff --git a/docs/search/functions_7.js b/docs/search/functions_7.js deleted file mode 100644 index c8d356ae1..000000000 --- a/docs/search/functions_7.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['integersensor',['IntegerSensor',['../class_integer_sensor.html#a2214ecc518fbbb314be8ca987aa0e730',1,'IntegerSensor']]], - ['integrator',['Integrator',['../class_integrator.html#a787de1dd45b1ced5607e6209f0e01dd0',1,'Integrator']]], - ['ipaddrdev',['IPAddrDev',['../class_i_p_addr_dev.html#ae5d89601ff69fb635850bbaacdd61664',1,'IPAddrDev']]], - ['is_5fconnected',['is_connected',['../class_w_s_client.html#a6ae43b80f511194b43b0dff2763d68b1',1,'WSClient']]], - ['issignalkconnected',['isSignalKConnected',['../class_sens_e_s_p_app.html#adee3f53bc75ae6d5d73a8707dd75600e',1,'SensESPApp']]], - ['iswificonnected',['isWifiConnected',['../class_sens_e_s_p_app.html#a15f6e0569533b417e9724540d758c884',1,'SensESPApp']]] -]; diff --git a/docs/search/functions_8.js b/docs/search/functions_8.js deleted file mode 100644 index 9b734ebdf..000000000 --- a/docs/search/functions_8.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['ledblinker',['LedBlinker',['../class_led_blinker.html#a7e774b60394cf16d0be68cfd38197199',1,'LedBlinker']]], - ['linear',['Linear',['../class_linear.html#ad9477f54820b5a234339d342836e9869',1,'Linear']]], - ['load_5fconfiguration',['load_configuration',['../class_configurable.html#ac2ba4044c81acc2fc6bf95cce411f6a4',1,'Configurable']]], - ['loop',['loop',['../class_w_s_client.html#ae23657a7da08a9413a09e9054495904e',1,'WSClient']]] -]; diff --git a/docs/search/functions_9.js b/docs/search/functions_9.js deleted file mode 100644 index de83c8d10..000000000 --- a/docs/search/functions_9.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['median',['Median',['../class_median.html#a986e318f167a85623757c0e247f892fd',1,'Median']]], - ['movingaverage',['MovingAverage',['../class_moving_average.html#adda127d69bc5441a3f4ca98d51c87f4b',1,'MovingAverage']]] -]; diff --git a/docs/search/functions_a.js b/docs/search/functions_a.js deleted file mode 100644 index 3aaf0562b..000000000 --- a/docs/search/functions_a.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['networking',['Networking',['../class_networking.html#a4b8c4d193f59be9aea6b09fd36b4f956',1,'Networking']]], - ['nmeaparser',['NMEAParser',['../class_n_m_e_a_parser.html#acf7b68ddc8fc466324abede2dd592ad0',1,'NMEAParser']]], - ['notify',['notify',['../class_observable.html#a099bf851e05bb8c1a25e83f2a1389e58',1,'Observable']]], - ['numericsensor',['NumericSensor',['../class_numeric_sensor.html#a456c5509bf2af2007bd9ee1703e8315f',1,'NumericSensor']]] -]; diff --git a/docs/search/functions_b.html b/docs/search/functions_b.html deleted file mode 100644 index c690013ae..000000000 --- a/docs/search/functions_b.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
          -
          Loading...
          -
          - -
          Searching...
          -
          No Matches
          - -
          - - diff --git a/docs/search/functions_b.js b/docs/search/functions_b.js deleted file mode 100644 index 6cd376db5..000000000 --- a/docs/search/functions_b.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['observablevalue',['ObservableValue',['../class_observable_value.html#a92bc2f2646592dc209717bb546d86a2c',1,'ObservableValue::ObservableValue()'],['../class_observable_value.html#adaf97ca440787ba883915603056f002b',1,'ObservableValue::ObservableValue(const T &value)']]], - ['on_5fconnected',['on_connected',['../class_w_s_client.html#a262d41693fab15daa3acac9de78fbf35',1,'WSClient']]], - ['on_5fdisconnected',['on_disconnected',['../class_w_s_client.html#ae110b10f209f55a82e2d700c8c9149a7',1,'WSClient']]], - ['on_5ferror',['on_error',['../class_w_s_client.html#af921852d17f75f46999c2cc1442c4723',1,'WSClient']]], - ['on_5freceive_5fdelta',['on_receive_delta',['../class_w_s_client.html#a2b235f3e62668b6e7923cbbcba00e5c1',1,'WSClient']]], - ['onewiretemperature',['OneWireTemperature',['../class_one_wire_temperature.html#a6ceb584282ee0949f76a35ca5ae40a51',1,'OneWireTemperature']]], - ['operator_3d',['operator=',['../class_observable_value.html#a900b99ef37a8d31e84c48a97b8eff10d',1,'ObservableValue']]], - ['owda_5fto_5fstring',['owda_to_string',['../onewire__temperature_8cpp.html#ad0134b3041182b5f8c3004025183e6eb',1,'onewire_temperature.cpp']]] -]; diff --git a/docs/search/functions_c.html b/docs/search/functions_c.html deleted file mode 100644 index 3b2976a04..000000000 --- a/docs/search/functions_c.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
          -
          Loading...
          -
          - -
          Searching...
          -
          No Matches
          - -
          - - diff --git a/docs/search/functions_c.js b/docs/search/functions_c.js deleted file mode 100644 index 164b78294..000000000 --- a/docs/search/functions_c.js +++ /dev/null @@ -1,18 +0,0 @@ -var searchData= -[ - ['parse',['parse',['../class_sentence_parser.html#ad92490af20d92f942b2e52abfc26007f',1,'SentenceParser::parse(char *buffer, int term_offsets[], int num_terms)=0'],['../class_sentence_parser.html#a74ed90a9386887e9ff2c13dbb12a556e',1,'SentenceParser::parse(char *buffer, int term_offsets[], int num_terms, std::map< String, SentenceParser * > &sentence_parsers)'],['../class_g_p_g_g_a_sentence_parser.html#a6bce986c2fb84af7c54477cd7d43f1b1',1,'GPGGASentenceParser::parse()'],['../class_g_p_g_l_l_sentence_parser.html#ab1583e721b24183fcc59f2b2826b8c52',1,'GPGLLSentenceParser::parse()'],['../class_g_p_r_m_c_sentence_parser.html#a67589bcbddabbe32aac949c3ca9f4a75',1,'GPRMCSentenceParser::parse()'],['../class_p_s_t_i_sentence_parser.html#a308af730f992717a0d1e84416396ae38',1,'PSTISentenceParser::parse(char *buffer, int term_offsets[], int num_terms) override final'],['../class_p_s_t_i_sentence_parser.html#a94f6b75ee9ad9965c4a5cf27e44a12e5',1,'PSTISentenceParser::parse(char *buffer, int term_offsets[], int num_terms, std::map< String, SentenceParser * > &sentence_parsers)'],['../class_p_s_t_i030_sentence_parser.html#aee500dadf0a5ff089d8281c642cdb9bc',1,'PSTI030SentenceParser::parse()'],['../class_p_s_t_i032_sentence_parser.html#ac25a7c9f31987ce7a01ce499f045a6a9',1,'PSTI032SentenceParser::parse()']]], - ['parse_5fav',['parse_AV',['../nmea__parser_8cpp.html#af394f12d9ff6fb97e4c158dac1eb6dc0',1,'nmea_parser.cpp']]], - ['parse_5fdate',['parse_date',['../nmea__parser_8cpp.html#a29c34542d9842302271bb6a0380d4d4d',1,'nmea_parser.cpp']]], - ['parse_5fdouble',['parse_double',['../nmea__parser_8cpp.html#a3f3c4d059e6d6bcc7040f624486d37ae',1,'nmea_parser.cpp']]], - ['parse_5few',['parse_EW',['../nmea__parser_8cpp.html#a113615295f150c16f895c9e2525bbd6e',1,'nmea_parser.cpp']]], - ['parse_5ffloat',['parse_float',['../nmea__parser_8cpp.html#ac534d920f6775ddb34453e554699e1b4',1,'nmea_parser.cpp']]], - ['parse_5fint',['parse_int',['../nmea__parser_8cpp.html#a4de8e35130646cbb488072ff8e457126',1,'nmea_parser.cpp']]], - ['parse_5flatlon',['parse_latlon',['../nmea__parser_8cpp.html#a21e8f85a497e58ad08d5c473e89a8463',1,'nmea_parser.cpp']]], - ['parse_5fm',['parse_M',['../nmea__parser_8cpp.html#a4021e9ad227b156bfdedaa8fd938590b',1,'nmea_parser.cpp']]], - ['parse_5fns',['parse_NS',['../nmea__parser_8cpp.html#a18bf596259e1849f3b6bdbdd765ab606',1,'nmea_parser.cpp']]], - ['parse_5fpsti030_5fmode',['parse_PSTI030_mode',['../nmea__parser_8cpp.html#a37bce694f34f625b2c3e29a1a74c1570',1,'nmea_parser.cpp']]], - ['parse_5ftime',['parse_time',['../nmea__parser_8cpp.html#a202c8d748e820b33d2fb1a324710698b',1,'nmea_parser.cpp']]], - ['psti030sentenceparser',['PSTI030SentenceParser',['../class_p_s_t_i030_sentence_parser.html#aa368abaa7d559a9a0893d3846a01fdb7',1,'PSTI030SentenceParser']]], - ['psti032sentenceparser',['PSTI032SentenceParser',['../class_p_s_t_i032_sentence_parser.html#af44c303ec78c3a24a18eacb265cee013',1,'PSTI032SentenceParser']]], - ['pstisentenceparser',['PSTISentenceParser',['../class_p_s_t_i_sentence_parser.html#a4bb2246e947c443d5bca3706e2853cd0',1,'PSTISentenceParser']]] -]; diff --git a/docs/search/functions_d.html b/docs/search/functions_d.html deleted file mode 100644 index 0c542463f..000000000 --- a/docs/search/functions_d.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
          -
          Loading...
          -
          - -
          Searching...
          -
          No Matches
          - -
          - - diff --git a/docs/search/functions_d.js b/docs/search/functions_d.js deleted file mode 100644 index a0ab2b18c..000000000 --- a/docs/search/functions_d.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['read_5fjson',['read_json',['../spiffs__storage_8h.html#aeb6c893649f188e378de0c76055b1f01',1,'spiffs_storage.h']]], - ['read_5fstring',['read_string',['../spiffs__storage_8cpp.html#a7429780969e66149e25ea6088bf65b7a',1,'read_string(const String filename): spiffs_storage.cpp'],['../spiffs__storage_8h.html#a7429780969e66149e25ea6088bf65b7a',1,'read_string(const String filename): spiffs_storage.cpp']]], - ['reconstruct_5fnmea_5fsentence',['reconstruct_nmea_sentence',['../nmea__parser_8cpp.html#a69a390886762ecd9593ebeada6f3e52d',1,'nmea_parser.cpp']]], - ['register_5faddress',['register_address',['../class_dallas_temperature_sensors.html#a020ae149bf4372f926d4414ac5c67f5a',1,'DallasTemperatureSensors']]], - ['report_5fsuccess',['report_success',['../nmea__parser_8cpp.html#af7a3600deec155122015fcfedfc126a7',1,'nmea_parser.cpp']]], - ['reset',['reset',['../class_sens_e_s_p_app.html#a0f7605a2c63a3ed250e1c742608956b2',1,'SensESPApp']]], - ['reset_5fsettings',['reset_settings',['../class_networking.html#a207f306c10b8f65ca0904cc26a9ef15c',1,'Networking']]], - ['restart',['restart',['../class_w_s_client.html#a478877d14e5a303c24ea60a4cc4f8752',1,'WSClient']]] -]; diff --git a/docs/search/functions_e.html b/docs/search/functions_e.html deleted file mode 100644 index c1bd8701e..000000000 --- a/docs/search/functions_e.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
          -
          Loading...
          -
          - -
          Searching...
          -
          No Matches
          - -
          - - diff --git a/docs/search/functions_e.js b/docs/search/functions_e.js deleted file mode 100644 index ef41635e5..000000000 --- a/docs/search/functions_e.js +++ /dev/null @@ -1,42 +0,0 @@ -var searchData= -[ - ['sample',['Sample',['../class_curve_interpolator_1_1_sample.html#a7ad23733bf31c9a8ccbe9689b55f6d67',1,'CurveInterpolator::Sample::Sample()'],['../class_curve_interpolator_1_1_sample.html#aa2ed35560a823ced306ef02a50d95cac',1,'CurveInterpolator::Sample::Sample(float input, float output)'],['../class_curve_interpolator_1_1_sample.html#a5f69567a227e29b795b68e4310a9da40',1,'CurveInterpolator::Sample::Sample(JsonObject &obj)']]], - ['save_5fconfig_5fcallback',['save_config_callback',['../networking_8cpp.html#a7930cb24915efc348611f4c48d1d5e4c',1,'networking.cpp']]], - ['save_5fconfiguration',['save_configuration',['../class_configurable.html#a657419f13060caa20c45a41935b9d53a',1,'Configurable']]], - ['send_5fdelta',['send_delta',['../class_w_s_client.html#ab6bcc3fb4cfe71aff3929480fab9bd5a',1,'WSClient']]], - ['sensespapp',['SensESPApp',['../class_sens_e_s_p_app.html#a092f600dda1a51189bc2c9fd5de360e8',1,'SensESPApp']]], - ['sensor',['Sensor',['../class_sensor.html#a921d5f94f7f77fa42b5950a807a8e79c',1,'Sensor']]], - ['sentence',['sentence',['../class_sentence_parser.html#aa079d8ee1b96e2f03a9c7a1f2ddf7519',1,'SentenceParser::sentence()'],['../class_g_p_g_g_a_sentence_parser.html#ac70d60b587cd0e48479c397bb30983a3',1,'GPGGASentenceParser::sentence()'],['../class_g_p_g_l_l_sentence_parser.html#acbee347184ae22343a9af2515ae57c98',1,'GPGLLSentenceParser::sentence()'],['../class_g_p_r_m_c_sentence_parser.html#a75afdae2ce4e8a27676d86ef2f5cbf9f',1,'GPRMCSentenceParser::sentence()'],['../class_p_s_t_i_sentence_parser.html#add6764d7c0579101840b82a86f6bd2ef',1,'PSTISentenceParser::sentence()'],['../class_p_s_t_i030_sentence_parser.html#adf5b386bffd76b1055d70aa59615d493',1,'PSTI030SentenceParser::sentence()'],['../class_p_s_t_i032_sentence_parser.html#acbe297f07ea6729d870ec8222535b1ce',1,'PSTI032SentenceParser::sentence()']]], - ['sentenceparser',['SentenceParser',['../class_sentence_parser.html#a20be85c734aab87cf783aaa6a999a29a',1,'SentenceParser']]], - ['set',['set',['../class_observable_value.html#a51cf25d4951d3214021da0c25985838d',1,'ObservableValue']]], - ['set_5fconfiguration',['set_configuration',['../class_networking.html#a59d475a2f12b88ef8334274a9a0b1cee',1,'Networking::set_configuration()'],['../class_w_s_client.html#ad099870379ee102fa4f5b3b584b50658',1,'WSClient::set_configuration()'],['../class_one_wire_temperature.html#a83bce20a52e396dbd97a43a6e72b2824',1,'OneWireTemperature::set_configuration()'],['../class_s_k_output.html#a406e7e56220dd41bd567c56c0e6b9a4d',1,'SKOutput::set_configuration()'],['../class_s_k_output_time.html#a41ad61c700a444916873e908612eca63',1,'SKOutputTime::set_configuration()'],['../class_configurable.html#a6e0281fe25cfbdf024bdb05147ffb52b',1,'Configurable::set_configuration()'],['../class_angle_correction.html#a53b1594b6161feff6f218a2aa7a05ad3',1,'AngleCorrection::set_configuration()'],['../class_change_filter.html#a0bbe692080d7ee9a41fcd77a3f581ca9',1,'ChangeFilter::set_configuration()'],['../class_curve_interpolator.html#acfda195c475a261d2e2a3af365fd6c19',1,'CurveInterpolator::set_configuration()'],['../class_difference.html#a57e134a00cd6688d147f93c662520040',1,'Difference::set_configuration()'],['../class_frequency.html#a87d16c67ce064b9b0f671747808c3963',1,'Frequency::set_configuration()'],['../class_integrator.html#aa53205d3211635dad0a035adf5d511a6',1,'Integrator::set_configuration()'],['../class_linear.html#ab12c626261e763892d4253f48478771a',1,'Linear::set_configuration()'],['../class_median.html#ac06073c22b922aceee9f01ddaccfb54a',1,'Median::set_configuration()'],['../class_moving_average.html#a9f02a3c253c6456e4d5c063ea5f6d364',1,'MovingAverage::set_configuration()'],['../class_voltage_divider_r2.html#a805b64252dccfd3720ce5fc0f84964b3',1,'VoltageDividerR2::set_configuration()']]], - ['set_5fhostname',['set_hostname',['../class_networking.html#a500aa01c7d7da3d823a43c40212353f5',1,'Networking::set_hostname()'],['../class_s_k_delta.html#acd3c98ae0fe75f92d5d9c1e6a216a8dd',1,'SKDelta::set_hostname()']]], - ['set_5finput',['set_input',['../class_s_k_output.html#a43d76eef72e8dad90ee13a001c265be8',1,'SKOutput::set_input()'],['../class_value_consumer.html#a7bf920e5ad5f171ec6e2aeda056ff01f',1,'ValueConsumer::set_input()'],['../class_angle_correction.html#afd9a559ce1218e9b78137ff1a9c6d77d',1,'AngleCorrection::set_input()'],['../class_change_filter.html#a592657a8a1c12a9c16dc334aa804865c',1,'ChangeFilter::set_input()'],['../class_curve_interpolator.html#a6e4fcb3bb046ecacbe1855d74cdc47bb',1,'CurveInterpolator::set_input()'],['../class_debounce.html#a41ba3a24ea3490fc0717fa4d5f7fae0b',1,'Debounce::set_input()'],['../class_difference.html#a432ef87751c6bee8e5dadc610dfcb4ff',1,'Difference::set_input()'],['../class_frequency.html#a99df388f446a8aa46f465fe464023f55',1,'Frequency::set_input()'],['../class_integrator.html#a7fb38d2d19aa3e918dbee34b9096f7a6',1,'Integrator::set_input()'],['../class_linear.html#a057c8519f6eb7dd28392073010a2cfc3',1,'Linear::set_input()'],['../class_median.html#a012bc8d16c361b38ab01f56898ead20b',1,'Median::set_input()'],['../class_moving_average.html#a22a08de98351ed805b49beecb234ab0b',1,'MovingAverage::set_input()'],['../class_time_string.html#a631583475f42183fdc5cd02914a26320',1,'TimeString::set_input()'],['../class_voltage_divider_r2.html#a43fa7bb9dc49c50de247aac272d7f697',1,'VoltageDividerR2::set_input()']]], - ['set_5fserver_5fconnected',['set_server_connected',['../class_led_blinker.html#a0cdd9d7e8cc453edd234ce2785ce28ea',1,'LedBlinker']]], - ['set_5fserver_5fdisconnected',['set_server_disconnected',['../class_led_blinker.html#ab0f765b76f30406a7b53d4360c897d64',1,'LedBlinker']]], - ['set_5fsk_5fpath',['set_sk_path',['../class_s_k_emitter.html#a670348fb1ef1bf3d5e1ba49660fc15d9',1,'SKEmitter']]], - ['set_5fstate',['set_state',['../class_led_blinker.html#aa9870e4cb1a35a175edcd710142b8595',1,'LedBlinker']]], - ['set_5fwifi_5fconnected',['set_wifi_connected',['../class_led_blinker.html#a394a529a52a7ee1e0321498de017f788',1,'LedBlinker']]], - ['set_5fwifi_5fdisconnected',['set_wifi_disconnected',['../class_led_blinker.html#a9c0b4f9aaacc14ab555df6abb43e8ae5',1,'LedBlinker']]], - ['setclassname',['setClassName',['../class_enable.html#a5c8fbdba606732e028a6bf194a3e2529',1,'Enable']]], - ['setpriority',['setPriority',['../class_enable.html#ab4ca14d496a85788896df6c78143994c',1,'Enable']]], - ['setup',['setup',['../class_networking.html#a94815dd34af734e9fc3839cbe6279355',1,'Networking']]], - ['setup_5fanalog_5finput',['setup_analog_input',['../wiring__helpers_8cpp.html#a3a4bbd0371b8285dbb7b8666d50a53a3',1,'setup_analog_input(String sk_path, float k, float c, String config_path): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a70ac1c40d730c9e0f9b93b1f4dd5f0f9',1,'setup_analog_input(String sk_path, float k=1, float c=0, String config_path=""): wiring_helpers.cpp']]], - ['setup_5fdiscovery',['setup_discovery',['../discovery_8cpp.html#aeea49ee803402167d8d79ca58268363e',1,'setup_discovery(const char *hostname): discovery.cpp'],['../discovery_8h.html#aeea49ee803402167d8d79ca58268363e',1,'setup_discovery(const char *hostname): discovery.cpp']]], - ['setup_5ffuel_5fflow_5fmeter',['setup_fuel_flow_meter',['../wiring__helpers_8cpp.html#ae36e0604b36693bd720bffcf4145baf9',1,'setup_fuel_flow_meter(int inflow_pin, int return_flow_pin): wiring_helpers.cpp'],['../wiring__helpers_8h.html#ae36e0604b36693bd720bffcf4145baf9',1,'setup_fuel_flow_meter(int inflow_pin, int return_flow_pin): wiring_helpers.cpp']]], - ['setup_5fgps',['setup_gps',['../wiring__helpers_8cpp.html#a8f7d5e59747355ce523001faddc7ada9',1,'setup_gps(Stream *rx_stream): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a8f7d5e59747355ce523001faddc7ada9',1,'setup_gps(Stream *rx_stream): wiring_helpers.cpp']]], - ['setup_5fonewire_5ftemperature',['setup_onewire_temperature',['../wiring__helpers_8cpp.html#a17220137bcd65b6f922f5a14165a8fcf',1,'setup_onewire_temperature(SensESPApp *seapp, DallasTemperatureSensors *dts, String sk_path, String config_path, String schema): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a37c83d7d3ac2abb00e8f9e86c1da52d3',1,'setup_onewire_temperature(DallasTemperatureSensors *dts, String sk_path, String config_path): wiring_helpers.h']]], - ['setup_5fota',['setup_OTA',['../ota_8cpp.html#a29c2aa13f2bbaccceeb33ed39a6ece11',1,'setup_OTA(): ota.cpp'],['../ota_8h.html#a29c2aa13f2bbaccceeb33ed39a6ece11',1,'setup_OTA(): ota.cpp']]], - ['setup_5frpm_5fmeter',['setup_rpm_meter',['../wiring__helpers_8cpp.html#aa6279a7bab0b61c448263a90303bb7e0',1,'setup_rpm_meter(SensESPApp *seapp, int input_pin): wiring_helpers.cpp'],['../wiring__helpers_8h.html#a99ed20d80aca90bb060c88019c5f739f',1,'setup_rpm_meter(int input_pin): wiring_helpers.h']]], - ['setup_5fsaved_5fssid',['setup_saved_ssid',['../class_networking.html#a91507b52fbc31dd34d143c8a5634027e',1,'Networking']]], - ['setup_5fspiffs_5fstorage',['setup_spiffs_storage',['../spiffs__storage_8cpp.html#a1dfee751479797b385c81cacb151c115',1,'setup_spiffs_storage(): spiffs_storage.cpp'],['../spiffs__storage_8h.html#a1dfee751479797b385c81cacb151c115',1,'setup_spiffs_storage(): spiffs_storage.cpp']]], - ['setup_5fwifi_5fmanager',['setup_wifi_manager',['../class_networking.html#a082fa99914f8f6f277b640667877c85e',1,'Networking']]], - ['skdelta',['SKDelta',['../class_s_k_delta.html#a3d4825fc72903feaebe635dc643d2b16',1,'SKDelta']]], - ['skemitter',['SKEmitter',['../class_s_k_emitter.html#aeba0ccd27a8b6bad1e2ddbf2603a5d8d',1,'SKEmitter']]], - ['skoutput',['SKOutput',['../class_s_k_output.html#a88f9638dd4779818b41a62738ba44876',1,'SKOutput::SKOutput()'],['../class_s_k_output.html#a811a99c30626b6840000b0c152aa1f37',1,'SKOutput::SKOutput(String sk_path, String config_path="")']]], - ['skoutputtime',['SKOutputTime',['../class_s_k_output_time.html#ab77e9bdfeb69fd37c6fc87ac247146e4',1,'SKOutputTime']]], - ['string_5fto_5fowda',['string_to_owda',['../onewire__temperature_8cpp.html#a2ea2a536fdbbb476ae3fb824d73d3e1a',1,'onewire_temperature.cpp']]], - ['stringsensor',['StringSensor',['../class_string_sensor.html#a8ed16d934bf90314e4f00dba25b1d202',1,'StringSensor']]], - ['symmetrictransform',['SymmetricTransform',['../class_symmetric_transform.html#a77383aeb8a2dc0e27a2fbc24b451bc90',1,'SymmetricTransform']]], - ['systemhz',['SystemHz',['../class_system_hz.html#a72aa9d59ca93c864b3c4bba55fdd4ec6',1,'SystemHz']]] -]; diff --git a/docs/search/functions_f.html b/docs/search/functions_f.html deleted file mode 100644 index 38b6e817c..000000000 --- a/docs/search/functions_f.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
          -
          Loading...
          -
          - -
          Searching...
          -
          No Matches
          - -
          - - diff --git a/docs/search/functions_f.js b/docs/search/functions_f.js deleted file mode 100644 index 0e790af74..000000000 --- a/docs/search/functions_f.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['timestring',['TimeString',['../class_time_string.html#adc18ed47c4b6d88acceec81741aab5c3',1,'TimeString']]], - ['transform',['Transform',['../class_transform.html#a764037842596e71f15621e3732dac75a',1,'Transform']]], - ['transformbase',['TransformBase',['../class_transform_base.html#a4f28a4ec27046ac3ef1546eda4b5b43b',1,'TransformBase']]] -]; diff --git a/docs/search/mag_sel.png b/docs/search/mag_sel.png deleted file mode 100644 index 39c0ed52a..000000000 Binary files a/docs/search/mag_sel.png and /dev/null differ diff --git a/docs/search/related_0.js b/docs/search/related_0.js deleted file mode 100644 index 2406161cd..000000000 --- a/docs/search/related_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['operator_3c',['operator<',['../class_enable.html#a5e6385aea4a61b890368ce0b411f690c',1,'Enable::operator<()'],['../class_curve_interpolator_1_1_sample.html#a1cf03a106b3a98056fdb448df6fb9c17',1,'CurveInterpolator::Sample::operator<()']]] -]; diff --git a/docs/search/searchdata.js b/docs/search/searchdata.js deleted file mode 100644 index 6f3ecc7c7..000000000 --- a/docs/search/searchdata.js +++ /dev/null @@ -1,42 +0,0 @@ -var indexSectionsWithContent = -{ - 0: "abcdefghijlmnoprstuvw~", - 1: "acdefghilmnopstuvw", - 2: "acdefghijlmnostvw", - 3: "acdefghilmnoprstuvw~", - 4: "abcdeghilmnoprstuvw", - 5: "binosv", - 6: "cg", - 7: "cdegmnprs", - 8: "o", - 9: "luw" -}; - -var indexSectionNames = -{ - 0: "all", - 1: "classes", - 2: "files", - 3: "functions", - 4: "variables", - 5: "typedefs", - 6: "enums", - 7: "enumvalues", - 8: "related", - 9: "defines" -}; - -var indexSectionLabels = -{ - 0: "All", - 1: "Classes", - 2: "Files", - 3: "Functions", - 4: "Variables", - 5: "Typedefs", - 6: "Enumerations", - 7: "Enumerator", - 8: "Friends", - 9: "Macros" -}; - diff --git a/docs/search/typedefs_0.js b/docs/search/typedefs_0.js deleted file mode 100644 index a38643c63..000000000 --- a/docs/search/typedefs_0.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['booleanconsumer',['BooleanConsumer',['../valueconsumer_8h.html#abea8a189967941972b3e7c5a329c4963',1,'valueconsumer.h']]], - ['booleanproducer',['BooleanProducer',['../valueproducer_8h.html#a79edc4b65652f6948d690891bb6d7e0c',1,'valueproducer.h']]], - ['booleantransform',['BooleanTransform',['../transform_8h.html#ac1617ff234bef4e8a50341c1d6943246',1,'transform.h']]] -]; diff --git a/docs/search/typedefs_1.js b/docs/search/typedefs_1.js deleted file mode 100644 index 5060236ae..000000000 --- a/docs/search/typedefs_1.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['integerconsumer',['IntegerConsumer',['../valueconsumer_8h.html#a45a844f7269f830a1f708f965627248c',1,'valueconsumer.h']]], - ['integerproducer',['IntegerProducer',['../valueproducer_8h.html#ab74ca4be7de22a21f73128ea38a4cbbb',1,'valueproducer.h']]], - ['integertransform',['IntegerTransform',['../transform_8h.html#ae9c0b5d70ecdf35d4bd3a0a4bd4e0d17',1,'transform.h']]] -]; diff --git a/docs/search/typedefs_2.js b/docs/search/typedefs_2.js deleted file mode 100644 index 982923fcc..000000000 --- a/docs/search/typedefs_2.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['numericconsumer',['NumericConsumer',['../valueconsumer_8h.html#a1220e1ddede7c4512fde395262841b74',1,'valueconsumer.h']]], - ['numericproducer',['NumericProducer',['../valueproducer_8h.html#aaf22f94e9cc9067637cd0625ad9fe352',1,'valueproducer.h']]], - ['numerictransform',['NumericTransform',['../transform_8h.html#ac62af394caec478e4d32c254c96af25b',1,'transform.h']]] -]; diff --git a/docs/search/typedefs_3.js b/docs/search/typedefs_3.js deleted file mode 100644 index 845604ebd..000000000 --- a/docs/search/typedefs_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['owdevaddr',['OWDevAddr',['../onewire__temperature_8h.html#aaada9c625aab143feda6189e26144775',1,'onewire_temperature.h']]] -]; diff --git a/docs/search/typedefs_4.js b/docs/search/typedefs_4.js deleted file mode 100644 index 8b4e68233..000000000 --- a/docs/search/typedefs_4.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['skoutputbool',['SKOutputBool',['../signalk__output_8h.html#a1a26c344db2dff33a77cf620aafa6c0c',1,'signalk_output.h']]], - ['skoutputint',['SKOutputInt',['../signalk__output_8h.html#a2a0e216e5ada5e31f7a6d995d2c52642',1,'signalk_output.h']]], - ['skoutputnumber',['SKOutputNumber',['../signalk__output_8h.html#a6c84656f504f6de21c63c1d54d6f39e1',1,'signalk_output.h']]], - ['skoutputposition',['SKOutputPosition',['../signalk__position_8h.html#af7b68a40dd9aa2220abb8e1bd8998455',1,'signalk_position.h']]], - ['skoutputstring',['SKOutputString',['../signalk__output_8h.html#a008f63a91ea787950cb6c17e4c031859',1,'signalk_output.h']]], - ['stringconsumer',['StringConsumer',['../valueconsumer_8h.html#a1d91b84157f6818bb8b8b04caede8a02',1,'valueconsumer.h']]], - ['stringproducer',['StringProducer',['../valueproducer_8h.html#ab845e985974e3ae4c050b8f221337b0d',1,'valueproducer.h']]], - ['stringtransform',['StringTransform',['../transform_8h.html#a463af5c6e30307ac67004d67dd014030',1,'transform.h']]] -]; diff --git a/docs/search/typedefs_5.js b/docs/search/typedefs_5.js deleted file mode 100644 index 88ec0350d..000000000 --- a/docs/search/typedefs_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['void_5fcb_5ffunc',['void_cb_func',['../sensesp_8h.html#abb3668fa85a914138ab7c0c4329681ec',1,'sensesp.h']]] -]; diff --git a/docs/search/variables_0.js b/docs/search/variables_0.js deleted file mode 100644 index e99863766..000000000 --- a/docs/search/variables_0.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['altitude',['altitude',['../struct_position.html#add1df8470102854f3950fc9dd2fee06d',1,'Position']]], - ['app',['app',['../sensesp_8h.html#aaa2ffd80e6f851dc6bb43c95a2c7d26f',1,'sensesp.h']]] -]; diff --git a/docs/search/variables_1.js b/docs/search/variables_1.js deleted file mode 100644 index 8f8c6c4ed..000000000 --- a/docs/search/variables_1.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['baseline_5fcourse',['baseline_course',['../struct_n_m_e_a_data.html#ad752076d48c74317d72a26643fef7fef',1,'NMEAData']]], - ['baseline_5flength',['baseline_length',['../struct_n_m_e_a_data.html#a96cce54518c05c611d50c159ea5122d6',1,'NMEAData']]], - ['baseline_5fprojection',['baseline_projection',['../struct_n_m_e_a_data.html#a3ae9e3d23c088e1c435acf4c232d6a5c',1,'NMEAData']]] -]; diff --git a/docs/search/variables_10.js b/docs/search/variables_10.js deleted file mode 100644 index 1ba2462ef..000000000 --- a/docs/search/variables_10.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['up',['up',['../struct_e_n_u_vector.html#ac4254f925ae071868c7961a006cdf768',1,'ENUVector']]] -]; diff --git a/docs/search/variables_11.js b/docs/search/variables_11.js deleted file mode 100644 index 11c961762..000000000 --- a/docs/search/variables_11.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['variation',['variation',['../struct_n_m_e_a_data.html#ab5b508669ea5109f812b28cdba65c402',1,'NMEAData']]], - ['vin',['Vin',['../class_voltage_divider_r2.html#a482239a7e4031b16091886109efd2296',1,'VoltageDividerR2']]] -]; diff --git a/docs/search/variables_12.js b/docs/search/variables_12.js deleted file mode 100644 index fcbe0b6e5..000000000 --- a/docs/search/variables_12.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['ws_5fclient',['ws_client',['../ws__client_8cpp.html#a4d8d7cfce2bd21646b059e9aa4d0349b',1,'ws_client.cpp']]] -]; diff --git a/docs/search/variables_2.js b/docs/search/variables_2.js deleted file mode 100644 index a4d2c32e8..000000000 --- a/docs/search/variables_2.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['classname',['className',['../class_enable.html#a88a9d200883d86ac64d5b1cd03c07d29',1,'Enable']]], - ['config_5fpath',['config_path',['../class_configurable.html#aaa54fa6156d9c7f5848d670bd9b18aa9',1,'Configurable']]], - ['configurables',['configurables',['../configurable_8cpp.html#a19ac563e52fea3af6b643155f9d258b6',1,'configurables(): configurable.cpp'],['../configurable_8h.html#a19ac563e52fea3af6b643155f9d258b6',1,'configurables(): configurable.cpp']]] -]; diff --git a/docs/search/variables_3.js b/docs/search/variables_3.js deleted file mode 100644 index 7d71fa348..000000000 --- a/docs/search/variables_3.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['datetime',['datetime',['../struct_n_m_e_a_data.html#aae3cb7b0e14cc41ad1c271b9afaae27d',1,'NMEAData']]], - ['debug',['Debug',['../sensesp_8h.html#a5ae2f374710d648c2027c78237f5df01',1,'Debug(): sensesp_app.cpp'],['../sensesp__app_8cpp.html#a5ae2f374710d648c2027c78237f5df01',1,'Debug(): sensesp_app.cpp']]], - ['dgps_5fage',['dgps_age',['../struct_n_m_e_a_data.html#af61e9824ffaf9b43c1a95d8d7a93bc10',1,'NMEAData']]], - ['dgps_5fid',['dgps_id',['../struct_n_m_e_a_data.html#a99328058cfe4cf26b5025511d64ce576',1,'NMEAData']]] -]; diff --git a/docs/search/variables_4.js b/docs/search/variables_4.js deleted file mode 100644 index a7a40fb85..000000000 --- a/docs/search/variables_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['east',['east',['../struct_e_n_u_vector.html#affaf84db367ff8259448116fe4c75370',1,'ENUVector']]], - ['enu_5fvelocity',['enu_velocity',['../struct_n_m_e_a_data.html#a1b62fa2b8b0b62d9cef48f7576e0da30',1,'NMEAData']]] -]; diff --git a/docs/search/variables_5.js b/docs/search/variables_5.js deleted file mode 100644 index daa85a35d..000000000 --- a/docs/search/variables_5.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['geoidal_5fseparation',['geoidal_separation',['../struct_n_m_e_a_data.html#a3acdff78f354082419d01ebfe8846f7f',1,'NMEAData']]], - ['gnss_5fquality',['gnss_quality',['../struct_n_m_e_a_data.html#a8048e071ffb9f37ff425305525f2223a',1,'NMEAData']]], - ['gnssqualitystrings',['gnssQualityStrings',['../nmea__parser_8cpp.html#a78e0374f91eaf4035ec29121f7e40064',1,'nmea_parser.cpp']]] -]; diff --git a/docs/search/variables_6.js b/docs/search/variables_6.js deleted file mode 100644 index ce44864b6..000000000 --- a/docs/search/variables_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['horizontal_5fdilution',['horizontal_dilution',['../struct_n_m_e_a_data.html#aa6d1ee7ee222393032e1f57cde891b31',1,'NMEAData']]] -]; diff --git a/docs/search/variables_7.js b/docs/search/variables_7.js deleted file mode 100644 index c10401bd0..000000000 --- a/docs/search/variables_7.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['input',['input',['../class_curve_interpolator_1_1_sample.html#a43dd7cc1fd950a03a6674056194e935b',1,'CurveInterpolator::Sample']]], - ['input_5fbuffer_5flength',['INPUT_BUFFER_LENGTH',['../nmea__parser_8h.html#a6088978b66925a9ff44bbdf302f00726',1,'nmea_parser.h']]], - ['interrupt_5ftype',['interrupt_type',['../class_digital_input.html#aa4e30fc0836ce2d0934b9eb5d507f116',1,'DigitalInput']]] -]; diff --git a/docs/search/variables_8.js b/docs/search/variables_8.js deleted file mode 100644 index 49a993347..000000000 --- a/docs/search/variables_8.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['lasttime',['lastTime',['../class_debounce.html#a52075b35c5a7036ea7a06813a71117ea',1,'Debounce']]], - ['latitude',['latitude',['../struct_position.html#ac6606384ff43b39b8614dd3b590d6b36',1,'Position']]], - ['longitude',['longitude',['../struct_position.html#a76a87a4287c53ae7e53eba716e740c12',1,'Position']]] -]; diff --git a/docs/search/variables_9.js b/docs/search/variables_9.js deleted file mode 100644 index 46480a52b..000000000 --- a/docs/search/variables_9.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['max_5fterms',['MAX_TERMS',['../nmea__parser_8h.html#a6487a496a45b3acfe263589909cfc101',1,'nmea_parser.h']]], - ['maxdelta',['maxDelta',['../class_change_filter.html#aa92a8149f304a8627cc8c990dc929c35',1,'ChangeFilter']]], - ['maxskips',['maxSkips',['../class_change_filter.html#a48314db9ee86e057f0c771573b302331',1,'ChangeFilter']]], - ['mindelta',['minDelta',['../class_change_filter.html#accc1a8a8df0fd7051708b183b8570b5a',1,'ChangeFilter']]], - ['msmindelay',['msMinDelay',['../class_debounce.html#a3e1dca3d133fdef71d95b58a922c478a',1,'Debounce']]] -]; diff --git a/docs/search/variables_a.js b/docs/search/variables_a.js deleted file mode 100644 index d9c4ed648..000000000 --- a/docs/search/variables_a.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['nmea_5fdata',['nmea_data',['../class_g_p_s_input.html#ae31d915c7701418b950dcbba4f87f72a',1,'GPSInput::nmea_data()'],['../class_sentence_parser.html#a77a87f5f20ac471591d2110856e8232b',1,'SentenceParser::nmea_data()']]], - ['north',['north',['../struct_e_n_u_vector.html#a4cf8b3abdd2edd2f9a463fc6394dbb50',1,'ENUVector']]], - ['null_5fow_5faddr',['null_ow_addr',['../onewire__temperature_8cpp.html#af247f8ddcd26451c72c7706fc884a6dc',1,'onewire_temperature.cpp']]], - ['num_5fsatellites',['num_satellites',['../struct_n_m_e_a_data.html#ac5e91779da683f23c11da42c1db41b60',1,'NMEAData']]] -]; diff --git a/docs/search/variables_b.js b/docs/search/variables_b.js deleted file mode 100644 index ef2961150..000000000 --- a/docs/search/variables_b.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['output',['output',['../class_value_producer.html#a9d3882f6de7ef8b05e78947cf9df2697',1,'ValueProducer::output()'],['../class_curve_interpolator_1_1_sample.html#ada14a8de02c7cc737db52aa3a54a330b',1,'CurveInterpolator::Sample::output()']]] -]; diff --git a/docs/search/variables_c.js b/docs/search/variables_c.js deleted file mode 100644 index 851fe2f47..000000000 --- a/docs/search/variables_c.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['pin',['pin',['../class_digital_input.html#a92b46ff35c6b0fcf13644727c0a6b61f',1,'DigitalInput']]], - ['position',['position',['../struct_n_m_e_a_data.html#a249d831d604857b04284d4c33719005e',1,'NMEAData']]], - ['progmem',['PROGMEM',['../index_8h.html#a9e09bea0eddc6841460f6654d2ba1a5f',1,'PROGMEM(): index.h'],['../js__jsoneditor_8h.html#a53fb277b2065a969013a1bc4b071abd1',1,'PROGMEM(): js_jsoneditor.h'],['../js__sensesp_8h.html#a8de262bdd3fe0e74c591a5174112011f',1,'PROGMEM(): js_sensesp.h'],['../setup_8h.html#a183306764a8509f2c9635a13289ea64f',1,'PROGMEM(): setup.h']]] -]; diff --git a/docs/search/variables_d.js b/docs/search/variables_d.js deleted file mode 100644 index f66f52197..000000000 --- a/docs/search/variables_d.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['r1',['R1',['../class_voltage_divider_r2.html#a927b6c4d26bc24dfd326f63a0a127f66',1,'VoltageDividerR2']]], - ['rtk_5fage',['rtk_age',['../struct_n_m_e_a_data.html#a5271f014cd9d9b7ebcfa64d772006044',1,'NMEAData']]], - ['rtk_5fratio',['rtk_ratio',['../struct_n_m_e_a_data.html#a590b94e1133efeaa9a05456da0dab2dd',1,'NMEAData']]] -]; diff --git a/docs/search/variables_e.js b/docs/search/variables_e.js deleted file mode 100644 index ba427bdcc..000000000 --- a/docs/search/variables_e.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['sensesp_5fapp',['sensesp_app',['../sensesp__app_8cpp.html#a9b53af60ecde971876d66994134fbfff',1,'sensesp_app(): sensesp_app.cpp'],['../sensesp__app_8h.html#a9b53af60ecde971876d66994134fbfff',1,'sensesp_app(): sensesp_app.cpp']]], - ['sensors',['sensors',['../class_dallas_temperature_sensors.html#abd79995496fd66d416e6d9cd1ff56342',1,'DallasTemperatureSensors']]], - ['should_5fsave_5fconfig',['should_save_config',['../networking_8cpp.html#ade4bb65788e7b6ea2d2e3e026baf7310',1,'networking.cpp']]], - ['sk_5fpath',['sk_path',['../class_s_k_emitter.html#a06dbe70e930074437b12b86ac4e2464c',1,'SKEmitter']]], - ['skips',['skips',['../class_change_filter.html#ae51076f79fdfc36e34b8383a0e13e700',1,'ChangeFilter']]], - ['speed',['speed',['../struct_n_m_e_a_data.html#afe6efa0ec62ce332673ab98b282990c8',1,'NMEAData']]] -]; diff --git a/docs/search/variables_f.js b/docs/search/variables_f.js deleted file mode 100644 index 019798e75..000000000 --- a/docs/search/variables_f.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['true_5fcourse',['true_course',['../struct_n_m_e_a_data.html#a91263e0aa16f47a7535d8d4a09b2ffca',1,'NMEAData']]] -]; diff --git a/docs/sensesp_8h.html b/docs/sensesp_8h.html deleted file mode 100644 index 246b9ee33..000000000 --- a/docs/sensesp_8h.html +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - - -SensESP: src/sensesp.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          sensesp.h File Reference
          -
          -
          -
          #include <ReactESP.h>
          -#include <RemoteDebug.h>
          -
          -Include dependency graph for sensesp.h:
          -
          -
          - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Typedefs

          typedef std::function< void()> void_cb_func
           
          - - - - - -

          -Variables

          ReactESP app
           
          RemoteDebug Debug
           
          -

          Typedef Documentation

          - -

          ◆ void_cb_func

          - -
          -
          - - - - -
          typedef std::function<void()> void_cb_func
          -
          - -

          Definition at line 7 of file sensesp.h.

          - -
          -
          -

          Variable Documentation

          - -

          ◆ app

          - -
          -
          - - - - -
          ReactESP app
          -
          - -
          -
          - -

          ◆ Debug

          - -
          -
          - - - - -
          RemoteDebug Debug
          -
          - -

          Definition at line 19 of file sensesp_app.cpp.

          - -
          -
          -
          -
          - - - - diff --git a/docs/sensesp_8h__dep__incl.map b/docs/sensesp_8h__dep__incl.map deleted file mode 100644 index b7b73ba6b..000000000 --- a/docs/sensesp_8h__dep__incl.map +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/sensesp_8h__dep__incl.md5 b/docs/sensesp_8h__dep__incl.md5 deleted file mode 100644 index bbc7d26ff..000000000 --- a/docs/sensesp_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -e5de768fd951db6df0670a83060f77cb \ No newline at end of file diff --git a/docs/sensesp_8h__dep__incl.png b/docs/sensesp_8h__dep__incl.png deleted file mode 100644 index 61e84f94a..000000000 Binary files a/docs/sensesp_8h__dep__incl.png and /dev/null differ diff --git a/docs/sensesp_8h__incl.md5 b/docs/sensesp_8h__incl.md5 deleted file mode 100644 index 28835561e..000000000 --- a/docs/sensesp_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -29c4ede39bd3f3606352e7c8bc7b7e17 \ No newline at end of file diff --git a/docs/sensesp_8h__incl.png b/docs/sensesp_8h__incl.png deleted file mode 100644 index 4c2af2601..000000000 Binary files a/docs/sensesp_8h__incl.png and /dev/null differ diff --git a/docs/sensesp_8h_source.html b/docs/sensesp_8h_source.html deleted file mode 100644 index e02d21c1e..000000000 --- a/docs/sensesp_8h_source.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - -SensESP: src/sensesp.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          sensesp.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _sensesp_H_
          2 #define _sensesp_H_
          3 
          4 #include <ReactESP.h>
          5 #include <RemoteDebug.h>
          6 
          7 typedef std::function<void()> void_cb_func;
          8 
          9 extern ReactESP app;
          10 
          11 #ifndef DEBUG_DISABLED
          12 extern RemoteDebug Debug;
          13 #endif
          14 
          15 #endif
          RemoteDebug Debug
          Definition: sensesp_app.cpp:19
          -
          std::function< void()> void_cb_func
          Definition: sensesp.h:7
          -
          ReactESP app
          -
          -
          - - - - diff --git a/docs/sensesp__app_8cpp.html b/docs/sensesp__app_8cpp.html deleted file mode 100644 index 37b3bd28e..000000000 --- a/docs/sensesp__app_8cpp.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - -SensESP: src/sensesp_app.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          sensesp_app.cpp File Reference
          -
          -
          -
          #include "sensesp_app.h"
          -#include "FS.h"
          -#include "sensors/analog_input.h"
          -#include "sensors/digital_input.h"
          -#include "sensors/system_info.h"
          -#include "net/discovery.h"
          -#include "net/ota.h"
          -#include "net/networking.h"
          -#include "system/spiffs_storage.h"
          -#include "transforms/transform.h"
          -#include "transforms/difference.h"
          -#include "transforms/frequency.h"
          -#include "transforms/linear.h"
          -#include "signalk/signalk_output.h"
          -
          -Include dependency graph for sensesp_app.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - - - -

          -Variables

          RemoteDebug Debug
           
          SensESPAppsensesp_app
           
          -

          Variable Documentation

          - -

          ◆ Debug

          - -
          -
          - - - - -
          RemoteDebug Debug
          -
          - -

          Definition at line 19 of file sensesp_app.cpp.

          - -
          -
          - -

          ◆ sensesp_app

          - -
          -
          - - - - -
          SensESPApp* sensesp_app
          -
          - -

          Definition at line 173 of file sensesp_app.cpp.

          - -
          -
          -
          -
          - - - - diff --git a/docs/sensesp__app_8cpp.js b/docs/sensesp__app_8cpp.js deleted file mode 100644 index 5b8ffc2bc..000000000 --- a/docs/sensesp__app_8cpp.js +++ /dev/null @@ -1,5 +0,0 @@ -var sensesp__app_8cpp = -[ - [ "Debug", "sensesp__app_8cpp.html#a5ae2f374710d648c2027c78237f5df01", null ], - [ "sensesp_app", "sensesp__app_8cpp.html#a9b53af60ecde971876d66994134fbfff", null ] -]; \ No newline at end of file diff --git a/docs/sensesp__app_8cpp__incl.map b/docs/sensesp__app_8cpp__incl.map deleted file mode 100644 index f7a940e3e..000000000 --- a/docs/sensesp__app_8cpp__incl.map +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/sensesp__app_8cpp__incl.md5 b/docs/sensesp__app_8cpp__incl.md5 deleted file mode 100644 index a811d3d7e..000000000 --- a/docs/sensesp__app_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -da25d7cf7310e24b5f48dc2af4e06909 \ No newline at end of file diff --git a/docs/sensesp__app_8cpp__incl.png b/docs/sensesp__app_8cpp__incl.png deleted file mode 100644 index e30061e13..000000000 Binary files a/docs/sensesp__app_8cpp__incl.png and /dev/null differ diff --git a/docs/sensesp__app_8cpp_source.html b/docs/sensesp__app_8cpp_source.html deleted file mode 100644 index e8a929412..000000000 --- a/docs/sensesp__app_8cpp_source.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - -SensESP: src/sensesp_app.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          sensesp_app.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "sensesp_app.h"
          2 
          3 #include "FS.h"
          4 
          5 #include "sensors/analog_input.h"
          7 #include "sensors/system_info.h"
          8 #include "net/discovery.h"
          9 #include "net/ota.h"
          10 #include "net/networking.h"
          11 #include "system/spiffs_storage.h"
          12 #include "transforms/transform.h"
          13 #include "transforms/difference.h"
          14 #include "transforms/frequency.h"
          15 #include "transforms/linear.h"
          16 #include "signalk/signalk_output.h"
          17 
          18 #ifndef DEBUG_DISABLED
          19 RemoteDebug Debug;
          20 #endif
          21 
          22 // FIXME: Setting up the system is too verbose and repetitive
          23 
          25  // initialize filesystem
          26 
          27  if (!SPIFFS.begin()) {
          28  debugE("FATAL: Filesystem initialization failed.");
          29  ESP.restart();
          30  }
          31 
          32  // create the networking object
          33  networking = new Networking("/system/networking");
          34  ObservableValue<String>* hostname = networking->get_hostname();
          35 
          36  // setup standard sensors and their transforms
          37 
          38  setup_standard_sensors(hostname);
          39 
          40  // create the SK delta object
          41 
          42  sk_delta = new SKDelta(hostname->get());
          43 
          44  // listen for hostname updates
          45 
          46  hostname->attach([hostname, this](){
          47  this->sk_delta->set_hostname(hostname->get());
          48  });
          49 
          50  // create the HTTP server
          51 
          52  this->http_server = new HTTPServer(std::bind(&SensESPApp::reset, this));
          53 
          54  // create the websocket client
          55 
          56  auto ws_connected_cb = [this](bool connected){
          57  if (connected) {
          58  this->led_blinker.set_server_connected();
          59  } else {
          60  this->led_blinker.set_server_disconnected();
          61  }
          62  };
          63  auto ws_delta_cb = [this](){
          64  this->led_blinker.flip();
          65  };
          66  this->ws_client = new WSClient(
          67  "/system/sk",
          68  sk_delta, ws_connected_cb, ws_delta_cb);
          69 }
          70 
          71 void SensESPApp::setup_standard_sensors(ObservableValue<String>* hostname) {
          72 
          73  // connect systemhz
          74 
          75  connect_1to1_h<SystemHz, SKOutput<float>>(
          76  new SystemHz(),
          77  new SKOutput<float>(),
          78  hostname
          79  );
          80 
          81  String hostname_str = hostname->get();
          82 
          83  // connect freemem
          84 
          85  connect_1to1_h<FreeMem, SKOutput<float>>(
          86  new FreeMem(),
          87  new SKOutput<float>(),
          88  hostname
          89  );
          90 
          91  // connect uptime
          92 
          93  connect_1to1_h<Uptime, SKOutput<float>>(
          94  new Uptime(),
          95  new SKOutput<float>(),
          96  hostname
          97  );
          98 
          99  // connect ip address
          100 
          101  connect_1to1_h<IPAddrDev, SKOutput<String>>(
          102  new IPAddrDev(),
          103  new SKOutput<String>(),
          104  hostname
          105  );
          106 }
          107 
          109  this->led_blinker.set_wifi_disconnected();
          110 
          111  // connect all transforms to the Signal K delta output
          112 
          113  // ObservableValue<String>* hostname = networking->get_hostname();
          114 
          115  for (auto const& sigkSource : SKEmitter::get_sources()) {
          116  if (sigkSource->get_sk_path() != "") {
          117  debugI("Connecting SignalK source %s", sigkSource->get_sk_path().c_str());
          118  sigkSource->attach([sigkSource, this](){
          119  this->sk_delta->append(sigkSource->as_signalK());
          120  });
          121  }
          122  }
          123 
          124  debugI("Enabling subsystems");
          125 
          126  debugI("Subsystem: setup_discovery()");
          127  setup_discovery(networking->get_hostname()->get().c_str());
          128 
          129  debugI("Subsystem: networking->setup()");
          130  networking->setup([this](bool connected) {
          131  if (connected) {
          132  this->led_blinker.set_wifi_connected();
          133  } else {
          134  this->led_blinker.set_wifi_disconnected();
          135  debugD("Not connected to wifi");
          136  }
          137  });
          138 
          139  debugI("Subsystem: setup_OTA()");
          140  setup_OTA();
          141 
          142  debugI("Subsystem: http_server()");
          143  this->http_server->enable();
          144  debugI("Subsystem: ws_client()");
          145  this->ws_client->enable();
          146 
          147  debugI("WS client enabled");
          148 
          149  // initialize remote debugging
          150 
          151  #ifndef DEBUG_DISABLED
          152  Debug.begin(networking->get_hostname()->get());
          153  Debug.setResetCmdEnabled(true);
          154  app.onRepeat(1, [](){ Debug.handle(); });
          155  #endif
          156 
          158  debugI("All sensors and transforms enabled");
          159 
          160 }
          161 
          163  debugW("Resetting the device configuration.");
          164  networking->reset_settings();
          165  SPIFFS.format();
          166  app.onDelay(1000, [](){ ESP.reset(); });
          167 }
          168 
          170  return networking->get_hostname()->get();
          171 }
          172 
          void reset_settings()
          Definition: networking.cpp:143
          - - - -
          SensESPApp * sensesp_app
          -
          static void enableAll()
          Definition: enable.cpp:12
          -
          ObservableValue< String > * get_hostname()
          Definition: networking.cpp:102
          - - -
          void enable()
          Definition: ws_client.cpp:54
          -
          RemoteDebug Debug
          Definition: sensesp_app.cpp:19
          -
          void reset()
          - - - -
          virtual const T & get()
          Definition: valueproducer.h:29
          -
          void enable()
          -
          void append(const String val)
          - - - - - -
          String get_hostname()
          -
          void set_server_disconnected()
          Definition: led_blinker.h:17
          - -
          void setup_OTA()
          Definition: ota.cpp:17
          - -
          void set_hostname(String hostname)
          Definition: signalk_delta.h:17
          - -
          void attach(std::function< void()> observer)
          Definition: observable.cpp:9
          -
          void enable()
          Definition: http.h:12
          - - -
          void set_wifi_connected()
          Definition: led_blinker.cpp:41
          - - - -
          Definition: http.h:8
          -
          void setup_discovery(const char *hostname)
          Definition: discovery.cpp:10
          - - - -
          void setup(std::function< void(bool)> connection_cb)
          Definition: networking.cpp:37
          -
          void set_server_connected()
          Definition: led_blinker.cpp:48
          -
          void set_wifi_disconnected()
          Definition: led_blinker.cpp:31
          -
          static const std::vector< SKEmitter * > & get_sources()
          - -
          ReactESP app
          -
          void flip()
          Definition: led_blinker.cpp:27
          -
          -
          - - - - diff --git a/docs/sensesp__app_8h.html b/docs/sensesp__app_8h.html deleted file mode 100644 index 82eaa3d0b..000000000 --- a/docs/sensesp__app_8h.html +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - - -SensESP: src/sensesp_app.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          sensesp_app.h File Reference
          -
          -
          -
          #include "sensors/sensor.h"
          -#include "net/http.h"
          -#include "net/networking.h"
          -#include "net/ws_client.h"
          -#include "sensesp.h"
          -#include "system/led_blinker.h"
          -#include "signalk/signalk_delta.h"
          -#include "system/valueproducer.h"
          -#include "system/valueconsumer.h"
          -#include "system/observablevalue.h"
          -
          -Include dependency graph for sensesp_app.h:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  SensESPApp
           
          - - - -

          -Macros

          #define USE_LIB_WEBSOCKET   true
           
          - - - -

          -Variables

          SensESPAppsensesp_app
           
          -

          Macro Definition Documentation

          - -

          ◆ USE_LIB_WEBSOCKET

          - -
          -
          - - - - -
          #define USE_LIB_WEBSOCKET   true
          -
          - -

          Definition at line 5 of file sensesp_app.h.

          - -
          -
          -

          Variable Documentation

          - -

          ◆ sensesp_app

          - -
          -
          - - - - -
          SensESPApp* sensesp_app
          -
          - -

          Definition at line 173 of file sensesp_app.cpp.

          - -
          -
          -
          -
          - - - - diff --git a/docs/sensesp__app_8h.js b/docs/sensesp__app_8h.js deleted file mode 100644 index 3d94d1575..000000000 --- a/docs/sensesp__app_8h.js +++ /dev/null @@ -1,6 +0,0 @@ -var sensesp__app_8h = -[ - [ "SensESPApp", "class_sens_e_s_p_app.html", "class_sens_e_s_p_app" ], - [ "USE_LIB_WEBSOCKET", "sensesp__app_8h.html#a8abe44af131f55591035d3587ca9484d", null ], - [ "sensesp_app", "sensesp__app_8h.html#a9b53af60ecde971876d66994134fbfff", null ] -]; \ No newline at end of file diff --git a/docs/sensesp__app_8h__dep__incl.map b/docs/sensesp__app_8h__dep__incl.map deleted file mode 100644 index 5c15d005b..000000000 --- a/docs/sensesp__app_8h__dep__incl.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/sensesp__app_8h__dep__incl.md5 b/docs/sensesp__app_8h__dep__incl.md5 deleted file mode 100644 index 5a59e7220..000000000 --- a/docs/sensesp__app_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -88c3569efc3e037e8353b0dcd274b770 \ No newline at end of file diff --git a/docs/sensesp__app_8h__dep__incl.png b/docs/sensesp__app_8h__dep__incl.png deleted file mode 100644 index 1a10cf23e..000000000 Binary files a/docs/sensesp__app_8h__dep__incl.png and /dev/null differ diff --git a/docs/sensesp__app_8h__incl.map b/docs/sensesp__app_8h__incl.map deleted file mode 100644 index 178f7e38c..000000000 --- a/docs/sensesp__app_8h__incl.map +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/sensesp__app_8h__incl.md5 b/docs/sensesp__app_8h__incl.md5 deleted file mode 100644 index 2dc4fe764..000000000 --- a/docs/sensesp__app_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -b07c44c9a9534acf1c5679d45f6db1ba \ No newline at end of file diff --git a/docs/sensesp__app_8h__incl.png b/docs/sensesp__app_8h__incl.png deleted file mode 100644 index 825f04af4..000000000 Binary files a/docs/sensesp__app_8h__incl.png and /dev/null differ diff --git a/docs/sensesp__app_8h_source.html b/docs/sensesp__app_8h_source.html deleted file mode 100644 index 19cd5846a..000000000 --- a/docs/sensesp__app_8h_source.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - -SensESP: src/sensesp_app.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          sensesp_app.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _app_H_
          2 #define _app_H_
          3 
          4 // Required for RemoteDebug
          5 #define USE_LIB_WEBSOCKET true
          6 
          7 #include "sensors/sensor.h"
          8 #include "net/http.h"
          9 #include "net/networking.h"
          10 #include "net/ws_client.h"
          11 #include "sensesp.h"
          12 #include "system/led_blinker.h"
          13 #include "signalk/signalk_delta.h"
          14 #include "system/valueproducer.h"
          15 #include "system/valueconsumer.h"
          16 #include "system/observablevalue.h"
          17 
          18 class SensESPApp {
          19  public:
          20  SensESPApp();
          21  void enable();
          22  void reset();
          23  String get_hostname();
          24 
          25 
          26  template<typename T>
          27  void connect(ValueProducer<T>* pProducer, ValueConsumer<T>* pConsumer, uint8_t inputChannel = 0) {
          28  pProducer->connectTo(pConsumer, inputChannel);
          29  }
          30 
          31  template<typename T, typename U>
          32  void connect_1to1_h(T* sensor, U* transform,
          33  ObservableValue<String>* hostname) {
          34  String hostname_str = hostname->get();
          35  String value_name = sensor->get_value_name();
          36  String sk_path = "sensors." + hostname_str + "." + value_name;
          37  auto comp_set_sk_path = [hostname, transform, value_name](){
          38  transform->set_sk_path(
          39  "sensors." + hostname->get() + "." + value_name);
          40  };
          41  comp_set_sk_path();
          42  sensor->attach([sensor, transform](){
          43  transform->set_input(sensor->get());
          44  });
          45  hostname->attach(comp_set_sk_path);
          46  }
          47 
          51  bool isWifiConnected() {
          52  return WiFi.status() == WL_CONNECTED;
          53  }
          54 
          55 
          60  return ws_client->is_connected();
          61  }
          62 
          63 
          64  private:
          65  void setup_standard_sensors(ObservableValue<String>* hostname);
          66 
          67  HTTPServer* http_server;
          68  LedBlinker led_blinker;
          69  Networking* networking;
          70  SKDelta* sk_delta;
          71  WSClient* ws_client;
          72 
          73 };
          74 
          75 extern SensESPApp* sensesp_app;
          76 
          77 #endif
          - -
          SensESPApp * sensesp_app
          -
          void connect_1to1_h(T *sensor, U *transform, ObservableValue< String > *hostname)
          Definition: sensesp_app.h:32
          -
          void reset()
          - - - -
          virtual const T & get()
          Definition: valueproducer.h:29
          -
          void connect(ValueProducer< T > *pProducer, ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)
          Definition: sensesp_app.h:27
          - -
          void enable()
          - -
          String get_hostname()
          - - - -
          bool isSignalKConnected()
          Definition: sensesp_app.h:59
          - -
          void attach(std::function< void()> observer)
          Definition: observable.cpp:9
          -
          bool isWifiConnected()
          Definition: sensesp_app.h:51
          - - - -
          Definition: http.h:8
          - - - -
          bool is_connected()
          Definition: ws_client.cpp:321
          -
          void connectTo(ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)
          Definition: valueproducer.h:42
          - - -
          -
          - - - - diff --git a/docs/sensor_8cpp.html b/docs/sensor_8cpp.html deleted file mode 100644 index 711d81839..000000000 --- a/docs/sensor_8cpp.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - -SensESP: src/sensors/sensor.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          sensor.cpp File Reference
          -
          -
          -
          #include "sensor.h"
          -
          -Include dependency graph for sensor.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          -
          -
          - - - - diff --git a/docs/sensor_8cpp__incl.map b/docs/sensor_8cpp__incl.map deleted file mode 100644 index 9fcff370c..000000000 --- a/docs/sensor_8cpp__incl.map +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/docs/sensor_8cpp__incl.md5 b/docs/sensor_8cpp__incl.md5 deleted file mode 100644 index fe4fcf0e4..000000000 --- a/docs/sensor_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -50f89e77fc0985f5c2e969bed8599260 \ No newline at end of file diff --git a/docs/sensor_8cpp__incl.png b/docs/sensor_8cpp__incl.png deleted file mode 100644 index b096f89c1..000000000 Binary files a/docs/sensor_8cpp__incl.png and /dev/null differ diff --git a/docs/sensor_8cpp_source.html b/docs/sensor_8cpp_source.html deleted file mode 100644 index e6ec38ecb..000000000 --- a/docs/sensor_8cpp_source.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -SensESP: src/sensors/sensor.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          sensor.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "sensor.h"
          2 
          3 std::set<Sensor*> Sensor::sensors;
          4 
          5 Sensor::Sensor(String config_path) : Configurable{config_path}, Enable(10) {
          6  className = "Sensor";
          7  sensors.insert(this);
          8 }
          9 
          10 
          11 
          12 NumericSensor::NumericSensor(String config_path) :
          13  Sensor(config_path), NumericProducer() {
          14  className = "NumericSensor";
          15 
          16 };
          17 
          18 
          19 IntegerSensor::IntegerSensor(String config_path) :
          20  Sensor(config_path), IntegerProducer() {
          21  className = "IntegerSensor";
          22 
          23 };
          24 
          25 
          26 StringSensor::StringSensor(String config_path) :
          27  Sensor(config_path), StringProducer() {
          28  className = "StringSensor";
          29 
          30 };
          Definition: sensor.h:15
          -
          StringSensor(String config_path="")
          Definition: sensor.cpp:26
          - - -
          Definition: enable.h:15
          -
          Sensor(String config_path="")
          Definition: sensor.cpp:5
          -
          NumericSensor(String config_path="")
          Definition: sensor.cpp:12
          -
          const String config_path
          Definition: configurable.h:29
          - -
          IntegerSensor(String config_path="")
          Definition: sensor.cpp:19
          -
          const char * className
          Definition: enable.h:55
          -
          -
          - - - - diff --git a/docs/sensor_8h.html b/docs/sensor_8h.html deleted file mode 100644 index 6331ed44a..000000000 --- a/docs/sensor_8h.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - -SensESP: src/sensors/sensor.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          sensor.h File Reference
          -
          -
          -
          #include <set>
          -#include "system/configurable.h"
          -#include "system/observable.h"
          -#include "system/valueproducer.h"
          -#include "system/enable.h"
          -
          -Include dependency graph for sensor.h:
          -
          -
          - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - - - - - - - -

          -Classes

          class  Sensor
           
          class  NumericSensor
           
          class  IntegerSensor
           
          class  StringSensor
           
          -
          -
          - - - - diff --git a/docs/sensor_8h__dep__incl.map b/docs/sensor_8h__dep__incl.map deleted file mode 100644 index c4f83b233..000000000 --- a/docs/sensor_8h__dep__incl.map +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/sensor_8h__dep__incl.md5 b/docs/sensor_8h__dep__incl.md5 deleted file mode 100644 index 94ee333ad..000000000 --- a/docs/sensor_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -5e6af2ecc15d4a9052748a0daa0812d1 \ No newline at end of file diff --git a/docs/sensor_8h__dep__incl.png b/docs/sensor_8h__dep__incl.png deleted file mode 100644 index 2693bcd91..000000000 Binary files a/docs/sensor_8h__dep__incl.png and /dev/null differ diff --git a/docs/sensor_8h__incl.map b/docs/sensor_8h__incl.map deleted file mode 100644 index 13d5f7562..000000000 --- a/docs/sensor_8h__incl.map +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/docs/sensor_8h__incl.md5 b/docs/sensor_8h__incl.md5 deleted file mode 100644 index d21981562..000000000 --- a/docs/sensor_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -6c5602e09d4f29efe206e3a15bd85dd2 \ No newline at end of file diff --git a/docs/sensor_8h__incl.png b/docs/sensor_8h__incl.png deleted file mode 100644 index 09c7da3e2..000000000 Binary files a/docs/sensor_8h__incl.png and /dev/null differ diff --git a/docs/sensor_8h_source.html b/docs/sensor_8h_source.html deleted file mode 100644 index d13d9fc5d..000000000 --- a/docs/sensor_8h_source.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -SensESP: src/sensors/sensor.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          sensor.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _sensor_H_
          2 #define _sensor_H_
          3 
          4 #include <set>
          5 
          6 #include "system/configurable.h"
          7 #include "system/observable.h"
          8 #include "system/valueproducer.h"
          9 #include "system/enable.h"
          10 
          11 
          13 // Sensors represent raw hardware thingies.
          14 
          15 class Sensor : virtual public Observable, public Configurable, public Enable {
          16  public:
          17  Sensor(String config_path="");
          18 
          19  static const std::set<Sensor*>& get_sensors() {
          20  return sensors;
          21  }
          22 
          23  private:
          24  static std::set<Sensor*> sensors;
          25 };
          26 
          27 
          28 
          29 class NumericSensor : public Sensor, public NumericProducer {
          30 
          31  public:
          32  NumericSensor(String config_path="");
          33 
          34 };
          35 
          36 
          37 class IntegerSensor : public Sensor, public IntegerProducer {
          38 
          39  public:
          40  IntegerSensor(String config_path="");
          41 
          42 };
          43 
          44 
          45 class StringSensor : public Sensor, public StringProducer {
          46 
          47  public:
          48  StringSensor(String config_path="");
          49 
          50 };
          51 
          52 #endif
          Definition: sensor.h:15
          - -
          StringSensor(String config_path="")
          Definition: sensor.cpp:26
          - - - - -
          Definition: enable.h:15
          -
          Sensor(String config_path="")
          Definition: sensor.cpp:5
          -
          NumericSensor(String config_path="")
          Definition: sensor.cpp:12
          -
          const String config_path
          Definition: configurable.h:29
          - - - - - -
          IntegerSensor(String config_path="")
          Definition: sensor.cpp:19
          -
          static const std::set< Sensor * > & get_sensors()
          Definition: sensor.h:19
          -
          -
          - - - - diff --git a/docs/setup_8h__dep__incl.md5 b/docs/setup_8h__dep__incl.md5 deleted file mode 100644 index f5b571b34..000000000 --- a/docs/setup_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -c28698dd2faa7340b0e306f79ef1ba33 \ No newline at end of file diff --git a/docs/setup_8h__dep__incl.png b/docs/setup_8h__dep__incl.png deleted file mode 100644 index aafdeeeff..000000000 Binary files a/docs/setup_8h__dep__incl.png and /dev/null differ diff --git a/docs/setup_8h__incl.md5 b/docs/setup_8h__incl.md5 deleted file mode 100644 index 19075b0c7..000000000 --- a/docs/setup_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -f6207c888fcac79ec7f5b61ef43b43bf \ No newline at end of file diff --git a/docs/setup_8h__incl.png b/docs/setup_8h__incl.png deleted file mode 100644 index d365ebebf..000000000 Binary files a/docs/setup_8h__incl.png and /dev/null differ diff --git a/docs/setup_8h_source.html b/docs/setup_8h_source.html deleted file mode 100644 index 13a298973..000000000 --- a/docs/setup_8h_source.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - -SensESP: src/net/web/setup.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          setup.h
          -
          -
          -Go to the documentation of this file.
          1 #include <pgmspace.h>
          2 const char PAGE_setup[] PROGMEM = R"=====(
          3 <html>
          4  <head>
          5  <title>Configure SensESP Sensor</title>
          6 
          7 <style>
          8 /* Remove default bullets */
          9 ul, #tree {
          10  list-style-type: none;
          11 }
          12 
          13 /* Remove margins and padding from the parent ul */
          14 #tree {
          15  margin: 0;
          16  padding: 0;
          17 }
          18 
          19 /* Style the caret/arrow */
          20 .caret, .selectable {
          21  cursor: pointer;
          22  user-select: none; /* Prevent text selection */
          23 }
          24 
          25 
          26 /* Create the caret/arrow with a unicode, and style it */
          27 .caret::before {
          28  content: "\25B6";
          29  color: black;
          30  display: inline-block;
          31  margin-right: 6px;
          32 }
          33 
          34 /* Rotate the caret/arrow icon when clicked on (using JavaScript) */
          35 .caret-down::before {
          36  transform: rotate(90deg);
          37 }
          38 
          39 /* Hide the nested list */
          40 .nested {
          41  display: none;
          42 }
          43 
          44 /* Show the nested list when the user clicks on the caret/arrow (with JavaScript) */
          45 .active {
          46  display: block;
          47 }
          48 </style>
          49 
          50 <script src="/js/jsoneditor.min.js"></script>
          51 <script src="/js/sensesp.js"></script>
          52 </head>
          53 
          54 <body onload="showConfigTree()">
          55 <h1>SensESP Sensor</h1>
          56 <div id="mountNode">
          57 </div>
          58 </body>
          59 </html>
          60 
          61 )=====";
          const char PAGE_setup [] PROGMEM
          Definition: setup.h:2
          -
          -
          - - - - diff --git a/docs/signalk__delta_8cpp__incl.md5 b/docs/signalk__delta_8cpp__incl.md5 deleted file mode 100644 index 52fd1e887..000000000 --- a/docs/signalk__delta_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -4d156008227e0f635b63cd4f23b001f0 \ No newline at end of file diff --git a/docs/signalk__delta_8cpp__incl.png b/docs/signalk__delta_8cpp__incl.png deleted file mode 100644 index 9313f4386..000000000 Binary files a/docs/signalk__delta_8cpp__incl.png and /dev/null differ diff --git a/docs/signalk__delta_8cpp_source.html b/docs/signalk__delta_8cpp_source.html deleted file mode 100644 index 1bfb1850e..000000000 --- a/docs/signalk__delta_8cpp_source.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_delta.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          signalk_delta.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "signalk_delta.h"
          2 
          3 #include "Arduino.h"
          4 #include "ArduinoJson.h"
          5 #include "sensesp.h"
          6 
          7 SKDelta::SKDelta(const String& hostname, unsigned int max_buffer_size)
          8 : hostname{hostname},
          9  max_buffer_size{max_buffer_size} {}
          10 
          11 void SKDelta::append(const String val) {
          12  if (buffer.size() >= max_buffer_size) {
          13  buffer.pop_back();
          14  }
          15  buffer.push_front(val);
          16 }
          17 
          19  return buffer.size() > 0;
          20 }
          21 
          22 void SKDelta::get_delta(String& output) {
          23  DynamicJsonBuffer jsonBuffer;
          24 
          25  JsonObject& delta = jsonBuffer.createObject();
          26  JsonArray& updates = delta.createNestedArray("updates");
          27 
          28  JsonObject& current = updates.createNestedObject();
          29  JsonObject& source = current.createNestedObject("source");
          30  source["label"] = hostname;
          31  JsonArray& values = current.createNestedArray("values");
          32 
          33  while (!buffer.empty()) {
          34  values.add(RawJson(buffer.back()));
          35  buffer.pop_back();
          36  }
          37 
          38  delta.printTo(output);
          39 
          40  debugD("SKDelta::get_delta: %s", output.c_str());
          41 }
          42 
          -
          SKDelta(const String &hostname, unsigned int max_buffer_size=20)
          -
          void append(const String val)
          -
          bool data_available()
          -
          void get_delta(String &output)
          - -
          -
          - - - - diff --git a/docs/signalk__delta_8h.html b/docs/signalk__delta_8h.html deleted file mode 100644 index 46d30d33c..000000000 --- a/docs/signalk__delta_8h.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_delta.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          signalk_delta.h File Reference
          -
          -
          -
          #include <list>
          -#include "ArduinoJson.h"
          -
          -Include dependency graph for signalk_delta.h:
          -
          -
          - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  SKDelta
           
          -
          -
          - - - - diff --git a/docs/signalk__delta_8h__dep__incl.map b/docs/signalk__delta_8h__dep__incl.map deleted file mode 100644 index e1d03ee20..000000000 --- a/docs/signalk__delta_8h__dep__incl.map +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/docs/signalk__delta_8h__dep__incl.md5 b/docs/signalk__delta_8h__dep__incl.md5 deleted file mode 100644 index c4bb2aa6e..000000000 --- a/docs/signalk__delta_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -5565dc52b6c24fae04f3f13eea4d65ab \ No newline at end of file diff --git a/docs/signalk__delta_8h__dep__incl.png b/docs/signalk__delta_8h__dep__incl.png deleted file mode 100644 index a537b92ef..000000000 Binary files a/docs/signalk__delta_8h__dep__incl.png and /dev/null differ diff --git a/docs/signalk__delta_8h__incl.md5 b/docs/signalk__delta_8h__incl.md5 deleted file mode 100644 index 24ad063ff..000000000 --- a/docs/signalk__delta_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -f87dfcdf3190a2984bf31fc1d5c58046 \ No newline at end of file diff --git a/docs/signalk__delta_8h__incl.png b/docs/signalk__delta_8h__incl.png deleted file mode 100644 index 89deefe58..000000000 Binary files a/docs/signalk__delta_8h__incl.png and /dev/null differ diff --git a/docs/signalk__delta_8h_source.html b/docs/signalk__delta_8h_source.html deleted file mode 100644 index f7370eacb..000000000 --- a/docs/signalk__delta_8h_source.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_delta.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          signalk_delta.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _signalk_delta_H_
          2 #define _signalk_delta_H_
          3 
          4 #include <list>
          5 
          6 #include "ArduinoJson.h"
          7 
          9 // Signal K delta message representation
          10 
          11 class SKDelta {
          12  public:
          13  SKDelta(const String& hostname, unsigned int max_buffer_size=20);
          14  void append(const String val);
          15  bool data_available();
          16  void get_delta(String& output);
          17  void set_hostname(String hostname) { this->hostname = hostname; }
          18  private:
          19  String hostname;
          20  unsigned int max_buffer_size;
          21  std::list<String> buffer;
          22 };
          23 
          24 #endif
          SKDelta(const String &hostname, unsigned int max_buffer_size=20)
          - -
          void append(const String val)
          -
          bool data_available()
          -
          void set_hostname(String hostname)
          Definition: signalk_delta.h:17
          -
          void get_delta(String &output)
          -
          -
          - - - - diff --git a/docs/signalk__emitter_8cpp.html b/docs/signalk__emitter_8cpp.html deleted file mode 100644 index fccf60c21..000000000 --- a/docs/signalk__emitter_8cpp.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_emitter.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          signalk_emitter.cpp File Reference
          -
          -
          -
          #include "signalk_emitter.h"
          -
          -Include dependency graph for signalk_emitter.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          -
          -
          - - - - diff --git a/docs/signalk__emitter_8cpp__incl.map b/docs/signalk__emitter_8cpp__incl.map deleted file mode 100644 index 775433165..000000000 --- a/docs/signalk__emitter_8cpp__incl.map +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/docs/signalk__emitter_8cpp__incl.md5 b/docs/signalk__emitter_8cpp__incl.md5 deleted file mode 100644 index 0eaf43cf7..000000000 --- a/docs/signalk__emitter_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -9a948dfe2c49b212bd6ae4de2ab99deb \ No newline at end of file diff --git a/docs/signalk__emitter_8cpp__incl.png b/docs/signalk__emitter_8cpp__incl.png deleted file mode 100644 index f76ea6580..000000000 Binary files a/docs/signalk__emitter_8cpp__incl.png and /dev/null differ diff --git a/docs/signalk__emitter_8cpp_source.html b/docs/signalk__emitter_8cpp_source.html deleted file mode 100644 index 310e28776..000000000 --- a/docs/signalk__emitter_8cpp_source.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_emitter.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          signalk_emitter.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "signalk_emitter.h"
          2 
          3 std::vector<SKEmitter*> SKEmitter::sources;
          4 
          5 SKEmitter::SKEmitter(String sk_path) : sk_path{sk_path} {
          6  sources.push_back(this);
          7 }
          SKEmitter(String sk_path)
          - -
          String sk_path
          -
          -
          - - - - diff --git a/docs/signalk__emitter_8h.html b/docs/signalk__emitter_8h.html deleted file mode 100644 index 616f9d95a..000000000 --- a/docs/signalk__emitter_8h.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_emitter.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          signalk_emitter.h File Reference
          -
          -
          -
          #include <set>
          -#include "Arduino.h"
          -#include <ArduinoJson.h>
          -#include "system/configurable.h"
          -#include "system/observable.h"
          -#include "system/valueproducer.h"
          -#include "sensesp.h"
          -
          -Include dependency graph for signalk_emitter.h:
          -
          -
          - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  SKEmitter
           
          -
          -
          - - - - diff --git a/docs/signalk__emitter_8h__dep__incl.map b/docs/signalk__emitter_8h__dep__incl.map deleted file mode 100644 index 5daf686d1..000000000 --- a/docs/signalk__emitter_8h__dep__incl.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/signalk__emitter_8h__dep__incl.md5 b/docs/signalk__emitter_8h__dep__incl.md5 deleted file mode 100644 index bf8d56518..000000000 --- a/docs/signalk__emitter_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -ee1bdfc4a33a739940354619c8d37c33 \ No newline at end of file diff --git a/docs/signalk__emitter_8h__dep__incl.png b/docs/signalk__emitter_8h__dep__incl.png deleted file mode 100644 index 3b4905d73..000000000 Binary files a/docs/signalk__emitter_8h__dep__incl.png and /dev/null differ diff --git a/docs/signalk__emitter_8h__incl.map b/docs/signalk__emitter_8h__incl.map deleted file mode 100644 index 594628a94..000000000 --- a/docs/signalk__emitter_8h__incl.map +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/docs/signalk__emitter_8h__incl.md5 b/docs/signalk__emitter_8h__incl.md5 deleted file mode 100644 index efee93a42..000000000 --- a/docs/signalk__emitter_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -85ab95e5123c0de3f5cdd812fa8bc49e \ No newline at end of file diff --git a/docs/signalk__emitter_8h__incl.png b/docs/signalk__emitter_8h__incl.png deleted file mode 100644 index d910b57cd..000000000 Binary files a/docs/signalk__emitter_8h__incl.png and /dev/null differ diff --git a/docs/signalk__emitter_8h_source.html b/docs/signalk__emitter_8h_source.html deleted file mode 100644 index a018b289d..000000000 --- a/docs/signalk__emitter_8h_source.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_emitter.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          signalk_emitter.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _signalk_emitter_H_
          2 #define _signalk_emitter_H_
          3 
          4 #include <set>
          5 
          6 #include "Arduino.h"
          7 #include <ArduinoJson.h>
          8 
          9 #include "system/configurable.h"
          10 #include "system/observable.h"
          11 #include "system/valueproducer.h"
          12 #include "sensesp.h"
          13 
          19 class SKEmitter : virtual public Observable {
          20 
          21  public:
          27  SKEmitter(String sk_path);
          28 
          29 
          34  virtual String as_signalK() { return "not implemented"; }
          35 
          36 
          42  String& get_sk_path() {
          43  return sk_path;
          44  }
          45 
          46  void set_sk_path(const String& path) {
          47  sk_path = path;
          48  }
          49 
          50  static const std::vector<SKEmitter*>& get_sources() {
          51  return sources;
          52  }
          53 
          54  protected:
          55  String sk_path;
          56 
          57  private:
          58  static std::vector<SKEmitter*> sources;
          59 
          60 };
          61 
          62 #endif
          SKEmitter(String sk_path)
          -
          void set_sk_path(const String &path)
          - -
          virtual String as_signalK()
          - -
          String sk_path
          - - - - -
          static const std::vector< SKEmitter * > & get_sources()
          -
          String & get_sk_path()
          -
          -
          - - - - diff --git a/docs/signalk__output_8h__dep__incl.map b/docs/signalk__output_8h__dep__incl.map deleted file mode 100644 index 6f134a586..000000000 --- a/docs/signalk__output_8h__dep__incl.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/signalk__output_8h__dep__incl.md5 b/docs/signalk__output_8h__dep__incl.md5 deleted file mode 100644 index 11944c8e0..000000000 --- a/docs/signalk__output_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -55443e35126f267e6dbf964c1ceb9283 \ No newline at end of file diff --git a/docs/signalk__output_8h__dep__incl.png b/docs/signalk__output_8h__dep__incl.png deleted file mode 100644 index 923f210b8..000000000 Binary files a/docs/signalk__output_8h__dep__incl.png and /dev/null differ diff --git a/docs/signalk__output_8h__incl.map b/docs/signalk__output_8h__incl.map deleted file mode 100644 index 34e35a879..000000000 --- a/docs/signalk__output_8h__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/signalk__output_8h__incl.md5 b/docs/signalk__output_8h__incl.md5 deleted file mode 100644 index 9766869a4..000000000 --- a/docs/signalk__output_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -b9b2fcc2f9b0d1d2b401d4bfc8c07d2d \ No newline at end of file diff --git a/docs/signalk__output_8h__incl.png b/docs/signalk__output_8h__incl.png deleted file mode 100644 index 594303703..000000000 Binary files a/docs/signalk__output_8h__incl.png and /dev/null differ diff --git a/docs/signalk__output_8h_source.html b/docs/signalk__output_8h_source.html deleted file mode 100644 index 24b43855e..000000000 --- a/docs/signalk__output_8h_source.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_output.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          signalk_output.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _signalk_output_H_
          2 #define _signalk_output_H_
          3 
          5 #include "transforms/transform.h"
          6 
          7 static const char SIGNALKOUTPUT_SCHEMA[] PROGMEM = R"({
          8  "type": "object",
          9  "properties": {
          10  "sk_path": { "title": "SignalK Path", "type": "string" }
          11  }
          12  })";
          13 
          14 // SKOutput is a specialized transform whose primary purpose is
          15 // to output SignalK data on the SignalK network.
          16 template <typename T>
          17 class SKOutput : public SKEmitter,
          18  public SymmetricTransform<T> {
          19  public:
          20  SKOutput() : SKOutput("") {}
          21 
          22  SKOutput(String sk_path, String config_path="")
          24  Enable::className = "SKOutput";
          26  }
          27 
          28 
          29  virtual void set_input(T newValue, uint8_t inputChannel = 0) override {
          30  ValueProducer<T>::output = newValue;
          31  this->notify();
          32  }
          33 
          34 
          35  virtual String as_signalK() override {
          36  DynamicJsonBuffer jsonBuffer;
          37  String json;
          38  JsonObject& root = jsonBuffer.createObject();
          39  root.set("path", this->get_sk_path());
          40  root.set("value", ValueProducer<T>::output);
          41  root.printTo(json);
          42  return json;
          43  }
          44 
          45  virtual JsonObject& get_configuration(JsonBuffer& buf) override {
          46  JsonObject& root = buf.createObject();
          47  root["sk_path"] = this->get_sk_path();
          48  return root;
          49  }
          50 
          51  String get_config_schema() override {
          52  return FPSTR(SIGNALKOUTPUT_SCHEMA);
          53  }
          54 
          55  virtual bool set_configuration(const JsonObject& config) override {
          56  if (!config.containsKey("sk_path")) {
          57  return false;
          58  }
          59  this->set_sk_path(config["sk_path"].as<String>());
          60  return true;
          61  }
          62 
          63 };
          64 
          69 
          70 #endif
          SKOutput(String sk_path, String config_path="")
          -
          SKOutput< String > SKOutputString
          -
          virtual String as_signalK() override
          -
          void set_sk_path(const String &path)
          -
          void setPriority(uint8_t priority)
          Definition: enable.h:36
          -
          SKOutput< bool > SKOutputBool
          -
          void notify()
          Definition: observable.cpp:3
          -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override
          -
          virtual bool set_configuration(const JsonObject &config) override
          - -
          virtual void set_input(T newValue, uint8_t inputChannel=0) override
          - - -
          String sk_path
          -
          SKOutput< float > SKOutputNumber
          - - -
          SKOutput< int > SKOutputInt
          -
          const String config_path
          Definition: configurable.h:29
          -
          String get_config_schema() override
          -
          const char * className
          Definition: enable.h:55
          -
          const char PAGE_index [] PROGMEM
          Definition: index.h:2
          - - -
          String & get_sk_path()
          -
          -
          - - - - diff --git a/docs/signalk__position_8cpp.html b/docs/signalk__position_8cpp.html deleted file mode 100644 index 647ae6f63..000000000 --- a/docs/signalk__position_8cpp.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_position.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          signalk_position.cpp File Reference
          -
          -
          -
          #include "signalk_position.h"
          -
          -Include dependency graph for signalk_position.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          -
          -
          - - - - diff --git a/docs/signalk__position_8cpp__incl.map b/docs/signalk__position_8cpp__incl.map deleted file mode 100644 index 6087d0a41..000000000 --- a/docs/signalk__position_8cpp__incl.map +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/signalk__position_8cpp__incl.md5 b/docs/signalk__position_8cpp__incl.md5 deleted file mode 100644 index 4b8a8f2db..000000000 --- a/docs/signalk__position_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -f28cfbc833c6baa4c30f8cbc554df91d \ No newline at end of file diff --git a/docs/signalk__position_8cpp__incl.png b/docs/signalk__position_8cpp__incl.png deleted file mode 100644 index dac3d61c9..000000000 Binary files a/docs/signalk__position_8cpp__incl.png and /dev/null differ diff --git a/docs/signalk__position_8cpp_source.html b/docs/signalk__position_8cpp_source.html deleted file mode 100644 index a54a84e2b..000000000 --- a/docs/signalk__position_8cpp_source.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_position.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          signalk_position.cpp
          -
          -
          -Go to the documentation of this file.
          1 
          2 #include "signalk_position.h"
          3 
          4 template<>
          6  DynamicJsonBuffer jsonBuffer;
          7  String json;
          8  JsonObject& root = jsonBuffer.createObject();
          9  root.set("path", this->get_sk_path());
          10  JsonObject& value = root.createNestedObject("value");
          11  value.set("latitude", output.latitude);
          12  value.set("longitude", output.longitude);
          13  if (output.altitude > -10000) {
          14  value.set("altitude", output.altitude);
          15  }
          16  root.printTo(json);
          17  return json;
          18 }
          virtual String as_signalK() override
          - -
          -
          - - - - diff --git a/docs/signalk__position_8h.html b/docs/signalk__position_8h.html deleted file mode 100644 index d29db78ef..000000000 --- a/docs/signalk__position_8h.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_position.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          signalk_position.h File Reference
          -
          -
          -
          #include <set>
          -#include "Arduino.h"
          -#include <ArduinoJson.h>
          -#include "sensors/gps.h"
          -#include "sensesp.h"
          -#include "signalk_output.h"
          -
          -Include dependency graph for signalk_position.h:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Typedefs

          typedef SKOutput< PositionSKOutputPosition
           
          -

          Typedef Documentation

          - -

          ◆ SKOutputPosition

          - -
          -
          - - - - -
          typedef SKOutput<Position> SKOutputPosition
          -
          - -

          Definition at line 19 of file signalk_position.h.

          - -
          -
          -
          -
          - - - - diff --git a/docs/signalk__position_8h__dep__incl.md5 b/docs/signalk__position_8h__dep__incl.md5 deleted file mode 100644 index d98b52720..000000000 --- a/docs/signalk__position_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -16b891aee7f82b43ddc2ba2082a61e65 \ No newline at end of file diff --git a/docs/signalk__position_8h__dep__incl.png b/docs/signalk__position_8h__dep__incl.png deleted file mode 100644 index 5cdd7f36a..000000000 Binary files a/docs/signalk__position_8h__dep__incl.png and /dev/null differ diff --git a/docs/signalk__position_8h__incl.map b/docs/signalk__position_8h__incl.map deleted file mode 100644 index 5189ac269..000000000 --- a/docs/signalk__position_8h__incl.map +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/signalk__position_8h__incl.md5 b/docs/signalk__position_8h__incl.md5 deleted file mode 100644 index 7448727a9..000000000 --- a/docs/signalk__position_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -c83c5e2ade96924b13e9df299a14d233 \ No newline at end of file diff --git a/docs/signalk__position_8h__incl.png b/docs/signalk__position_8h__incl.png deleted file mode 100644 index ccd66c131..000000000 Binary files a/docs/signalk__position_8h__incl.png and /dev/null differ diff --git a/docs/signalk__position_8h_source.html b/docs/signalk__position_8h_source.html deleted file mode 100644 index 3b87aab75..000000000 --- a/docs/signalk__position_8h_source.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_position.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          signalk_position.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _signalk_position_H_
          2 #define _signalk_position_H_
          3 
          4 #include <set>
          5 
          6 #include "Arduino.h"
          7 #include <ArduinoJson.h>
          8 
          9 #include "sensors/gps.h"
          10 #include "sensesp.h"
          11 #include "signalk_output.h"
          12 
          14 // provide correct output formatting for GNSS position
          15 
          16 template<>
          18 
          20 
          21 #endif
          SKOutput< Position > SKOutputPosition
          -
          virtual String as_signalK() override
          - - - - -
          -
          - - - - diff --git a/docs/signalk__time_8cpp.html b/docs/signalk__time_8cpp.html deleted file mode 100644 index 601829423..000000000 --- a/docs/signalk__time_8cpp.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_time.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          signalk_time.cpp File Reference
          -
          -
          -
          #include "signalk_time.h"
          -
          -Include dependency graph for signalk_time.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          -
          -
          - - - - diff --git a/docs/signalk__time_8cpp__incl.map b/docs/signalk__time_8cpp__incl.map deleted file mode 100644 index 547ebdb7b..000000000 --- a/docs/signalk__time_8cpp__incl.map +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/signalk__time_8cpp__incl.md5 b/docs/signalk__time_8cpp__incl.md5 deleted file mode 100644 index 69b55824a..000000000 --- a/docs/signalk__time_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -3d8ef9b01b000a07dd36681066cb3e2b \ No newline at end of file diff --git a/docs/signalk__time_8cpp__incl.png b/docs/signalk__time_8cpp__incl.png deleted file mode 100644 index e752c29d1..000000000 Binary files a/docs/signalk__time_8cpp__incl.png and /dev/null differ diff --git a/docs/signalk__time_8cpp_source.html b/docs/signalk__time_8cpp_source.html deleted file mode 100644 index babd134a1..000000000 --- a/docs/signalk__time_8cpp_source.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_time.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          signalk_time.cpp
          -
          -
          -Go to the documentation of this file.
          1 
          2 #include "signalk_time.h"
          3 
          4 
          5 SKOutputTime::SKOutputTime(String sk_path, String config_path) :
          6  TimeString(config_path),
          7  SKEmitter(sk_path) {
          9 }
          10 
          11 
          13  DynamicJsonBuffer jsonBuffer;
          14  String json;
          15  JsonObject& root = jsonBuffer.createObject();
          16  root.set("path", this->sk_path);
          17  root.set("value", output);
          18  root.printTo(json);
          19  return json;
          20 }
          21 
          22 JsonObject& SKOutputTime::get_configuration(JsonBuffer& buf) {
          23  JsonObject& root = buf.createObject();
          24  root["sk_path"] = sk_path;
          25  root["value"] = output;
          26  return root;
          27 }
          28 
          29 static const char SCHEMA[] PROGMEM = R"({
          30  "type": "object",
          31  "properties": {
          32  "sk_path": { "title": "SignalK Path", "type": "string" },
          33  "value": { "title": "Last value", "type" : "string", "readOnly": true }
          34  }
          35  })";
          36 
          38  return FPSTR(SCHEMA);
          39 }
          40 
          41 bool SKOutputTime::set_configuration(const JsonObject& config) {
          42  String expected[] = {"sk_path"};
          43  for (auto str : expected) {
          44  if (!config.containsKey(str)) {
          45  return false;
          46  }
          47  }
          48  sk_path = config["sk_path"].as<String>();
          49  return true;
          50 }
          virtual bool set_configuration(const JsonObject &config) override
          - - -
          virtual void load_configuration()
          -
          String sk_path
          -
          SKOutputTime(String sk_path, String config_path="")
          Definition: signalk_time.cpp:5
          -
          virtual String as_signalK() override
          -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override
          - -
          const char PAGE_index [] PROGMEM
          Definition: index.h:2
          -
          virtual String get_config_schema() override
          - -
          -
          - - - - diff --git a/docs/signalk__time_8h.html b/docs/signalk__time_8h.html deleted file mode 100644 index 0373d3fff..000000000 --- a/docs/signalk__time_8h.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_time.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          signalk_time.h File Reference
          -
          -
          -
          -Include dependency graph for signalk_time.h:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  SKOutputTime
           
          -
          -
          - - - - diff --git a/docs/signalk__time_8h__dep__incl.md5 b/docs/signalk__time_8h__dep__incl.md5 deleted file mode 100644 index 882c07c5f..000000000 --- a/docs/signalk__time_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -c7a5a2113f9520232507230c13020e7d \ No newline at end of file diff --git a/docs/signalk__time_8h__dep__incl.png b/docs/signalk__time_8h__dep__incl.png deleted file mode 100644 index d3613dbe4..000000000 Binary files a/docs/signalk__time_8h__dep__incl.png and /dev/null differ diff --git a/docs/signalk__time_8h__incl.map b/docs/signalk__time_8h__incl.map deleted file mode 100644 index 042c1e8cb..000000000 --- a/docs/signalk__time_8h__incl.map +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/signalk__time_8h__incl.md5 b/docs/signalk__time_8h__incl.md5 deleted file mode 100644 index 59e3118b9..000000000 --- a/docs/signalk__time_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -6d0c051feb22c1c348c911cd5b5054ac \ No newline at end of file diff --git a/docs/signalk__time_8h__incl.png b/docs/signalk__time_8h__incl.png deleted file mode 100644 index 9f744dee5..000000000 Binary files a/docs/signalk__time_8h__incl.png and /dev/null differ diff --git a/docs/signalk__time_8h_source.html b/docs/signalk__time_8h_source.html deleted file mode 100644 index f55d62fe4..000000000 --- a/docs/signalk__time_8h_source.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -SensESP: src/signalk/signalk_time.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          signalk_time.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _signalk_time_H_
          2 #define _signalk_time_H_
          3 
          5 #include "signalk_emitter.h"
          6 
          7 class SKOutputTime : public TimeString,
          8  public SKEmitter {
          9  public:
          10  SKOutputTime(String sk_path, String config_path="");
          11  virtual String as_signalK() override;
          12  virtual JsonObject& get_configuration(JsonBuffer& buf) override;
          13  virtual bool set_configuration(const JsonObject& config) override;
          14  virtual String get_config_schema() override;
          15 };
          16 
          17 #endif
          virtual bool set_configuration(const JsonObject &config) override
          - - - - -
          String sk_path
          -
          SKOutputTime(String sk_path, String config_path="")
          Definition: signalk_time.cpp:5
          -
          const String config_path
          Definition: configurable.h:29
          -
          virtual String as_signalK() override
          - -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override
          -
          virtual String get_config_schema() override
          -
          -
          - - - - diff --git a/docs/spiffs__storage_8cpp__incl.map b/docs/spiffs__storage_8cpp__incl.map deleted file mode 100644 index ce6af6e05..000000000 --- a/docs/spiffs__storage_8cpp__incl.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/spiffs__storage_8cpp__incl.md5 b/docs/spiffs__storage_8cpp__incl.md5 deleted file mode 100644 index 2975b5951..000000000 --- a/docs/spiffs__storage_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -c71058c0ef99bdd4a3ef55fde81eedbe \ No newline at end of file diff --git a/docs/spiffs__storage_8cpp__incl.png b/docs/spiffs__storage_8cpp__incl.png deleted file mode 100644 index 2797bd46d..000000000 Binary files a/docs/spiffs__storage_8cpp__incl.png and /dev/null differ diff --git a/docs/spiffs__storage_8cpp_source.html b/docs/spiffs__storage_8cpp_source.html deleted file mode 100644 index 6fedc5a78..000000000 --- a/docs/spiffs__storage_8cpp_source.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - -SensESP: src/system/spiffs_storage.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          spiffs_storage.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "sensesp.h"
          2 
          3 #include "spiffs_storage.h"
          4 
          5 #include "FS.h"
          6 
          8  bool result = SPIFFS.begin();
          9  if (!result) {
          10  debugE("FATAL: Filesystem initialization failed.");
          11  ESP.restart();
          12  }
          13 }
          14 
          15 void write_string(const String filename, String data) {
          16  File f = SPIFFS.open(filename, "w");
          17  if (f) {
          18  f.print(data);
          19  f.close();
          20  }
          21 }
          22 
          23 String read_string(const String filename) {
          24  File f = SPIFFS.open(filename, "r");
          25  if (!f) {
          26  return "";
          27  }
          28  String input = f.readString();
          29  f.close();
          30  return input;
          31 }
          String read_string(const String filename)
          -
          void write_string(const String filename, String data)
          -
          void setup_spiffs_storage()
          - - -
          -
          - - - - diff --git a/docs/spiffs__storage_8h.js b/docs/spiffs__storage_8h.js deleted file mode 100644 index 360483c99..000000000 --- a/docs/spiffs__storage_8h.js +++ /dev/null @@ -1,8 +0,0 @@ -var spiffs__storage_8h = -[ - [ "read_json", "spiffs__storage_8h.html#aeb6c893649f188e378de0c76055b1f01", null ], - [ "read_string", "spiffs__storage_8h.html#a7429780969e66149e25ea6088bf65b7a", null ], - [ "setup_spiffs_storage", "spiffs__storage_8h.html#a1dfee751479797b385c81cacb151c115", null ], - [ "write_json", "spiffs__storage_8h.html#afc3e0da568f2f14c9954eeab665ab9cd", null ], - [ "write_string", "spiffs__storage_8h.html#ae1cd66733f6f724334874c5ff65b958b", null ] -]; \ No newline at end of file diff --git a/docs/spiffs__storage_8h__dep__incl.md5 b/docs/spiffs__storage_8h__dep__incl.md5 deleted file mode 100644 index 671a5a938..000000000 --- a/docs/spiffs__storage_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -77bd8b612a7a9c5b2c281a74f90fd165 \ No newline at end of file diff --git a/docs/spiffs__storage_8h__dep__incl.png b/docs/spiffs__storage_8h__dep__incl.png deleted file mode 100644 index e4cea2760..000000000 Binary files a/docs/spiffs__storage_8h__dep__incl.png and /dev/null differ diff --git a/docs/spiffs__storage_8h__incl.md5 b/docs/spiffs__storage_8h__incl.md5 deleted file mode 100644 index 89e94b353..000000000 --- a/docs/spiffs__storage_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -63f34d031e06a71c7b8599a2cd51bdec \ No newline at end of file diff --git a/docs/spiffs__storage_8h__incl.png b/docs/spiffs__storage_8h__incl.png deleted file mode 100644 index 0b0221490..000000000 Binary files a/docs/spiffs__storage_8h__incl.png and /dev/null differ diff --git a/docs/spiffs__storage_8h_source.html b/docs/spiffs__storage_8h_source.html deleted file mode 100644 index 53100a30c..000000000 --- a/docs/spiffs__storage_8h_source.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - -SensESP: src/system/spiffs_storage.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          spiffs_storage.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _fs_H_
          2 #define _fs_H_
          3 
          4 #include "Arduino.h"
          5 #include "ArduinoJson.h"
          6 #include "FS.h"
          7 
          8 // quick and dirty hack to get string values to
          9 // disk and back
          10 
          12 
          13 void write_string(const String filename, String data);
          14 String read_string(const String filename);
          15 
          16 void write_json(const String filename, JsonObject& data);
          17 JsonObject& read_json(const String filename, JsonBuffer& buf);
          18 
          19 #endif
          void write_string(const String filename, String data)
          -
          String read_string(const String filename)
          -
          void write_json(const String filename, JsonObject &data)
          -
          void setup_spiffs_storage()
          -
          JsonObject & read_json(const String filename, JsonBuffer &buf)
          -
          -
          - - - - diff --git a/docs/system__info_8cpp.html b/docs/system__info_8cpp.html deleted file mode 100644 index 6b502d579..000000000 --- a/docs/system__info_8cpp.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - -SensESP: src/sensors/system_info.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          system_info.cpp File Reference
          -
          -
          -
          #include "system_info.h"
          -#include "Arduino.h"
          -#include <ESP8266WiFi.h>
          -#include "sensesp.h"
          -
          -Include dependency graph for system_info.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          -
          -
          - - - - diff --git a/docs/system__info_8cpp__incl.map b/docs/system__info_8cpp__incl.map deleted file mode 100644 index f8f75362a..000000000 --- a/docs/system__info_8cpp__incl.map +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/system__info_8cpp__incl.md5 b/docs/system__info_8cpp__incl.md5 deleted file mode 100644 index 45951b75d..000000000 --- a/docs/system__info_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -def138eeab9899d92107f790d0cc27bc \ No newline at end of file diff --git a/docs/system__info_8cpp__incl.png b/docs/system__info_8cpp__incl.png deleted file mode 100644 index 220d9a4a9..000000000 Binary files a/docs/system__info_8cpp__incl.png and /dev/null differ diff --git a/docs/system__info_8cpp_source.html b/docs/system__info_8cpp_source.html deleted file mode 100644 index 0f488064b..000000000 --- a/docs/system__info_8cpp_source.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -SensESP: src/sensors/system_info.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          system_info.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "system_info.h"
          2 
          3 #include "Arduino.h"
          4 #include <ESP8266WiFi.h>
          5 
          6 #include "sensesp.h"
          7 
          8 void SystemHz::tick() {
          9  tick_count++;
          10 }
          11 
          12 void SystemHz::update() {
          13  uint32_t cur_millis = millis();
          14  uint32_t elapsed = cur_millis - prev_millis;
          15 
          16  // getting sporadic divide by 0 exceptions, no harm in skipping a loop.
          17  if (elapsed == 0) {
          18  return;
          19  }
          20 
          21  output = (tick_count*1000) / elapsed;
          22 
          23  tick_count = 0;
          24  prev_millis = cur_millis;
          25 
          26  this->notify();
          27 }
          28 
          30  prev_millis = millis();
          31 
          32  app.onTick([this](){ this->tick(); });
          33  app.onRepeat(1000, [this](){ this->update(); });
          34 }
          35 
          36 
          37 void FreeMem::update() {
          38  output = ESP.getFreeHeap();
          39  this->notify();
          40 }
          41 
          43  app.onRepeat(1000, [this](){ this->update(); });
          44 }
          45 
          46 
          47 void Uptime::update() {
          48  output = millis() / 1000.;
          49  this->notify();
          50 }
          51 
          53  app.onRepeat(1000, [this](){ this->update(); });
          54 }
          55 
          56 
          57 void IPAddrDev::update() {
          58  output = WiFi.localIP().toString();
          59  this->notify();
          60 }
          61 
          63  app.onRepeat(10000, [this](){ this->update(); });
          64 }
          void notify()
          Definition: observable.cpp:3
          -
          void enable() override final
          Definition: system_info.cpp:42
          -
          void enable() override final
          Definition: system_info.cpp:52
          - -
          void enable() override final
          Definition: system_info.cpp:29
          - - -
          void enable() override final
          Definition: system_info.cpp:62
          -
          ReactESP app
          -
          -
          - - - - diff --git a/docs/system__info_8h.html b/docs/system__info_8h.html deleted file mode 100644 index 6cd363503..000000000 --- a/docs/system__info_8h.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - -SensESP: src/sensors/system_info.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          system_info.h File Reference
          -
          -
          -
          #include "sensor.h"
          -
          -Include dependency graph for system_info.h:
          -
          -
          - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - - - - - - - -

          -Classes

          class  SystemHz
           
          class  FreeMem
           
          class  Uptime
           
          class  IPAddrDev
           
          -
          -
          - - - - diff --git a/docs/system__info_8h__dep__incl.md5 b/docs/system__info_8h__dep__incl.md5 deleted file mode 100644 index bf0e07b15..000000000 --- a/docs/system__info_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -2992709c4b1c4e865a35e394e2632b13 \ No newline at end of file diff --git a/docs/system__info_8h__dep__incl.png b/docs/system__info_8h__dep__incl.png deleted file mode 100644 index d56a07514..000000000 Binary files a/docs/system__info_8h__dep__incl.png and /dev/null differ diff --git a/docs/system__info_8h__incl.map b/docs/system__info_8h__incl.map deleted file mode 100644 index 52ac8d0a1..000000000 --- a/docs/system__info_8h__incl.map +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/docs/system__info_8h__incl.md5 b/docs/system__info_8h__incl.md5 deleted file mode 100644 index c871f702e..000000000 --- a/docs/system__info_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -5fbdf2c53e57ee7b3a33a5c0f81d0502 \ No newline at end of file diff --git a/docs/system__info_8h__incl.png b/docs/system__info_8h__incl.png deleted file mode 100644 index 8686d64c5..000000000 Binary files a/docs/system__info_8h__incl.png and /dev/null differ diff --git a/docs/system__info_8h_source.html b/docs/system__info_8h_source.html deleted file mode 100644 index 9d5cc5840..000000000 --- a/docs/system__info_8h_source.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - -SensESP: src/sensors/system_info.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          system_info.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _systeminfo_H_
          2 #define _systeminfo_H_
          3 
          4 #include "sensor.h"
          5 
          6 class SystemHz : public NumericSensor {
          7  public:
          8  SystemHz() { className = "SystemHz"; }
          9  void enable() override final;
          10  String get_value_name() { return "systemhz"; }
          11  private:
          12  uint32_t tick_count = 0;
          13  uint32_t prev_millis;
          14  float system_hz;
          15  void tick();
          16  void update();
          17 };
          18 
          19 class FreeMem : public Sensor, public ValueProducer<uint32_t> {
          20  public:
          21  FreeMem() { className = "FreeMem"; }
          22  void enable() override final;
          23  String get_value_name() { return "freemem"; }
          24  private:
          25  void update();
          26 };
          27 
          28 class Uptime : public NumericSensor {
          29  public:
          30  Uptime() { className = "Uptime"; }
          31  void enable() override final;
          32  String get_value_name() { return "uptime"; }
          33  private:
          34  void update();
          35 };
          36 
          37 class IPAddrDev : public StringSensor {
          38  public:
          39  IPAddrDev() { className = "IPAddrDev"; }
          40  void enable() override final;
          41  String get_value_name() { return "ipaddr"; }
          42  private:
          43  void update();
          44 };
          45 
          46 #endif
          -
          Definition: sensor.h:15
          - -
          String get_value_name()
          Definition: system_info.h:41
          - -
          String get_value_name()
          Definition: system_info.h:23
          -
          String get_value_name()
          Definition: system_info.h:10
          -
          String get_value_name()
          Definition: system_info.h:32
          - - -
          void enable() override final
          Definition: system_info.cpp:42
          - -
          Uptime()
          Definition: system_info.h:30
          - -
          void enable() override final
          Definition: system_info.cpp:52
          -
          void enable() override final
          Definition: system_info.cpp:29
          - - - -
          const char * className
          Definition: enable.h:55
          -
          void enable() override final
          Definition: system_info.cpp:62
          -
          SystemHz()
          Definition: system_info.h:8
          -
          -
          - - - - diff --git a/docs/tabs.css b/docs/tabs.css deleted file mode 100644 index 8ea7d5496..000000000 --- a/docs/tabs.css +++ /dev/null @@ -1 +0,0 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/docs/timestring_8cpp.html b/docs/timestring_8cpp.html deleted file mode 100644 index fce225967..000000000 --- a/docs/timestring_8cpp.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -SensESP: src/transforms/timestring.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          timestring.cpp File Reference
          -
          -
          -
          #include "timestring.h"
          -
          -Include dependency graph for timestring.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          -
          -
          - - - - diff --git a/docs/timestring_8cpp__incl.map b/docs/timestring_8cpp__incl.map deleted file mode 100644 index 818be5c1f..000000000 --- a/docs/timestring_8cpp__incl.map +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/timestring_8cpp__incl.md5 b/docs/timestring_8cpp__incl.md5 deleted file mode 100644 index b05c86803..000000000 --- a/docs/timestring_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -632d40be774dc0def18385a5b07d3459 \ No newline at end of file diff --git a/docs/timestring_8cpp__incl.png b/docs/timestring_8cpp__incl.png deleted file mode 100644 index 6964bbac0..000000000 Binary files a/docs/timestring_8cpp__incl.png and /dev/null differ diff --git a/docs/timestring_8cpp_source.html b/docs/timestring_8cpp_source.html deleted file mode 100644 index bb616f0dc..000000000 --- a/docs/timestring_8cpp_source.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -SensESP: src/transforms/timestring.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          timestring.cpp
          -
          -
          -Go to the documentation of this file.
          1 
          2 #include "timestring.h"
          3 
          4 
          5 TimeString::TimeString(String config_path) :
          6  Transform<time_t, String>(config_path) {
          7  className = "TimeString";
          8 }
          9 
          10 void TimeString::set_input(time_t input, uint8_t inputChannel) {
          11  char buf[sizeof "2011-10-08T07:07:09Z"];
          12  strftime(buf, sizeof buf, "%FT%TZ", gmtime(&input));
          13  output = String(buf);
          14  notify();
          15 }
          TimeString(String config_path="")
          Definition: timestring.cpp:5
          -
          void notify()
          Definition: observable.cpp:3
          - - -
          virtual void set_input(time_t input, uint8_t inputChannel=0) override
          Definition: timestring.cpp:10
          - -
          const char * className
          Definition: enable.h:55
          -
          -
          - - - - diff --git a/docs/timestring_8h.html b/docs/timestring_8h.html deleted file mode 100644 index ae67d5a41..000000000 --- a/docs/timestring_8h.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - -SensESP: src/transforms/timestring.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          timestring.h File Reference
          -
          -
          -
          #include <ctime>
          -#include "transform.h"
          -#include "system/valueconsumer.h"
          -
          -Include dependency graph for timestring.h:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  TimeString
           
          -
          -
          - - - - diff --git a/docs/timestring_8h__dep__incl.md5 b/docs/timestring_8h__dep__incl.md5 deleted file mode 100644 index b243feb10..000000000 --- a/docs/timestring_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -b8a4d63124f5e9dd181cecec4b669175 \ No newline at end of file diff --git a/docs/timestring_8h__dep__incl.png b/docs/timestring_8h__dep__incl.png deleted file mode 100644 index e8d7e01ec..000000000 Binary files a/docs/timestring_8h__dep__incl.png and /dev/null differ diff --git a/docs/timestring_8h__incl.map b/docs/timestring_8h__incl.map deleted file mode 100644 index abb164926..000000000 --- a/docs/timestring_8h__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/timestring_8h__incl.md5 b/docs/timestring_8h__incl.md5 deleted file mode 100644 index 3cf13a4bb..000000000 --- a/docs/timestring_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -4bfd7b149cb5a6f700f38e7edd390379 \ No newline at end of file diff --git a/docs/timestring_8h__incl.png b/docs/timestring_8h__incl.png deleted file mode 100644 index ea8158e3a..000000000 Binary files a/docs/timestring_8h__incl.png and /dev/null differ diff --git a/docs/timestring_8h_source.html b/docs/timestring_8h_source.html deleted file mode 100644 index 613cdb4f8..000000000 --- a/docs/timestring_8h_source.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -SensESP: src/transforms/timestring.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          timestring.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _timestring_H_
          2 #define _timestring_H_
          3 
          4 #include <ctime>
          5 
          6 #include "transform.h"
          7 #include "system/valueconsumer.h"
          8 
          13 class TimeString : public Transform<time_t, String> {
          14 
          15  public:
          16  TimeString(String config_path="");
          17  virtual void set_input(time_t input, uint8_t inputChannel = 0) override;
          18 
          19 };
          20 
          21 #endif
          TimeString(String config_path="")
          Definition: timestring.cpp:5
          - - - - -
          const String config_path
          Definition: configurable.h:29
          -
          virtual void set_input(time_t input, uint8_t inputChannel=0) override
          Definition: timestring.cpp:10
          -
          -
          - - - - diff --git a/docs/transform_8cpp.html b/docs/transform_8cpp.html deleted file mode 100644 index 6a7a3587c..000000000 --- a/docs/transform_8cpp.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -SensESP: src/transforms/transform.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          transform.cpp File Reference
          -
          -
          -
          #include "transform.h"
          -#include "ArduinoJson.h"
          -#include "sensesp.h"
          -
          -Include dependency graph for transform.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          -
          -
          - - - - diff --git a/docs/transform_8cpp__incl.map b/docs/transform_8cpp__incl.map deleted file mode 100644 index 6b6521b36..000000000 --- a/docs/transform_8cpp__incl.map +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/transform_8cpp__incl.md5 b/docs/transform_8cpp__incl.md5 deleted file mode 100644 index 4e19e5415..000000000 --- a/docs/transform_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -03c799c80b885b27a0b1019febb16bc7 \ No newline at end of file diff --git a/docs/transform_8cpp__incl.png b/docs/transform_8cpp__incl.png deleted file mode 100644 index 46a40f19d..000000000 Binary files a/docs/transform_8cpp__incl.png and /dev/null differ diff --git a/docs/transform_8cpp_source.html b/docs/transform_8cpp_source.html deleted file mode 100644 index d59a44477..000000000 --- a/docs/transform_8cpp_source.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -SensESP: src/transforms/transform.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          transform.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "transform.h"
          2 
          3 #include "ArduinoJson.h"
          4 
          5 #include "sensesp.h"
          6 
          7 // Transform
          8 
          9 std::set<TransformBase*> TransformBase::transforms;
          10 
          11 TransformBase::TransformBase(String config_path) :
          13  className = "TransformBase";
          14  transforms.insert(this);
          15 }
          16 
          TransformBase(String config_path="")
          Definition: transform.cpp:11
          -
          Definition: enable.h:15
          - -
          const String config_path
          Definition: configurable.h:29
          - - -
          -
          - - - - diff --git a/docs/transform_8h.html b/docs/transform_8h.html deleted file mode 100644 index 97e547560..000000000 --- a/docs/transform_8h.html +++ /dev/null @@ -1,272 +0,0 @@ - - - - - - - -SensESP: src/transforms/transform.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          transform.h File Reference
          -
          -
          -
          #include <set>
          -#include "Arduino.h"
          -#include <ArduinoJson.h>
          -#include "system/configurable.h"
          -#include "system/observable.h"
          -#include "system/valueconsumer.h"
          -#include "system/valueproducer.h"
          -#include "system/enable.h"
          -#include "sensesp.h"
          -
          -Include dependency graph for transform.h:
          -
          -
          - - - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - - - - - -

          -Classes

          class  TransformBase
           
          class  Transform< C, P >
           
          class  SymmetricTransform< T >
           
          - - - - - - - - - -

          -Typedefs

          typedef SymmetricTransform< float > NumericTransform
           
          typedef SymmetricTransform< int > IntegerTransform
           
          typedef SymmetricTransform< bool > BooleanTransform
           
          typedef SymmetricTransform< String > StringTransform
           
          -

          Typedef Documentation

          - -

          ◆ BooleanTransform

          - -
          -
          - - - - -
          typedef SymmetricTransform<bool> BooleanTransform
          -
          - -

          Definition at line 116 of file transform.h.

          - -
          -
          - -

          ◆ IntegerTransform

          - -
          -
          - - - - -
          typedef SymmetricTransform<int> IntegerTransform
          -
          - -

          Definition at line 115 of file transform.h.

          - -
          -
          - -

          ◆ NumericTransform

          - -
          -
          - - - - -
          typedef SymmetricTransform<float> NumericTransform
          -
          - -

          Definition at line 114 of file transform.h.

          - -
          -
          - -

          ◆ StringTransform

          - -
          -
          - - - - -
          typedef SymmetricTransform<String> StringTransform
          -
          - -

          Definition at line 117 of file transform.h.

          - -
          -
          -
          -
          - - - - diff --git a/docs/transform_8h__dep__incl.map b/docs/transform_8h__dep__incl.map deleted file mode 100644 index 793080e16..000000000 --- a/docs/transform_8h__dep__incl.map +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/transform_8h__dep__incl.md5 b/docs/transform_8h__dep__incl.md5 deleted file mode 100644 index 721ae82a9..000000000 --- a/docs/transform_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -53cf808c5357014f967bbccdbcf77126 \ No newline at end of file diff --git a/docs/transform_8h__dep__incl.png b/docs/transform_8h__dep__incl.png deleted file mode 100644 index 2a310f1d7..000000000 Binary files a/docs/transform_8h__dep__incl.png and /dev/null differ diff --git a/docs/transform_8h__incl.map b/docs/transform_8h__incl.map deleted file mode 100644 index 341bef852..000000000 --- a/docs/transform_8h__incl.map +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/docs/transform_8h__incl.md5 b/docs/transform_8h__incl.md5 deleted file mode 100644 index a1b4ee62a..000000000 --- a/docs/transform_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -dfb85a11ad393beaf0550cb74c4aa673 \ No newline at end of file diff --git a/docs/transform_8h__incl.png b/docs/transform_8h__incl.png deleted file mode 100644 index 7ea708784..000000000 Binary files a/docs/transform_8h__incl.png and /dev/null differ diff --git a/docs/transform_8h_source.html b/docs/transform_8h_source.html deleted file mode 100644 index 857b65892..000000000 --- a/docs/transform_8h_source.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - -SensESP: src/transforms/transform.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          transform.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _transform_H_
          2 #define _transform_H_
          3 
          4 #include <set>
          5 
          6 #include "Arduino.h"
          7 #include <ArduinoJson.h>
          8 
          9 #include "system/configurable.h"
          10 #include "system/observable.h"
          11 #include "system/valueconsumer.h"
          12 #include "system/valueproducer.h"
          13 #include "system/enable.h"
          14 #include "sensesp.h"
          15 
          16 
          17 // TODO: Split into multiple files
          18 
          20 // Transforms transform raw device readouts into useful sensor values.
          21 
          28 class TransformBase : public Configurable,
          29  public Enable {
          30  public:
          31  TransformBase(String config_path="");
          32 
          33 
          34  // Primary purpose of this was to supply SignalK sources
          35  // (now handled by SKEmitter::get_sources). Should
          36  // this be deprecated?
          37  static const std::set<TransformBase*>& get_transforms() {
          38  return transforms;
          39  }
          40 
          41  private:
          42  static std::set<TransformBase*> transforms;
          43 };
          44 
          45 
          51 template <typename C, typename P>
          52 class Transform : public TransformBase,
          53  public ValueConsumer<C>,
          54  public ValueProducer<P> {
          55  public:
          56  Transform(String config_path="") :
          58  ValueConsumer<C>(),
          59  ValueProducer<P>() {
          60  className = "Transform";
          61  }
          62 
          63 
          74  ValueProducer<P>* pProducer1 = NULL,
          75  ValueProducer<P>* pProducer2 = NULL,
          76  ValueProducer<P>* pProducer3 = NULL,
          77  ValueProducer<P>* pProducer4 = NULL) {
          78 
          79  this->ValueConsumer<C>::connectFrom(pProducer0);
          80  if (pProducer1 != NULL) {
          81  this->ValueConsumer<C>::connectFrom(pProducer1, 1);
          82  }
          83  if (pProducer2 != NULL) {
          84  this->ValueConsumer<C>::connectFrom(pProducer2, 2);
          85  }
          86  if (pProducer3 != NULL) {
          87  this->ValueConsumer<C>::connectFrom(pProducer3, 3);
          88  }
          89  if (pProducer4 != NULL) {
          90  this->ValueConsumer<C>::connectFrom(pProducer4, 4);
          91  }
          92  return this;
          93  }
          94 
          95 };
          96 
          97 
          98 
          103 template <typename T>
          104 class SymmetricTransform : public Transform<T, T> {
          105 
          106  public:
          108  Transform<T, T>(config_path) {
          109  Enable::className = "SymmetricTransform";
          110  }
          111 
          112 };
          113 
          118 
          119 #endif
          void connectFrom(ValueProducer< T > *pProducer, uint8_t inputChannel=0)
          Definition: valueconsumer.h:39
          -
          Transform(String config_path="")
          Definition: transform.h:56
          - - - - -
          SymmetricTransform< float > NumericTransform
          Definition: transform.h:114
          -
          static const std::set< TransformBase * > & get_transforms()
          Definition: transform.h:37
          -
          SymmetricTransform< int > IntegerTransform
          Definition: transform.h:115
          - -
          SymmetricTransform< String > StringTransform
          Definition: transform.h:117
          -
          TransformBase(String config_path="")
          Definition: transform.cpp:11
          -
          Transform< C, P > * connectFrom(ValueProducer< P > *pProducer0, ValueProducer< P > *pProducer1=NULL, ValueProducer< P > *pProducer2=NULL, ValueProducer< P > *pProducer3=NULL, ValueProducer< P > *pProducer4=NULL)
          Definition: transform.h:73
          - -
          Definition: enable.h:15
          - -
          const String config_path
          Definition: configurable.h:29
          -
          SymmetricTransform(String config_path="")
          Definition: transform.h:107
          -
          SymmetricTransform< bool > BooleanTransform
          Definition: transform.h:116
          - - - - -
          const char * className
          Definition: enable.h:55
          - -
          -
          - - - - diff --git a/docs/valueconsumer_8h.html b/docs/valueconsumer_8h.html deleted file mode 100644 index 386bd346f..000000000 --- a/docs/valueconsumer_8h.html +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - - -SensESP: src/system/valueconsumer.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          valueconsumer.h File Reference
          -
          -
          -
          #include <stdint.h>
          -#include <ArduinoJson.h>
          -
          -Include dependency graph for valueconsumer.h:
          -
          -
          - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - - - -

          -Classes

          class  ValueProducer< T >
           
          class  ValueConsumer< T >
           
          - - - - - - - - - -

          -Typedefs

          typedef ValueConsumer< float > NumericConsumer
           
          typedef ValueConsumer< int > IntegerConsumer
           
          typedef ValueConsumer< bool > BooleanConsumer
           
          typedef ValueConsumer< String > StringConsumer
           
          -

          Typedef Documentation

          - -

          ◆ BooleanConsumer

          - -
          -
          - - - - -
          typedef ValueConsumer<bool> BooleanConsumer
          -
          - -

          Definition at line 50 of file valueconsumer.h.

          - -
          -
          - -

          ◆ IntegerConsumer

          - -
          -
          - - - - -
          typedef ValueConsumer<int> IntegerConsumer
          -
          - -

          Definition at line 49 of file valueconsumer.h.

          - -
          -
          - -

          ◆ NumericConsumer

          - -
          -
          - - - - -
          typedef ValueConsumer<float> NumericConsumer
          -
          - -

          Definition at line 48 of file valueconsumer.h.

          - -
          -
          - -

          ◆ StringConsumer

          - -
          -
          - - - - -
          typedef ValueConsumer<String> StringConsumer
          -
          - -

          Definition at line 51 of file valueconsumer.h.

          - -
          -
          -
          -
          - - - - diff --git a/docs/valueconsumer_8h__dep__incl.map b/docs/valueconsumer_8h__dep__incl.map deleted file mode 100644 index 0a430deb1..000000000 --- a/docs/valueconsumer_8h__dep__incl.map +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/valueconsumer_8h__dep__incl.md5 b/docs/valueconsumer_8h__dep__incl.md5 deleted file mode 100644 index 881f913ab..000000000 --- a/docs/valueconsumer_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -0fb14ea6800c28cfe4ac8c3031076b25 \ No newline at end of file diff --git a/docs/valueconsumer_8h__dep__incl.png b/docs/valueconsumer_8h__dep__incl.png deleted file mode 100644 index d65c6be34..000000000 Binary files a/docs/valueconsumer_8h__dep__incl.png and /dev/null differ diff --git a/docs/valueconsumer_8h__incl.map b/docs/valueconsumer_8h__incl.map deleted file mode 100644 index 76becade0..000000000 --- a/docs/valueconsumer_8h__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/valueconsumer_8h__incl.md5 b/docs/valueconsumer_8h__incl.md5 deleted file mode 100644 index 521ebb2bf..000000000 --- a/docs/valueconsumer_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -36d177036ba8fb6a2d6c5b9cb77261db \ No newline at end of file diff --git a/docs/valueconsumer_8h__incl.png b/docs/valueconsumer_8h__incl.png deleted file mode 100644 index 79a05e14a..000000000 Binary files a/docs/valueconsumer_8h__incl.png and /dev/null differ diff --git a/docs/valueconsumer_8h_source.html b/docs/valueconsumer_8h_source.html deleted file mode 100644 index 3bf5e001b..000000000 --- a/docs/valueconsumer_8h_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SensESP: src/system/valueconsumer.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          valueconsumer.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _value_consumer_H_
          2 #define _value_consumer_H_
          3 
          4 #include <stdint.h>
          5 #include <ArduinoJson.h>
          6 
          7 template <typename T> class ValueProducer;
          8 
          16 template <typename T>
          18 
          19  public:
          28  virtual void set_input(T newValue, uint8_t inputChannel = 0) {
          29  }
          30 
          39  void connectFrom(ValueProducer<T>* pProducer, uint8_t inputChannel = 0) {
          40  pProducer->attach([pProducer, this, inputChannel](){
          41  this->set_input(pProducer->get(), inputChannel);
          42  });
          43  }
          44 
          45 };
          46 
          47 
          52 
          53 #endif
          void connectFrom(ValueProducer< T > *pProducer, uint8_t inputChannel=0)
          Definition: valueconsumer.h:39
          -
          ValueConsumer< String > StringConsumer
          Definition: valueconsumer.h:51
          -
          virtual const T & get()
          Definition: valueproducer.h:29
          - -
          ValueConsumer< int > IntegerConsumer
          Definition: valueconsumer.h:49
          -
          virtual void set_input(T newValue, uint8_t inputChannel=0)
          Definition: valueconsumer.h:28
          -
          ValueConsumer< bool > BooleanConsumer
          Definition: valueconsumer.h:50
          - -
          ValueConsumer< float > NumericConsumer
          Definition: valueconsumer.h:48
          -
          void attach(std::function< void()> observer)
          Definition: observable.cpp:9
          -
          -
          - - - - diff --git a/docs/valueproducer_8h.html b/docs/valueproducer_8h.html deleted file mode 100644 index 729b9f0a5..000000000 --- a/docs/valueproducer_8h.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - - -SensESP: src/system/valueproducer.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          valueproducer.h File Reference
          -
          -
          -
          #include "observable.h"
          -#include <ArduinoJson.h>
          -#include "valueconsumer.h"
          -
          -Include dependency graph for valueproducer.h:
          -
          -
          - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - - - -

          -Classes

          class  Transform< C, P >
           
          class  ValueProducer< T >
           
          - - - - - - - - - -

          -Typedefs

          typedef ValueProducer< float > NumericProducer
           
          typedef ValueProducer< int > IntegerProducer
           
          typedef ValueProducer< bool > BooleanProducer
           
          typedef ValueProducer< String > StringProducer
           
          -

          Typedef Documentation

          - -

          ◆ BooleanProducer

          - -
          -
          - - - - -
          typedef ValueProducer<bool> BooleanProducer
          -
          - -

          Definition at line 80 of file valueproducer.h.

          - -
          -
          - -

          ◆ IntegerProducer

          - -
          -
          - - - - -
          typedef ValueProducer<int> IntegerProducer
          -
          - -

          Definition at line 79 of file valueproducer.h.

          - -
          -
          - -

          ◆ NumericProducer

          - -
          -
          - - - - -
          typedef ValueProducer<float> NumericProducer
          -
          - -

          Definition at line 78 of file valueproducer.h.

          - -
          -
          - -

          ◆ StringProducer

          - -
          -
          - - - - -
          typedef ValueProducer<String> StringProducer
          -
          - -

          Definition at line 81 of file valueproducer.h.

          - -
          -
          -
          -
          - - - - diff --git a/docs/valueproducer_8h__dep__incl.map b/docs/valueproducer_8h__dep__incl.map deleted file mode 100644 index 24f77e562..000000000 --- a/docs/valueproducer_8h__dep__incl.map +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/valueproducer_8h__dep__incl.md5 b/docs/valueproducer_8h__dep__incl.md5 deleted file mode 100644 index faa13cd47..000000000 --- a/docs/valueproducer_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -219d8742668983e0efeac6857d2888a6 \ No newline at end of file diff --git a/docs/valueproducer_8h__dep__incl.png b/docs/valueproducer_8h__dep__incl.png deleted file mode 100644 index ea0f70fd8..000000000 Binary files a/docs/valueproducer_8h__dep__incl.png and /dev/null differ diff --git a/docs/valueproducer_8h__incl.map b/docs/valueproducer_8h__incl.map deleted file mode 100644 index 90fd38aab..000000000 --- a/docs/valueproducer_8h__incl.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/valueproducer_8h__incl.md5 b/docs/valueproducer_8h__incl.md5 deleted file mode 100644 index 7f56e30c9..000000000 --- a/docs/valueproducer_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -aa4b4f4fdef4ce5c1d83e210e5092b1e \ No newline at end of file diff --git a/docs/valueproducer_8h__incl.png b/docs/valueproducer_8h__incl.png deleted file mode 100644 index a74a1c8b1..000000000 Binary files a/docs/valueproducer_8h__incl.png and /dev/null differ diff --git a/docs/valueproducer_8h_source.html b/docs/valueproducer_8h_source.html deleted file mode 100644 index e3b8bf9f9..000000000 --- a/docs/valueproducer_8h_source.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -SensESP: src/system/valueproducer.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          valueproducer.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _value_producer_H_
          2 #define _value_producer_H_
          3 
          4 #include "observable.h"
          5 #include <ArduinoJson.h>
          6 #include "valueconsumer.h"
          7 
          8 
          9 // The Transform class is defined in transforms/transform.h
          10 template <typename C, typename P> class Transform;
          11 
          12 
          19 template <typename T>
          20 class ValueProducer : virtual public Observable {
          21 
          22  public:
          24 
          25 
          29  virtual const T& get() { return output; }
          30 
          31 
          32 
          42  void connectTo(ValueConsumer<T>* pConsumer, uint8_t inputChannel = 0) {
          43  this->attach([this, pConsumer, inputChannel](){
          44  pConsumer->set_input(this->get(), inputChannel);
          45  });
          46  }
          47 
          48 
          49 
          61  template <typename T2>
          62  Transform<T, T2>* connectTo(Transform<T, T2>* pConsumerProducer, uint8_t inputChannel = 0) {
          63  this->attach([this, pConsumerProducer, inputChannel](){
          64  pConsumerProducer->set_input(this->get(), inputChannel);
          65  });
          66  return pConsumerProducer;
          67  }
          68 
          69  protected:
          74  T output;
          75 };
          76 
          77 
          82 
          83 #endif
          -
          ValueProducer< bool > BooleanProducer
          Definition: valueproducer.h:80
          - -
          virtual const T & get()
          Definition: valueproducer.h:29
          - -
          ValueProducer< String > StringProducer
          Definition: valueproducer.h:81
          -
          virtual void set_input(T newValue, uint8_t inputChannel=0)
          Definition: valueconsumer.h:28
          - - - -
          void attach(std::function< void()> observer)
          Definition: observable.cpp:9
          -
          Transform< T, T2 > * connectTo(Transform< T, T2 > *pConsumerProducer, uint8_t inputChannel=0)
          Definition: valueproducer.h:62
          - - -
          void connectTo(ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)
          Definition: valueproducer.h:42
          -
          ValueProducer< int > IntegerProducer
          Definition: valueproducer.h:79
          -
          ValueProducer< float > NumericProducer
          Definition: valueproducer.h:78
          -
          -
          - - - - diff --git a/docs/voltagedivider_r2_8cpp.html b/docs/voltagedivider_r2_8cpp.html deleted file mode 100644 index 4d5060cbd..000000000 --- a/docs/voltagedivider_r2_8cpp.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -SensESP: src/transforms/voltagedividerR2.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          voltagedividerR2.cpp File Reference
          -
          -
          -
          #include "voltagedividerR2.h"
          -
          -Include dependency graph for voltagedividerR2.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          -
          -
          - - - - diff --git a/docs/voltagedivider_r2_8cpp__incl.map b/docs/voltagedivider_r2_8cpp__incl.map deleted file mode 100644 index c59dab39e..000000000 --- a/docs/voltagedivider_r2_8cpp__incl.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/voltagedivider_r2_8cpp__incl.md5 b/docs/voltagedivider_r2_8cpp__incl.md5 deleted file mode 100644 index 53ec243fc..000000000 --- a/docs/voltagedivider_r2_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -410d2a76abf5e9017bef1699540cfb2c \ No newline at end of file diff --git a/docs/voltagedivider_r2_8cpp__incl.png b/docs/voltagedivider_r2_8cpp__incl.png deleted file mode 100644 index b381769d3..000000000 Binary files a/docs/voltagedivider_r2_8cpp__incl.png and /dev/null differ diff --git a/docs/voltagedivider_r2_8cpp_source.html b/docs/voltagedivider_r2_8cpp_source.html deleted file mode 100644 index 8e6fd3669..000000000 --- a/docs/voltagedivider_r2_8cpp_source.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -SensESP: src/transforms/voltagedividerR2.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          voltagedividerR2.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "voltagedividerR2.h"
          2 
          3 VoltageDividerR2::VoltageDividerR2(float R1, float Vin, String config_path) :
          4  SymmetricTransform<float>(config_path ), R1{R1}, Vin{Vin} {
          5  className = "VoltageDivider2";
          6 }
          7 
          8 void VoltageDividerR2::set_input(float Vout, uint8_t ignored) {
          9  output = (Vout * R1) / (Vin - Vout);
          10  notify();
          11 }
          12 
          13 
          14 JsonObject& VoltageDividerR2::get_configuration(JsonBuffer& buf) {
          15  JsonObject& root = buf.createObject();
          16  root["Vin"] = Vin;
          17  root["R1"] = R1;
          18  return root;
          19 }
          20 
          21 static const char SCHEMA[] PROGMEM = R"({
          22  "type": "object",
          23  "properties": {
          24  "Vin": { "title": "Voltage in", "type": "number" },
          25  "R1": { "title": "Resistance (ohms) of R1", "type": "number" }
          26  }
          27  })";
          28 
          30  return FPSTR(SCHEMA);
          31 }
          32 
          33 bool VoltageDividerR2::set_configuration(const JsonObject& config) {
          34 
          35  String expected[] = { "Vin", "R1" };
          36  for (auto str : expected) {
          37  if (!config.containsKey(str)) {
          38  debugE("Can not set VoltageDividerR2: configuration: missing json field %s\n", str.c_str());
          39  return false;
          40  }
          41  }
          42 
          43  Vin = config["Vin"];
          44  R1 = config["R1"];
          45 
          46  return true;
          47 
          48 }
          void notify()
          Definition: observable.cpp:3
          -
          VoltageDividerR2(float R1, float Vin=3.3, String config_path="")
          - -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override
          - -
          virtual bool set_configuration(const JsonObject &config) override
          -
          virtual void set_input(float Vout, uint8_t ignored=0) override
          -
          virtual String get_config_schema() override
          - - - -
          const char PAGE_index [] PROGMEM
          Definition: index.h:2
          -
          -
          - - - - diff --git a/docs/voltagedivider_r2_8h.html b/docs/voltagedivider_r2_8h.html deleted file mode 100644 index 5ca7aca6b..000000000 --- a/docs/voltagedivider_r2_8h.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - -SensESP: src/transforms/voltagedividerR2.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          voltagedividerR2.h File Reference
          -
          -
          -
          -Include dependency graph for voltagedividerR2.h:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  VoltageDividerR2
           
          -
          -
          - - - - diff --git a/docs/voltagedivider_r2_8h__dep__incl.map b/docs/voltagedivider_r2_8h__dep__incl.map deleted file mode 100644 index 920f4820e..000000000 --- a/docs/voltagedivider_r2_8h__dep__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/voltagedivider_r2_8h__dep__incl.md5 b/docs/voltagedivider_r2_8h__dep__incl.md5 deleted file mode 100644 index 2de1e3bd5..000000000 --- a/docs/voltagedivider_r2_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -82bbfa391a8c73262d2f191fd553f899 \ No newline at end of file diff --git a/docs/voltagedivider_r2_8h__dep__incl.png b/docs/voltagedivider_r2_8h__dep__incl.png deleted file mode 100644 index a72f710c7..000000000 Binary files a/docs/voltagedivider_r2_8h__dep__incl.png and /dev/null differ diff --git a/docs/voltagedivider_r2_8h__incl.map b/docs/voltagedivider_r2_8h__incl.map deleted file mode 100644 index 754fb3b02..000000000 --- a/docs/voltagedivider_r2_8h__incl.map +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/voltagedivider_r2_8h__incl.md5 b/docs/voltagedivider_r2_8h__incl.md5 deleted file mode 100644 index 39c6f5e07..000000000 --- a/docs/voltagedivider_r2_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -fbcd33900d15f0c858f427a8676e1523 \ No newline at end of file diff --git a/docs/voltagedivider_r2_8h__incl.png b/docs/voltagedivider_r2_8h__incl.png deleted file mode 100644 index 1d98bbba9..000000000 Binary files a/docs/voltagedivider_r2_8h__incl.png and /dev/null differ diff --git a/docs/voltagedivider_r2_8h_source.html b/docs/voltagedivider_r2_8h_source.html deleted file mode 100644 index 563564a1a..000000000 --- a/docs/voltagedivider_r2_8h_source.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -SensESP: src/transforms/voltagedividerR2.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          voltagedividerR2.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _voltage_divider_H
          2 #define _voltage_divider_H
          3 
          4 #include "transforms/transform.h"
          5 
          6 
          17 class VoltageDividerR2 : public SymmetricTransform<float> {
          18 
          19  public:
          20  VoltageDividerR2(float R1, float Vin = 3.3, String config_path="");
          21 
          22  virtual void set_input(float Vout, uint8_t ignored = 0) override;
          23 
          24  // For reading and writing the configuration of this transformation
          25  virtual JsonObject& get_configuration(JsonBuffer& buf) override;
          26  virtual bool set_configuration(const JsonObject& config) override;
          27  virtual String get_config_schema() override;
          28 
          29  protected:
          30  float R1;
          31  float Vin;
          32 
          33 };
          34 
          35 #endif
          -
          VoltageDividerR2(float R1, float Vin=3.3, String config_path="")
          -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override
          - - -
          virtual bool set_configuration(const JsonObject &config) override
          -
          const String config_path
          Definition: configurable.h:29
          -
          virtual void set_input(float Vout, uint8_t ignored=0) override
          -
          virtual String get_config_schema() override
          - - -
          -
          - - - - diff --git a/docs/wiring__helpers_8cpp.html b/docs/wiring__helpers_8cpp.html deleted file mode 100644 index 0afcc17a2..000000000 --- a/docs/wiring__helpers_8cpp.html +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - -SensESP: src/wiring_helpers.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          wiring_helpers.cpp File Reference
          -
          -
          -
          -Include dependency graph for wiring_helpers.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - - - - - - - - - -

          -Functions

          void setup_analog_input (String sk_path, float k, float c, String config_path)
           
          void setup_fuel_flow_meter (int inflow_pin, int return_flow_pin)
           
          GPSInputsetup_gps (Stream *rx_stream)
           
          void setup_onewire_temperature (SensESPApp *seapp, DallasTemperatureSensors *dts, String sk_path, String config_path, String schema)
           
          void setup_rpm_meter (SensESPApp *seapp, int input_pin)
           
          -

          Function Documentation

          - -

          ◆ setup_analog_input()

          - -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          void setup_analog_input (String sk_path,
          float k,
          float c,
          String config_path 
          )
          -
          - -

          Definition at line 20 of file wiring_helpers.cpp.

          - -
          -
          - -

          ◆ setup_fuel_flow_meter()

          - -
          -
          - - - - - - - - - - - - - - - - - - -
          void setup_fuel_flow_meter (int inflow_pin,
          int return_flow_pin 
          )
          -
          - -

          Definition at line 29 of file wiring_helpers.cpp.

          -
          -Here is the call graph for this function:
          -
          -
          - - - - -
          - -
          -
          - -

          ◆ setup_gps()

          - -
          -
          - - - - - - - - -
          GPSInput* setup_gps (Stream * rx_stream)
          -
          - -

          Definition at line 79 of file wiring_helpers.cpp.

          -
          -Here is the call graph for this function:
          -
          -
          - - - - -
          - -
          -
          - -

          ◆ setup_onewire_temperature()

          - -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          void setup_onewire_temperature (SensESPAppseapp,
          DallasTemperatureSensorsdts,
          String sk_path,
          String config_path,
          String schema 
          )
          -
          - -

          Definition at line 117 of file wiring_helpers.cpp.

          - -
          -
          - -

          ◆ setup_rpm_meter()

          - -
          -
          - - - - - - - - - - - - - - - - - - -
          void setup_rpm_meter (SensESPAppseapp,
          int input_pin 
          )
          -
          - -

          Definition at line 128 of file wiring_helpers.cpp.

          - -
          -
          -
          -
          - - - - diff --git a/docs/wiring__helpers_8cpp__incl.map b/docs/wiring__helpers_8cpp__incl.map deleted file mode 100644 index fd5076972..000000000 --- a/docs/wiring__helpers_8cpp__incl.map +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/wiring__helpers_8cpp__incl.md5 b/docs/wiring__helpers_8cpp__incl.md5 deleted file mode 100644 index d9f115e26..000000000 --- a/docs/wiring__helpers_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -0ed6b66f6281be5f5a50428cf15a154d \ No newline at end of file diff --git a/docs/wiring__helpers_8cpp__incl.png b/docs/wiring__helpers_8cpp__incl.png deleted file mode 100644 index 5f2e2633b..000000000 Binary files a/docs/wiring__helpers_8cpp__incl.png and /dev/null differ diff --git a/docs/wiring__helpers_8cpp_a76f3efb0a3eb60ba7ca13ba78e9e8052_cgraph.map b/docs/wiring__helpers_8cpp_a76f3efb0a3eb60ba7ca13ba78e9e8052_cgraph.map deleted file mode 100644 index de00b94cf..000000000 --- a/docs/wiring__helpers_8cpp_a76f3efb0a3eb60ba7ca13ba78e9e8052_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/wiring__helpers_8cpp_a76f3efb0a3eb60ba7ca13ba78e9e8052_cgraph.md5 b/docs/wiring__helpers_8cpp_a76f3efb0a3eb60ba7ca13ba78e9e8052_cgraph.md5 deleted file mode 100644 index cbab26aef..000000000 --- a/docs/wiring__helpers_8cpp_a76f3efb0a3eb60ba7ca13ba78e9e8052_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -046c71b81657c4c6dd37f443c064b3a8 \ No newline at end of file diff --git a/docs/wiring__helpers_8cpp_a76f3efb0a3eb60ba7ca13ba78e9e8052_cgraph.png b/docs/wiring__helpers_8cpp_a76f3efb0a3eb60ba7ca13ba78e9e8052_cgraph.png deleted file mode 100644 index 283ff827e..000000000 Binary files a/docs/wiring__helpers_8cpp_a76f3efb0a3eb60ba7ca13ba78e9e8052_cgraph.png and /dev/null differ diff --git a/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.map b/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.map deleted file mode 100644 index de00b94cf..000000000 --- a/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.md5 b/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.md5 deleted file mode 100644 index cbab26aef..000000000 --- a/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -046c71b81657c4c6dd37f443c064b3a8 \ No newline at end of file diff --git a/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.png b/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.png deleted file mode 100644 index 283ff827e..000000000 Binary files a/docs/wiring__helpers_8cpp_a8f7d5e59747355ce523001faddc7ada9_cgraph.png and /dev/null differ diff --git a/docs/wiring__helpers_8cpp_ae36e0604b36693bd720bffcf4145baf9_cgraph.map b/docs/wiring__helpers_8cpp_ae36e0604b36693bd720bffcf4145baf9_cgraph.map deleted file mode 100644 index 722aa53b3..000000000 --- a/docs/wiring__helpers_8cpp_ae36e0604b36693bd720bffcf4145baf9_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/wiring__helpers_8cpp_ae36e0604b36693bd720bffcf4145baf9_cgraph.md5 b/docs/wiring__helpers_8cpp_ae36e0604b36693bd720bffcf4145baf9_cgraph.md5 deleted file mode 100644 index 1cb228857..000000000 --- a/docs/wiring__helpers_8cpp_ae36e0604b36693bd720bffcf4145baf9_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -9dca1da1e7c1b6abe544eba0373fc8d6 \ No newline at end of file diff --git a/docs/wiring__helpers_8cpp_ae36e0604b36693bd720bffcf4145baf9_cgraph.png b/docs/wiring__helpers_8cpp_ae36e0604b36693bd720bffcf4145baf9_cgraph.png deleted file mode 100644 index 83856eb7a..000000000 Binary files a/docs/wiring__helpers_8cpp_ae36e0604b36693bd720bffcf4145baf9_cgraph.png and /dev/null differ diff --git a/docs/wiring__helpers_8cpp_source.html b/docs/wiring__helpers_8cpp_source.html deleted file mode 100644 index 12286059f..000000000 --- a/docs/wiring__helpers_8cpp_source.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - -SensESP: src/wiring_helpers.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          wiring_helpers.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "wiring_helpers.h"
          2 
          3 #include "sensesp_app.h"
          4 #include "sensors/analog_input.h"
          6 #include "sensors/gps.h"
          10 #include "transforms/frequency.h"
          11 #include "signalk/signalk_output.h"
          13 #include "signalk/signalk_time.h"
          14 #include "transforms/integrator.h"
          15 #include "transforms/linear.h"
          17 #include "transforms/transform.h"
          18 
          19 
          21  String sk_path, float k, float c,
          22  String config_path) {
          23  (new AnalogInput())
          24  -> connectTo(new Linear(k, c, config_path + "/calibrate"))
          25  -> connectTo(new SKOutputNumber(sk_path, config_path + "/sk"));
          26 }
          27 
          28 
          30  int inflow_pin,
          31  int return_flow_pin
          32 ) {
          34  // connect a fuel flow meter with return line
          35 
          36  auto* dic1 = new DigitalInputCounter(inflow_pin, INPUT_PULLUP, CHANGE, 1000);
          37  auto* dic2 = new DigitalInputCounter(return_flow_pin, INPUT_PULLUP, CHANGE, 1000);
          38 
          39  Frequency* freq1;
          40  Frequency* freq2;
          41 
          42  dic1->connectTo(freq1 = new Frequency())
          43  -> connectTo(new SKOutputNumber("sensors.inflow.frequency"));
          44 
          45  dic2->connectTo(freq2 = new Frequency())
          46  -> connectTo(new SKOutputNumber("sensors.outflow.frequency"));
          47 
          48 
          49  // Here, each pulse of a flow sensor represents 0.46ml of flow
          50  // for both inflow and outflow
          51  auto* diff = new Difference(0.46/1e6, 0.46/1e6,
          52  "/sensors/fuel/rate/calibrate");
          53 
          54  diff->connectFrom(freq1, freq2)
          55  -> connectTo(new SKOutputNumber("propulsion.main.fuel.rate", "/sensors/fuel/rate/sk"))
          56  -> connectTo(new MovingAverage(10, 1., "/sensors/fuel/average/calibrate")) // this is the same as above, but averaged over 10 s
          57  -> connectTo(new SKOutputNumber("propulsion.main.fuel.averageRate", "/sensors/fuel/average/sk"));
          58 
          59 
          60  // Integrate the net flow over time. The output is dependent
          61  // on the the input counter update rate!
          62  diff->connectTo(new Integrator(1., 0.))
          63  -> connectTo(new SKOutputNumber("propulsion.main.fuel.used", "/sensors/fuel/used/sk"));
          64 
          65 
          66  // Integrate the total outflow over time. The output is dependent
          67  // on the the input counter update rate!
          68  freq1-> connectTo(new Integrator(0.46/1e6, 0., "/sensors/fuel/in_used/calibrate"))
          69  -> connectTo(new SKOutputNumber("propulsion.main.fuel.usedGross", "/sensors/fuel/in_used/sk"));
          70 
          71 
          72  // Integrate the net fuel flow over time. The output is dependent
          73  // on the the input counter update rate!
          74  freq2->connectTo(new Integrator(0.46/1e6, 0., "/sensors/fuel/out_used/calibrate"))
          75  -> connectTo(new SKOutputNumber("propulsion.main.fuel.usedReturn", "/sensors/fuel/out_used/sk"));
          76 }
          77 
          78 
          79 GPSInput* setup_gps(Stream* rx_stream) {
          80  GPSInput* gps = new GPSInput(rx_stream);
          81  gps->nmea_data.position
          82  .connectTo(new SKOutputPosition("navigation.position", ""));
          84  .connectTo(new SKOutputString("navigation.methodQuality", ""));
          86  .connectTo(new SKOutputInt("navigation.satellites", ""));
          88  .connectTo(new SKOutputNumber("navigation.horizontalDilution", ""));
          90  .connectTo(new SKOutputNumber("navigation.geoidalSeparation", ""));
          91  gps->nmea_data.dgps_age
          92  .connectTo(new SKOutputNumber("navigation.differentialAge", ""));
          93  gps->nmea_data.dgps_id
          94  .connectTo(new SKOutputNumber("navigation.differentialReference", ""));
          95  gps->nmea_data.datetime
          96  .connectTo(new SKOutputTime("navigation.datetime", ""));
          97  gps->nmea_data.speed
          98  .connectTo(new SKOutputNumber("navigation.speedOverGround", ""));
          100  .connectTo(new SKOutputNumber("navigation.courseOverGroundTrue", ""));
          101  gps->nmea_data.variation
          102  .connectTo(new SKOutputNumber("navigation.magneticVariation", ""));
          103  gps->nmea_data.rtk_age
          104  .connectTo(new SKOutputNumber("navigation.rtkAge", ""));
          105  gps->nmea_data.rtk_ratio
          106  .connectTo(new SKOutputNumber("navigation.rtkRatio", ""));
          108  .connectTo(new SKOutputNumber("navigation.rtkBaselineLength", ""));
          110  .connectTo(new SKOutputNumber("navigation.rtkBaselineCourse"))
          111  ->connectTo(new AngleCorrection(0, 0, "/sensors/heading/correction"))
          112  ->connectTo(new SKOutputNumber("navigation.headingTrue", ""));
          113 
          114  return gps;
          115 }
          116 
          118  SensESPApp* seapp,
          120  String sk_path,
          121  String config_path,
          122  String schema
          123 ) {
          124  (new OneWireTemperature(dts))->connectTo(
          125  new SKOutputNumber(sk_path, config_path));
          126 }
          127 
          128 void setup_rpm_meter(SensESPApp* seapp, int input_pin) {
          130  // connect a RPM meter. A DigitalInputCounter counts pulses
          131  // and reports the readings every read_delay ms
          132  // (500 in the example). A Frequency
          133  // transform takes a number of pulses and converts that into
          134  // a frequency. The sample multiplier converts the 97 tooth
          135  // tach output into Hz, SK native units.
          136 
          137  (new DigitalInputCounter(input_pin, INPUT_PULLUP, RISING, 500))
          138  -> connectTo<float>(new Frequency(1./97., "/sensors/engine_rpm/calibrate"))
          139  -> connectTo(new SKOutputNumber("propulsion.main.revolutions", "/sensors/engine_rpm/sk"));
          140 
          141 }
          SKOutput< String > SKOutputString
          -
          SKOutput< Position > SKOutputPosition
          - - - - - - - - - -
          ObservableValue< float > rtk_ratio
          Definition: nmea_parser.h:39
          - -
          void setup_fuel_flow_meter(int inflow_pin, int return_flow_pin)
          -
          GPSInput * setup_gps(Stream *rx_stream)
          -
          ObservableValue< float > dgps_age
          Definition: nmea_parser.h:31
          -
          void setup_rpm_meter(SensESPApp *seapp, int input_pin)
          -
          ObservableValue< float > horizontal_dilution
          Definition: nmea_parser.h:29
          - -
          ObservableValue< int > num_satellites
          Definition: nmea_parser.h:28
          -
          ObservableValue< Position > position
          Definition: nmea_parser.h:26
          -
          Definition: linear.h:9
          -
          ObservableValue< float > dgps_id
          Definition: nmea_parser.h:32
          - -
          ObservableValue< float > baseline_course
          Definition: nmea_parser.h:42
          - - - -
          ObservableValue< float > variation
          Definition: nmea_parser.h:36
          - -
          SKOutput< float > SKOutputNumber
          - - -
          void setup_analog_input(String sk_path, float k, float c, String config_path)
          -
          NMEAData nmea_data
          Definition: gps.h:14
          - -
          SKOutput< int > SKOutputInt
          -
          ObservableValue< String > gnss_quality
          Definition: nmea_parser.h:27
          - -
          ObservableValue< float > geoidal_separation
          Definition: nmea_parser.h:30
          - -
          ObservableValue< float > baseline_length
          Definition: nmea_parser.h:41
          - -
          Definition: gps.h:10
          -
          ObservableValue< float > true_course
          Definition: nmea_parser.h:35
          -
          void setup_onewire_temperature(SensESPApp *seapp, DallasTemperatureSensors *dts, String sk_path, String config_path, String schema)
          - - -
          ObservableValue< float > speed
          Definition: nmea_parser.h:34
          -
          void connectTo(ValueConsumer< T > *pConsumer, uint8_t inputChannel=0)
          Definition: valueproducer.h:42
          - -
          ObservableValue< time_t > datetime
          Definition: nmea_parser.h:33
          - -
          ObservableValue< float > rtk_age
          Definition: nmea_parser.h:38
          -
          -
          - - - - diff --git a/docs/wiring__helpers_8h.html b/docs/wiring__helpers_8h.html deleted file mode 100644 index 175c69b5f..000000000 --- a/docs/wiring__helpers_8h.html +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - -SensESP: src/wiring_helpers.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          wiring_helpers.h File Reference
          -
          -
          -
          #include "sensesp_app.h"
          -#include "sensors/gps.h"
          -#include "sensors/onewire_temperature.h"
          -
          -Include dependency graph for wiring_helpers.h:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - -
          -
          -

          Go to the source code of this file.

          - - - - - - - - - - - - -

          -Functions

          void setup_analog_input (String sk_path, float k=1, float c=0, String config_path="")
           
          void setup_fuel_flow_meter (int inflow_pin, int return_flow_pin)
           
          GPSInputsetup_gps (Stream *rx_stream)
           
          void setup_onewire_temperature (DallasTemperatureSensors *dts, String sk_path, String config_path)
           
          void setup_rpm_meter (int input_pin)
           
          -

          Function Documentation

          - -

          ◆ setup_analog_input()

          - -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          void setup_analog_input (String sk_path,
          float k = 1,
          float c = 0,
          String config_path = "" 
          )
          -
          - -

          Definition at line 20 of file wiring_helpers.cpp.

          - -
          -
          - -

          ◆ setup_fuel_flow_meter()

          - -
          -
          - - - - - - - - - - - - - - - - - - -
          void setup_fuel_flow_meter (int inflow_pin,
          int return_flow_pin 
          )
          -
          - -

          Definition at line 29 of file wiring_helpers.cpp.

          -
          -Here is the call graph for this function:
          -
          -
          - - - - -
          - -
          -
          - -

          ◆ setup_gps()

          - -
          -
          - - - - - - - - -
          GPSInput* setup_gps (Stream * rx_stream)
          -
          - -

          Definition at line 79 of file wiring_helpers.cpp.

          -
          -Here is the call graph for this function:
          -
          -
          - - - - -
          - -
          -
          - -

          ◆ setup_onewire_temperature()

          - -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - -
          void setup_onewire_temperature (DallasTemperatureSensorsdts,
          String sk_path,
          String config_path 
          )
          -
          - -
          -
          - -

          ◆ setup_rpm_meter()

          - -
          -
          - - - - - - - - -
          void setup_rpm_meter (int input_pin)
          -
          - -
          -
          -
          -
          - - - - diff --git a/docs/wiring__helpers_8h__dep__incl.md5 b/docs/wiring__helpers_8h__dep__incl.md5 deleted file mode 100644 index 6b2dd4b07..000000000 --- a/docs/wiring__helpers_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -643bbaecceecf719467383f0492a2a5c \ No newline at end of file diff --git a/docs/wiring__helpers_8h__dep__incl.png b/docs/wiring__helpers_8h__dep__incl.png deleted file mode 100644 index c49637d5c..000000000 Binary files a/docs/wiring__helpers_8h__dep__incl.png and /dev/null differ diff --git a/docs/wiring__helpers_8h__incl.map b/docs/wiring__helpers_8h__incl.map deleted file mode 100644 index 19660b12b..000000000 --- a/docs/wiring__helpers_8h__incl.map +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/wiring__helpers_8h__incl.md5 b/docs/wiring__helpers_8h__incl.md5 deleted file mode 100644 index 0d5204fe8..000000000 --- a/docs/wiring__helpers_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -34ae24364a0b47f9991cc662cb717ecb \ No newline at end of file diff --git a/docs/wiring__helpers_8h__incl.png b/docs/wiring__helpers_8h__incl.png deleted file mode 100644 index e383355df..000000000 Binary files a/docs/wiring__helpers_8h__incl.png and /dev/null differ diff --git a/docs/wiring__helpers_8h_a8edfa609fe0f66ca940c2c8311e687b9_cgraph.map b/docs/wiring__helpers_8h_a8edfa609fe0f66ca940c2c8311e687b9_cgraph.map deleted file mode 100644 index de00b94cf..000000000 --- a/docs/wiring__helpers_8h_a8edfa609fe0f66ca940c2c8311e687b9_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/wiring__helpers_8h_a8edfa609fe0f66ca940c2c8311e687b9_cgraph.md5 b/docs/wiring__helpers_8h_a8edfa609fe0f66ca940c2c8311e687b9_cgraph.md5 deleted file mode 100644 index cbab26aef..000000000 --- a/docs/wiring__helpers_8h_a8edfa609fe0f66ca940c2c8311e687b9_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -046c71b81657c4c6dd37f443c064b3a8 \ No newline at end of file diff --git a/docs/wiring__helpers_8h_a8edfa609fe0f66ca940c2c8311e687b9_cgraph.png b/docs/wiring__helpers_8h_a8edfa609fe0f66ca940c2c8311e687b9_cgraph.png deleted file mode 100644 index 283ff827e..000000000 Binary files a/docs/wiring__helpers_8h_a8edfa609fe0f66ca940c2c8311e687b9_cgraph.png and /dev/null differ diff --git a/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.map b/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.map deleted file mode 100644 index de00b94cf..000000000 --- a/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.md5 b/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.md5 deleted file mode 100644 index cbab26aef..000000000 --- a/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -046c71b81657c4c6dd37f443c064b3a8 \ No newline at end of file diff --git a/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.png b/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.png deleted file mode 100644 index 283ff827e..000000000 Binary files a/docs/wiring__helpers_8h_a8f7d5e59747355ce523001faddc7ada9_cgraph.png and /dev/null differ diff --git a/docs/wiring__helpers_8h_ae36e0604b36693bd720bffcf4145baf9_cgraph.map b/docs/wiring__helpers_8h_ae36e0604b36693bd720bffcf4145baf9_cgraph.map deleted file mode 100644 index 722aa53b3..000000000 --- a/docs/wiring__helpers_8h_ae36e0604b36693bd720bffcf4145baf9_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/wiring__helpers_8h_ae36e0604b36693bd720bffcf4145baf9_cgraph.md5 b/docs/wiring__helpers_8h_ae36e0604b36693bd720bffcf4145baf9_cgraph.md5 deleted file mode 100644 index 1cb228857..000000000 --- a/docs/wiring__helpers_8h_ae36e0604b36693bd720bffcf4145baf9_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -9dca1da1e7c1b6abe544eba0373fc8d6 \ No newline at end of file diff --git a/docs/wiring__helpers_8h_ae36e0604b36693bd720bffcf4145baf9_cgraph.png b/docs/wiring__helpers_8h_ae36e0604b36693bd720bffcf4145baf9_cgraph.png deleted file mode 100644 index 83856eb7a..000000000 Binary files a/docs/wiring__helpers_8h_ae36e0604b36693bd720bffcf4145baf9_cgraph.png and /dev/null differ diff --git a/docs/wiring__helpers_8h_source.html b/docs/wiring__helpers_8h_source.html deleted file mode 100644 index 940fc2533..000000000 --- a/docs/wiring__helpers_8h_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -SensESP: src/wiring_helpers.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          wiring_helpers.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _wiring_helpers_H_
          2 #define _wiring_helpers_H_
          3 
          4 #include "sensesp_app.h"
          5 #include "sensors/gps.h"
          7 
          9  String sk_path, float k=1, float c=0,
          10  String config_path="");
          11 
          13  int inflow_pin,
          14  int return_flow_pin
          15 );
          16 
          17 GPSInput* setup_gps(Stream* rx_stream);
          18 
          21  String sk_path,
          22  String config_path
          23 );
          24 
          25 void setup_rpm_meter(int input_pin);
          26 
          27 
          28 #endif
          void setup_onewire_temperature(DallasTemperatureSensors *dts, String sk_path, String config_path)
          -
          void setup_rpm_meter(int input_pin)
          -
          void setup_analog_input(String sk_path, float k=1, float c=0, String config_path="")
          -
          void setup_fuel_flow_meter(int inflow_pin, int return_flow_pin)
          - - -
          GPSInput * setup_gps(Stream *rx_stream)
          - - -
          Definition: gps.h:10
          -
          -
          - - - - diff --git a/docs/ws__client_8cpp.html b/docs/ws__client_8cpp.html deleted file mode 100644 index 41b004415..000000000 --- a/docs/ws__client_8cpp.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - - -SensESP: src/net/ws_client.cpp File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          ws_client.cpp File Reference
          -
          -
          -
          #include "ws_client.h"
          -#include "Arduino.h"
          -#include <ArduinoJson.h>
          -#include <ESP8266HTTPClient.h>
          -#include <ESP8266TrueRandom.h>
          -#include <WiFiClient.h>
          -#include "sensesp_app.h"
          -
          -Include dependency graph for ws_client.cpp:
          -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Functions

          void webSocketClientEvent (WStype_t type, uint8_t *payload, size_t length)
           
          - - - -

          -Variables

          WSClientws_client
           
          -

          Function Documentation

          - -

          ◆ webSocketClientEvent()

          - -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - -
          void webSocketClientEvent (WStype_t type,
          uint8_t * payload,
          size_t length 
          )
          -
          - -

          Definition at line 21 of file ws_client.cpp.

          -
          -Here is the call graph for this function:
          -
          -
          - - - - - - - -
          - -
          -
          -

          Variable Documentation

          - -

          ◆ ws_client

          - -
          -
          - - - - -
          WSClient* ws_client
          -
          - -

          Definition at line 19 of file ws_client.cpp.

          - -
          -
          -
          -
          - - - - diff --git a/docs/ws__client_8cpp__incl.map b/docs/ws__client_8cpp__incl.map deleted file mode 100644 index 7b021fac9..000000000 --- a/docs/ws__client_8cpp__incl.map +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/ws__client_8cpp__incl.md5 b/docs/ws__client_8cpp__incl.md5 deleted file mode 100644 index 2e221b119..000000000 --- a/docs/ws__client_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -facc2b3bd7ca2623aa1ba0a768cbf1f7 \ No newline at end of file diff --git a/docs/ws__client_8cpp__incl.png b/docs/ws__client_8cpp__incl.png deleted file mode 100644 index 899f5c62a..000000000 Binary files a/docs/ws__client_8cpp__incl.png and /dev/null differ diff --git a/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.map b/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.map deleted file mode 100644 index a07f758ee..000000000 --- a/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.md5 b/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.md5 deleted file mode 100644 index f58ace18f..000000000 --- a/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -00a286f870fa58e8d92d3f38ae31ec12 \ No newline at end of file diff --git a/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.png b/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.png deleted file mode 100644 index f39d806f0..000000000 Binary files a/docs/ws__client_8cpp_a5e74f160471b58a262cceef5edaea7e0_cgraph.png and /dev/null differ diff --git a/docs/ws__client_8cpp_source.html b/docs/ws__client_8cpp_source.html deleted file mode 100644 index 7aefe7a2a..000000000 --- a/docs/ws__client_8cpp_source.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - -SensESP: src/net/ws_client.cpp Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          ws_client.cpp
          -
          -
          -Go to the documentation of this file.
          1 #include "ws_client.h"
          2 
          3 #include "Arduino.h"
          4 
          5 #include <ArduinoJson.h>
          6 #include <ESP8266HTTPClient.h>
          7 #ifdef ESP8266
          8  #include <ESP8266mDNS.h> // Include the mDNS library
          9 #elif defined(ESP32)
          10  #include <ESPmDNS.h>
          11 #endif
          12 
          13 #include <ESP8266TrueRandom.h>
          14 
          15 #include <WiFiClient.h>
          16 
          17 #include "sensesp_app.h"
          18 
          20 
          21 void webSocketClientEvent(WStype_t type, uint8_t * payload, size_t length) {
          22  switch(type) {
          23  case WStype_DISCONNECTED:
          25  break;
          26  case WStype_ERROR:
          28  break;
          29  case WStype_CONNECTED:
          30  ws_client->on_connected(payload);
          31  break;
          32  case WStype_TEXT:
          33  ws_client->on_receive_delta(payload);
          34  break;
          35  default:
          36  // Do nothing for other types
          37  break;
          38  }
          39 }
          40 
          41 WSClient::WSClient(String config_path, SKDelta* sk_delta,
          42  std::function<void(bool)> connected_cb,
          44  this->sk_delta = sk_delta;
          45  this->connected_cb = connected_cb;
          46  this->delta_cb = delta_cb;
          47 
          48  // set the singleton object pointer
          49  ws_client = this;
          50 
          51  load_configuration();
          52 }
          53 
          55  app.onDelay(0, [this](){ this->connect(); });
          56  app.onRepeat(20, [this](){ this->loop(); });
          57  app.onRepeat(100, [this](){ this->send_delta(); });
          58  app.onRepeat(10000, [this](){ this->connect_loop(); });
          59 }
          60 
          61 void WSClient::connect_loop() {
          62  if (this->connection_state==disconnected) {
          63  this->connect();
          64  }
          65 }
          66 
          68  if (this->connection_state == connecting && server_detected) {
          69  // Going from connecting directly to disconnect when we
          70  // know we have found and talked to the server usually means
          71  // the authentication token is bad.
          72  debugW("Bad access token detected. Setting token to null.");
          73  auth_token = NULL_AUTH_TOKEN;
          75  }
          76  this->connection_state = disconnected;
          77  server_detected = false;
          78  this->connected_cb(false);
          79 }
          80 
          82  this->connection_state = disconnected;
          83  debugW("Websocket client error.");
          84  this->connected_cb(false);
          85 }
          86 
          87 void WSClient::on_connected(uint8_t * payload) {
          88  this->connection_state = connected;
          89  debugI("Websocket client connected to URL: %s\n", payload);
          90  this->connected_cb(true);
          91 }
          92 
          93 void WSClient::on_receive_delta(uint8_t * payload) {
          94  debugD("Websocket payload received: %s", (char*)payload);
          95 }
          96 
          97 bool WSClient::get_mdns_service(String& server_address, uint16_t& server_port) {
          98  // get IP address using an mDNS query
          99  int n = MDNS.queryService("signalk-ws", "tcp");
          100  if (n==0) {
          101  // no service found
          102  return false;
          103  } else {
          104  server_address = MDNS.IP(0).toString();
          105  server_port = MDNS.port(0);
          106  debugI("Found server %s (port %d)", server_address.c_str(), server_port);
          107  return true;
          108  }
          109 }
          110 
          112  if (connection_state!=disconnected) {
          113  return;
          114  }
          115  debugD("Initiating connection");
          116 
          117  connection_state = connecting;
          118 
          119  String server_address = "";
          120  uint16_t server_port = 80;
          121 
          122  if (this->server_address.length() == 0) {
          123  get_mdns_service(server_address, server_port);
          124  } else {
          125  server_address = this->server_address;
          126  server_port = this->server_port;
          127  }
          128 
          129  if ((server_address.length() > 0) && (server_port > 0)) {
          130  debugD("Websocket client starting");
          131  } else {
          132  // host and port not defined - wait for mDNS
          133  connection_state = disconnected;
          134  return;
          135  }
          136 
          137  if (this->polling_href != "") {
          138  // existing pending request
          139  this->poll_access_request(server_address, server_port, this->polling_href);
          140  return;
          141  }
          142 
          143  if (this->auth_token == NULL_AUTH_TOKEN) {
          144  // initiate HTTP authentication
          145  debugD("No prior authorization token present.");
          146  this->send_access_request(server_address, server_port);
          147  return;
          148  }
          149  this->test_token(server_address, server_port);
          150 }
          151 
          152 void WSClient::test_token(const String server_address, const uint16_t server_port) {
          153 
          154  // FIXME: implement async HTTP client!
          155  WiFiClient client;
          156  HTTPClient http;
          157 
          158  String url = String("http://") + server_address + ":" + server_port + "/signalk/v1/api/";
          159  debugD("Testing token with url %s", url.c_str());
          160  http.begin(client, url);
          161  String full_token = String("JWT ") + auth_token;
          162  http.addHeader("Authorization", full_token.c_str());
          163  int httpCode = http.GET();
          164  if (httpCode > 0) {
          165  String payload = http.getString();
          166  http.end();
          167  debugD("Testing resulted in http status %d", httpCode);
          168  if (payload.length() > 0) {
          169  debugD("Returned payload (length %d) is: ", payload.length());
          170  debugD("%s", payload.c_str());
          171  debugD("End of payload output");
          172  }
          173  else {
          174  debugD("Returned payload is empty");
          175  }
          176  if (httpCode == 200) {
          177  // our token is valid, go ahead and connect
          178  debugD("Attempting to connect to SignalK Websocket...");
          179  server_detected = true;
          180  this->connect_ws(server_address, server_port);
          181  } else if (httpCode == 401) {
          182  this->send_access_request(server_address, server_port);
          183  } else {
          184  connection_state = disconnected;
          185  }
          186  } else {
          187  debugE("GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
          188  connection_state = disconnected;
          189  }
          190 }
          191 
          192 void WSClient::send_access_request(const String server_address, const uint16_t server_port) {
          193  debugD("Preparing a new access request");
          194  if (client_id == "") {
          195  // generate a client ID
          196  byte uuidNumber[16];
          197  ESP8266TrueRandom.uuid(uuidNumber);
          198  client_id = ESP8266TrueRandom.uuidToString(uuidNumber);
          200  }
          201 
          202  // create a new access request
          203  DynamicJsonBuffer buf;
          204  JsonObject& req = buf.createObject();
          205  req["clientId"] = client_id;
          206  req["description"] =
          207  String("SensESP device: ") + sensesp_app->get_hostname();
          208  String json_req = "";
          209  req.printTo(json_req);
          210 
          211  WiFiClient client;
          212  HTTPClient http;
          213 
          214  String url = String("http://") + server_address + ":" + server_port
          215  + "/signalk/v1/access/requests";
          216  http.begin(client, url);
          217  http.addHeader("Content-Type", "application/json");
          218  int httpCode = http.POST(json_req);
          219  String payload = http.getString();
          220  http.end();
          221 
          222  // if we get a response we can't handle, try to reconnect later
          223  if (httpCode != 202) {
          224  debugW("Can't handle response %d to access request.", httpCode);
          225  debugD("%s", payload.c_str());
          226  connection_state = disconnected;
          227  return;
          228  }
          229 
          230  // http status code 202
          231 
          232  JsonObject& resp = buf.parseObject(payload);
          233  String state = resp["state"];
          234 
          235  if (state != "PENDING") {
          236  debugW("Got unknown state: %s", state.c_str());
          237  connection_state = disconnected;
          238  return;
          239  }
          240 
          241  String href = resp["href"];
          242  polling_href = href;
          244 
          245  debugD("Polling %s in 5 seconds", polling_href.c_str());
          246  app.onDelay(5000, [this, server_address, server_port](){
          247  this->poll_access_request(server_address, server_port, this->polling_href);
          248  });
          249 }
          250 
          251 void WSClient::poll_access_request(const String server_address, const uint16_t server_port, const String href) {
          252  debugD("Polling SK Server for authentication token");
          253 
          254  WiFiClient client;
          255  HTTPClient http;
          256 
          257  String url = String("http://") + server_address + ":" + server_port + href;
          258  http.begin(client, url);
          259  int httpCode = http.GET();
          260  if (httpCode == 200 or httpCode == 202) {
          261  String payload = http.getString();
          262  http.end();
          263  DynamicJsonBuffer buf;
          264  JsonObject& resp = buf.parseObject(payload);
          265  String state = resp["state"];
          266  debugD("%s", state.c_str());
          267  if (state == "PENDING") {
          268  app.onDelay(5000, [this, server_address, server_port, href](){ this->poll_access_request(server_address, server_port, href); });
          269  return;
          270  } else if (state == "COMPLETED") {
          271  JsonObject& access_req = resp["accessRequest"];
          272  String permission = access_req["permission"];
          273  polling_href = "";
          275 
          276  if (permission == "DENIED") {
          277  debugW("Permission denied");
          278  connection_state = disconnected;
          279  return;
          280  } else if (permission == "APPROVED") {
          281  debugI("Permission granted");
          282  String token = access_req["token"];
          283  auth_token = token;
          285  app.onDelay(0, [this, server_address, server_port](){ this->connect_ws(server_address, server_port); });
          286  return;
          287  }
          288  }
          289  } else {
          290  http.end();
          291  if (httpCode==500) {
          292  // this is probably the server barfing due to
          293  // us polling a non-existing request. Just
          294  // delete the polling href.
          295  debugD("Got 500, probably a non-existing request.");
          296  polling_href = "";
          298  connection_state = disconnected;
          299  return;
          300  }
          301  // any other HTTP status code
          302  debugW("Can't handle response %d to pending access request.\n", httpCode);
          303  connection_state = disconnected;
          304  return;
          305  }
          306 }
          307 
          308 void WSClient::connect_ws(const String host, const uint16_t port) {
          309  String path = "/signalk/v1/stream?subscribe=none";
          310 
          311  this->client.begin(host, port, path);
          312  this->client.onEvent(webSocketClientEvent);
          313  String full_token = String("JWT ") + auth_token;
          314  this->client.setAuthorization(full_token.c_str());
          315 }
          316 
          318  this->client.loop();
          319 }
          320 
          322  return connection_state==connected;
          323 }
          324 
          326  if (connection_state==connected) {
          327  this->client.disconnect();
          328  connection_state = disconnected;
          329  }
          330 }
          331 
          333  String output;
          334  if (sk_delta->data_available()) {
          335  sk_delta->get_delta(output);
          336  if (connection_state==connected) {
          337  this->client.sendTXT(output);
          338  this->delta_cb();
          339  }
          340  }
          341 }
          342 
          343 JsonObject& WSClient::get_configuration(JsonBuffer& buf) {
          344  JsonObject& root = buf.createObject();
          345  root["sk_address"] = this->server_address;
          346  root["sk_port"] = this->server_port;
          347  root["token"] = this->auth_token;
          348  root["client_id"] = this->client_id;
          349  root["polling_href"] = this->polling_href;
          350  return root;
          351 }
          352 
          353 static const char SCHEMA[] PROGMEM = R"({
          354  "type": "object",
          355  "properties": {
          356  "sk_address": { "title": "SignalK server address", "type": "string" },
          357  "sk_port": { "title": "SignalK server port", "type": "integer" },
          358  "client_id": { "title": "Client ID", "type": "string", "readOnly": true },
          359  "token": { "title": "Server authorization token", "type": "string" },
          360  "polling_href": { "title": "Server authorization polling href", "type": "string", "readOnly": true }
          361  }
          362  })";
          363 
          365  return FPSTR(SCHEMA);
          366 }
          367 
          368 
          369 bool WSClient::set_configuration(const JsonObject& config) {
          370  String expected[] = {"sk_address", "sk_port", "token", "client_id"};
          371  for (auto str : expected) {
          372  if (!config.containsKey(str)) {
          373  return false;
          374  }
          375  }
          376  this->server_address = config["sk_address"].as<String>();
          377  this->server_port = config["sk_port"].as<int>();
          378  // FIXME: setting the token should not be allowed via the REST API.
          379  this->auth_token = config["token"].as<String>();
          380  this->client_id = config["client_id"].as<String>();
          381  this->polling_href = config["polling_href"].as<String>();
          382  return true;
          383 }
          void webSocketClientEvent(WStype_t type, uint8_t *payload, size_t length)
          Definition: ws_client.cpp:21
          -
          void connect()
          Definition: ws_client.cpp:111
          -
          WSClient(String config_path, SKDelta *sk_delta, std::function< void(bool)> connected_cb, void_cb_func delta_cb)
          Definition: ws_client.cpp:41
          -
          SensESPApp * sensesp_app
          -
          void restart()
          Definition: ws_client.cpp:325
          -
          virtual bool set_configuration(const JsonObject &config) override final
          Definition: ws_client.cpp:369
          -
          void on_disconnected()
          Definition: ws_client.cpp:67
          -
          void enable()
          Definition: ws_client.cpp:54
          - - -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override final
          Definition: ws_client.cpp:343
          - -
          bool data_available()
          -
          void on_connected(uint8_t *payload)
          Definition: ws_client.cpp:87
          - -
          String get_hostname()
          -
          virtual void save_configuration()
          -
          std::function< void()> void_cb_func
          Definition: sensesp.h:7
          -
          void loop()
          Definition: ws_client.cpp:317
          -
          WSClient * ws_client
          Definition: ws_client.cpp:19
          -
          void on_receive_delta(uint8_t *payload)
          Definition: ws_client.cpp:93
          -
          const String config_path
          Definition: configurable.h:29
          -
          void send_delta()
          Definition: ws_client.cpp:332
          -
          void on_error()
          Definition: ws_client.cpp:81
          - - - -
          bool is_connected()
          Definition: ws_client.cpp:321
          -
          void get_delta(String &output)
          -
          const char PAGE_index [] PROGMEM
          Definition: index.h:2
          -
          ReactESP app
          -
          virtual String get_config_schema() override
          Definition: ws_client.cpp:364
          - -
          -
          - - - - diff --git a/docs/ws__client_8h.html b/docs/ws__client_8h.html deleted file mode 100644 index 52be6e4ca..000000000 --- a/docs/ws__client_8h.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - -SensESP: src/net/ws_client.h File Reference - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          - -
          -
          ws_client.h File Reference
          -
          -
          -
          #include <functional>
          -#include <WebSocketsClient.h>
          -#include "sensesp.h"
          -#include "system/configurable.h"
          -#include "signalk/signalk_delta.h"
          -
          -Include dependency graph for ws_client.h:
          -
          -
          - - - - - - - - - - - - - - -
          -
          -This graph shows which files directly or indirectly include this file:
          -
          -
          - - - - - - - - - - - -
          -
          -

          Go to the source code of this file.

          - - - - -

          -Classes

          class  WSClient
           
          - - - -

          -Enumerations

          enum  ConnectionState { disconnected, -connecting, -connected - }
           
          -

          Enumeration Type Documentation

          - -

          ◆ ConnectionState

          - -
          -
          - - - - -
          enum ConnectionState
          -
          - - - - -
          Enumerator
          disconnected 
          connecting 
          connected 
          - -

          Definition at line 14 of file ws_client.h.

          - -
          -
          -
          -
          - - - - diff --git a/docs/ws__client_8h__dep__incl.map b/docs/ws__client_8h__dep__incl.map deleted file mode 100644 index d34b96a15..000000000 --- a/docs/ws__client_8h__dep__incl.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/docs/ws__client_8h__dep__incl.md5 b/docs/ws__client_8h__dep__incl.md5 deleted file mode 100644 index 98b23f92e..000000000 --- a/docs/ws__client_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -a752132836289a27ae6aec7f9aad3a15 \ No newline at end of file diff --git a/docs/ws__client_8h__dep__incl.png b/docs/ws__client_8h__dep__incl.png deleted file mode 100644 index c8dc163e2..000000000 Binary files a/docs/ws__client_8h__dep__incl.png and /dev/null differ diff --git a/docs/ws__client_8h__incl.map b/docs/ws__client_8h__incl.map deleted file mode 100644 index d4cfac740..000000000 --- a/docs/ws__client_8h__incl.map +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/docs/ws__client_8h__incl.md5 b/docs/ws__client_8h__incl.md5 deleted file mode 100644 index 0febccd31..000000000 --- a/docs/ws__client_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -3b4c68e47da9884754e53e31bb99646c \ No newline at end of file diff --git a/docs/ws__client_8h__incl.png b/docs/ws__client_8h__incl.png deleted file mode 100644 index 8dd0b2774..000000000 Binary files a/docs/ws__client_8h__incl.png and /dev/null differ diff --git a/docs/ws__client_8h_source.html b/docs/ws__client_8h_source.html deleted file mode 100644 index 47fbda4b3..000000000 --- a/docs/ws__client_8h_source.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - -SensESP: src/net/ws_client.h Source File - - - - - - - - - - - - - - -
          -
          - - - - - - -
          -
          SensESP -  0.4.3 -
          -
          Universal Signal K sensor framework for ESP8266 and ESP32
          -
          -
          - - - - - - - -
          -
          - -
          -
          -
          - -
          - -
          -
          - - -
          - -
          - -
          -
          -
          ws_client.h
          -
          -
          -Go to the documentation of this file.
          1 #ifndef _ws_client_H_
          2 #define _ws_client_H_
          3 
          4 #include <functional>
          5 
          6 #include <WebSocketsClient.h>
          7 
          8 #include "sensesp.h"
          9 #include "system/configurable.h"
          10 #include "signalk/signalk_delta.h"
          11 
          12 static const char* NULL_AUTH_TOKEN = "";
          13 
          15 
          16 class WSClient : public Configurable {
          17  public:
          18  WSClient(String config_path, SKDelta* sk_delta,
          19  std::function<void(bool)> connected_cb,
          20  void_cb_func delta_cb);
          21  void enable();
          22  void on_disconnected();
          23  void on_error();
          24  void on_connected(uint8_t * payload);
          25  void on_receive_delta(uint8_t * payload);
          26  void connect();
          27  void loop();
          28  bool is_connected();
          29  void restart();
          30  void send_delta();
          31 
          32  virtual JsonObject& get_configuration(JsonBuffer& buf) override final;
          33  virtual bool set_configuration(const JsonObject& config) override final;
          34  virtual String get_config_schema() override;
          35 
          36  private:
          37  String server_address = "";
          38  uint16_t server_port = 80;
          39  String client_id = "";
          40  String polling_href = "";
          41  String auth_token = NULL_AUTH_TOKEN;
          42  bool server_detected = false;
          43 
          44  // FIXME: replace with a single connection_state enum
          45  ConnectionState connection_state = disconnected;
          46  WebSocketsClient client;
          47  SKDelta* sk_delta;
          48  void connect_loop();
          49  void test_token(const String host, const uint16_t port);
          50  void send_access_request(const String host, const uint16_t port);
          51  void poll_access_request(const String host, const uint16_t port, const String href);
          52  void connect_ws(const String host, const uint16_t port);
          53  std::function<void(bool)> connected_cb;
          54  void_cb_func delta_cb;
          55  bool get_mdns_service(String &server_address, uint16_t& server_port);
          56 };
          57 
          58 #endif
          void connect()
          Definition: ws_client.cpp:111
          - -
          WSClient(String config_path, SKDelta *sk_delta, std::function< void(bool)> connected_cb, void_cb_func delta_cb)
          Definition: ws_client.cpp:41
          -
          void restart()
          Definition: ws_client.cpp:325
          -
          virtual bool set_configuration(const JsonObject &config) override final
          Definition: ws_client.cpp:369
          -
          void on_disconnected()
          Definition: ws_client.cpp:67
          -
          void enable()
          Definition: ws_client.cpp:54
          - - -
          virtual JsonObject & get_configuration(JsonBuffer &buf) override final
          Definition: ws_client.cpp:343
          - -
          void on_connected(uint8_t *payload)
          Definition: ws_client.cpp:87
          - -
          ConnectionState
          Definition: ws_client.h:14
          -
          std::function< void()> void_cb_func
          Definition: sensesp.h:7
          -
          void loop()
          Definition: ws_client.cpp:317
          -
          void on_receive_delta(uint8_t *payload)
          Definition: ws_client.cpp:93
          -
          const String config_path
          Definition: configurable.h:29
          -
          void send_delta()
          Definition: ws_client.cpp:332
          -
          void on_error()
          Definition: ws_client.cpp:81
          - - -
          bool is_connected()
          Definition: ws_client.cpp:321
          - -
          virtual String get_config_schema() override
          Definition: ws_client.cpp:364
          - -
          -
          - - - -