Skip to content

Commit ea5aefe

Browse files
committed
use external buffer on poll()
1 parent ebaa1ab commit ea5aefe

File tree

2 files changed

+8
-11
lines changed

2 files changed

+8
-11
lines changed

ArduinoCloudThing.cpp

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,19 +41,14 @@ ArduinoCloudThing::ArduinoCloudThing() {
4141
}
4242

4343

44-
bool ArduinoCloudThing::begin() {
45-
46-
#ifdef TESTING_PROTOCOL
47-
return true;
48-
#endif
44+
void ArduinoCloudThing::begin() {
4945

5046
status = ON;
5147
addProperty(status, READ);
5248
}
5349

54-
void ArduinoCloudThing::publish(CborArray& object) {
50+
int ArduinoCloudThing::publish(CborArray& object, uint8_t* data) {
5551

56-
uint8_t data[1024];
5752
size_t size = object.encode(data, sizeof(data));
5853

5954
#ifdef TESTING_PROTOCOL
@@ -64,9 +59,11 @@ void ArduinoCloudThing::publish(CborArray& object) {
6459
ArduinoCloudPropertyGeneric *p = list.get(i);
6560
p->updateShadow();
6661
}
62+
63+
return size;
6764
}
6865

69-
int ArduinoCloudThing::poll() {
66+
int ArduinoCloudThing::poll(uint8_t* data) {
7067

7168
// check if backing storage and cloud has diverged
7269
int diff = 0;
@@ -76,7 +73,7 @@ int ArduinoCloudThing::poll() {
7673
CborBuffer buffer(1024);
7774
CborArray object = CborArray(buffer);
7875
compress(object, buffer);
79-
publish(object);
76+
diff = publish(object, data);
8077
}
8178

8279
#if defined(DEBUG_MEMORY) && defined(ARDUINO_ARCH_SAMD)

ArduinoCloudThing.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,10 +185,10 @@ class ArduinoCloudThing {
185185
ArduinoCloudPropertyGeneric& addPropertyReal(void* property, String name, permissionType permission);
186186
ArduinoCloudPropertyGeneric& addPropertyReal(String property, String name, permissionType permission);
187187
// poll should return > 0 if something has changed
188-
int poll();
188+
int poll(uint8_t* data);
189189

190190
private:
191-
void publish(CborArray& object);
191+
int publish(CborArray& object, uint8_t* data);
192192

193193
void update();
194194
int checkNewData();

0 commit comments

Comments
 (0)