Files
ArduinoProps/help/Prop.md
T
fauresystems 2ada548cc4 Update Prop.md
2020-04-17 16:24:12 +02:00

3.2 KiB

Prop class reference

See also:

Prop (see Prop.h) is an interface (base class) implemented by 3 classes:

  • BridgeProp for Yun board and Yun shield
  • EthernetProp for Ethernet shield
  • WifiProp for WiFiNINA boards

Constructors

  • BridgeProp(const char*, const char*, const char*, const char*, const int)
  • EthernetProp(const char*, const char*, const char*, const char*, const int)
  • WifiProp(const char*, const char*, const char*, const char*, const int)

Each constructor implement the Prop interface:

  • Props(const char* client_id, const char* in_box, const char* out_box, const char* broker, const int port)
BridgeProp prop(u8"Arduino Blink", // as MQTT client id, should be unique per client for given broker
                u8"Room/My room/Props/Arduino Blink/inbox",
                u8"Room/My room/Props/Arduino Blink/outbox",
                "192.168.1.53", // your MQTT server IP address
                1883); // your MQTT server port;

Interface

  • virtual void begin(void(*)(String) = NULL) = 0
  • void addData(PropData*)
  • void loop()
  • void resetIntervals(const int changes, const int silent)
  • void resetMcu()
  • void sendAllData()
  • void sendDataChanges()
  • void sendData(String variables)
  • void sendDone(String action)
  • void sendMesg(String message)
  • void sendMesg(String topic, char* message)
  • void sendOmit(String action)
  • void sendOver(String challenge)
  • void sendProg(String program)
  • void sendRequ(String request)
  • void sendRequ(String topic, char*)

For send----() methods see Application protocol for escape room 2.0 prop

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.

Public properties

  • const char *clientId
  • const char *inbox
  • const char *outbox

Accessors and Mutators are typed according to PropData type.

Usage

Create a PropData instance

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

Add the PropData instance to managed data of the Props

void setup()
{
  ...

  Props::addManagedLogicalData(&clignoter);

  ...
}

Use the PropData 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)