Files
ArduinoProps/help/PropsData.md
T
2019-11-15 19:27:07 +01:00

2.4 KiB

PropsData reference

PropsData tracks data changes and provides escape room 2.0 propocol DATA ready string format.

See 4. Application protocol for escape room 2.0 props in README.md.

PropsData is an interface (base class) implemented by 4 classes:

  • PropsDataDecimal
  • PropsDataInteger
  • PropsDataLogical
  • PropsDataText

Constructors

  • PropsDataDecimal(const char *, uint8_t digits = 2, double precision = 0.1, double initial = 0)
  • PropsDataInteger(const char *, double precision = 0.1, long initial = 0)
  • PropsDataLogical(const char *, const char *trueval = NULL, const char *falseval = NULL, bool initial = false)
  • PropsDataText(const char *)

By default for PropsDataLogical, trueval is "1" band falseval is "0".

For PropsDataDecimal, digits is the number of decimal digits in the display string.

For PropsDataDecimal and PropsDataInteger, precision is the percentage threshold for deciding whether a change has occurred or not.

Interface

  • String fetch()
  • String fetchChange()

fetch() always returns the "var=value " string ready to be sent in a DATA protocol message and update the _previous value.

fetchChange() checks whether a change has occurred or not. If a change occured, returns the "var=value " string ready to be sent in a DATA protocol message and update the _previous value. If no change occured, returns and empty string.

Accessors and Mutators

  • void setValue(const double|long|bool|String)
  • double|long|bool|String value() const

Accessors and Mutators are typed according to PropsData type.

Usage

Create a PropsData instance

PropsDataLogical clignoter(u8"clignote", u8"oui", u8"non", true);

Add the PropsData instance to managed data of the Props

void setup()
{
  ...

  Props::addManagedLogicalData(&clignoter);

  ...
}

Use the PropsData instance anywhere

clignoter.setValue(true);

...

if (clignoter.value()) {
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    led.setValue(digitalRead(LED_BUILTIN));
}

Author

Marie FAURE (Oct 18th, 2019)