Skip to content

Commit 90cd1b9

Browse files
aentingermattiabertorello
authored andcommitted
Since the ArduinoCloudThing interface has changed slightly we need to modify ArduinoIoTCloud::addProperty in order to ensure working as usual
1 parent a81013b commit 90cd1b9

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

examples/MKR1000_Cloud_Blink/MKR1000_Cloud_Blink.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ void setup() {
8080

8181
Serial.println("Successfully connected to Arduino Cloud :)");
8282

83-
ArduinoCloud.addProperty(position, READ, 10*SECONDS, onPositionUpdate);
83+
ArduinoCloud.addProperty(position, "position", READ, 10*SECONDS, onPositionUpdate);
8484

8585
CloudSerial.begin(9600);
8686
CloudSerial.print("I'm ready for blinking!\n");

src/ArduinoIoTCloud.h

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@
77

88
#include "CloudSerial.h"
99

10+
typedef enum {
11+
READ = 0x01,
12+
WRITE = 0x02,
13+
READWRITE = READ | WRITE
14+
} permissionType;
15+
1016
// Declaration of the struct for the mqtt connection options
1117
typedef struct {
1218
int keepAlive;
@@ -44,10 +50,18 @@ class ArduinoIoTCloudClass {
4450
// Clean up existing Mqtt connection, create a new one and initialize it
4551
int reconnect(Client& net);
4652

47-
#define addProperty( v, ...) addPropertyReal(v, #v, __VA_ARGS__)
48-
49-
template<typename T, typename N=T> void addPropertyReal(T& property, String name, permissionType _permission = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, N minDelta = N(0)) {
50-
Thing.addPropertyReal(property, name, _permission, seconds, fn, (T)minDelta);
53+
template<typename T, typename N=T> void addProperty(T & property, String name, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, N minDelta = N(0)) {
54+
Permission permission = Permission::ReadWrite;
55+
if (permission_type == READ ) permission = Permission::Read;
56+
else if(permission_type == WRITE) permission = Permission::Write;
57+
else permission = Permission::ReadWrite;
58+
59+
if(seconds == ON_CHANGE) {
60+
Thing.addProperty(property, name, permission).publishOnChange((T)minDelta).onUpdate(fn);
61+
}
62+
else {
63+
Thing.addProperty(property, name, permission).publishEvery(seconds);
64+
}
5165
}
5266

5367
protected:

0 commit comments

Comments
 (0)