Skip to content

Commit 334ebe9

Browse files
committed
Reformatting class for better readability (and adding comments to further understanding)
1 parent aa74cf9 commit 334ebe9

File tree

2 files changed

+98
-94
lines changed

2 files changed

+98
-94
lines changed

src/ArduinoIoTCloud.cpp

Lines changed: 56 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,23 @@
2525
* PUBLIC MEMBER FUNCTIONS
2626
******************************************************************************/
2727

28-
void ArduinoIoTCloudClass::addPropertyReal(ArduinoCloudProperty& property, String name, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
28+
void ArduinoIoTCloudClass::addCallback(ArduinoIoTCloudEvent const event, OnCloudEventCallback callback)
29+
{
30+
switch (event)
31+
{
32+
case ArduinoIoTCloudEvent::SYNC: _on_sync_event_callback = callback; break;
33+
case ArduinoIoTCloudEvent::CONNECT: _on_connect_event_callback = callback; break;
34+
case ArduinoIoTCloudEvent::DISCONNECT: _on_disconnect_event_callback = callback; break;
35+
}
36+
};
37+
38+
void ArduinoIoTCloudClass::addPropertyReal(ArduinoCloudProperty& property, String name, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
39+
{
2940
addPropertyReal(property, name, -1, permission_type, seconds, fn, minDelta, synFn);
3041
}
3142

32-
void ArduinoIoTCloudClass::addPropertyReal(ArduinoCloudProperty& property, String name, int tag, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
43+
void ArduinoIoTCloudClass::addPropertyReal(ArduinoCloudProperty& property, String name, int tag, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
44+
{
3345
Permission permission = Permission::ReadWrite;
3446
if (permission_type == READ) {
3547
permission = Permission::Read;
@@ -46,100 +58,114 @@ void ArduinoIoTCloudClass::addPropertyReal(ArduinoCloudProperty& property, Strin
4658
}
4759
}
4860

49-
void ArduinoIoTCloudClass::addPropertyReal(bool& property, String name, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
61+
void ArduinoIoTCloudClass::addPropertyReal(bool& property, String name, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
62+
{
5063
addPropertyReal(property, name, -1, permission_type, seconds, fn, minDelta, synFn);
5164
}
5265

53-
void ArduinoIoTCloudClass::addPropertyReal(bool& property, String name, int tag, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
66+
void ArduinoIoTCloudClass::addPropertyReal(bool& property, String name, int tag, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
67+
{
5468
ArduinoCloudProperty* p = new CloudWrapperBool(property);
5569
addPropertyReal(*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
5670
}
57-
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(bool& property, String name, Permission const permission) {
71+
72+
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(bool& property, String name, Permission const permission)
73+
{
5874
return addPropertyReal(property, name, -1, permission);
5975
}
60-
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(bool& property, String name, int tag, Permission const permission) {
76+
77+
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(bool& property, String name, int tag, Permission const permission)
78+
{
6179
ArduinoCloudProperty* p = new CloudWrapperBool(property);
6280
return Thing.addPropertyReal(*p, name, permission, tag);
6381
}
6482

65-
void ArduinoIoTCloudClass::addPropertyReal(float& property, String name, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
83+
void ArduinoIoTCloudClass::addPropertyReal(float& property, String name, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
84+
{
6685
addPropertyReal(property, name, -1, permission_type, seconds, fn, minDelta, synFn);
6786
}
6887

69-
void ArduinoIoTCloudClass::addPropertyReal(float& property, String name, int tag, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
88+
void ArduinoIoTCloudClass::addPropertyReal(float& property, String name, int tag, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
89+
{
7090
ArduinoCloudProperty* p = new CloudWrapperFloat(property);
7191
addPropertyReal(*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
7292
}
7393

74-
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(float& property, String name, Permission const permission) {
94+
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(float& property, String name, Permission const permission)
95+
{
7596
return addPropertyReal(property, name, -1, permission);
7697
}
7798

78-
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(float& property, String name, int tag, Permission const permission) {
99+
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(float& property, String name, int tag, Permission const permission)
100+
{
79101
ArduinoCloudProperty* p = new CloudWrapperFloat(property);
80102
return Thing.addPropertyReal(*p, name, permission, tag);
81103
}
82104

83-
void ArduinoIoTCloudClass::addPropertyReal(int& property, String name, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
105+
void ArduinoIoTCloudClass::addPropertyReal(int& property, String name, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
106+
{
84107
addPropertyReal(property, name, -1, permission_type, seconds, fn, minDelta, synFn);
85108
}
86109

87-
void ArduinoIoTCloudClass::addPropertyReal(int& property, String name, int tag, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
110+
void ArduinoIoTCloudClass::addPropertyReal(int& property, String name, int tag, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
111+
{
88112
ArduinoCloudProperty* p = new CloudWrapperInt(property);
89113
addPropertyReal(*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
90114
}
91115

92-
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(int& property, String name, Permission const permission) {
116+
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(int& property, String name, Permission const permission)
117+
{
93118
return addPropertyReal(property, name, -1, permission);
94119
}
95120

96-
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(int& property, String name, int tag, Permission const permission) {
121+
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(int& property, String name, int tag, Permission const permission)
122+
{
97123
ArduinoCloudProperty* p = new CloudWrapperInt(property);
98124
return Thing.addPropertyReal(*p, name, permission, tag);
99125
}
100126

101-
void ArduinoIoTCloudClass::addPropertyReal(String& property, String name, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
127+
void ArduinoIoTCloudClass::addPropertyReal(String& property, String name, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
128+
{
102129
addPropertyReal(property, name, -1, permission_type, seconds, fn, minDelta, synFn);
103130
}
104131

105-
void ArduinoIoTCloudClass::addPropertyReal(String& property, String name, int tag, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
132+
void ArduinoIoTCloudClass::addPropertyReal(String& property, String name, int tag, permissionType permission_type, long seconds, void(*fn)(void), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
133+
{
106134
ArduinoCloudProperty* p = new CloudWrapperString(property);
107135
addPropertyReal(*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
108136
}
109137

110-
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(String& property, String name, Permission const permission) {
138+
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(String& property, String name, Permission const permission)
139+
{
111140
return addPropertyReal(property, name, -1, permission);
112141
}
113142

114-
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(String& property, String name, int tag, Permission const permission) {
143+
ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal(String& property, String name, int tag, Permission const permission)
144+
{
115145
ArduinoCloudProperty* p = new CloudWrapperString(property);
116146
return Thing.addPropertyReal(*p, name, permission, tag);
117147
}
118148

119-
void ArduinoIoTCloudClass::addCallback(ArduinoIoTCloudEvent const event, OnCloudEventCallback callback) {
120-
switch (event) {
121-
case ArduinoIoTCloudEvent::SYNC: _on_sync_event_callback = callback; break;
122-
case ArduinoIoTCloudEvent::CONNECT: _on_connect_event_callback = callback; break;
123-
case ArduinoIoTCloudEvent::DISCONNECT: _on_disconnect_event_callback = callback; break;
124-
}
125-
};
126-
127149
/******************************************************************************
128150
* PRIVATE MEMBER FUNCTIONS
129151
******************************************************************************/
130152

131-
void ArduinoIoTCloudClass::execCloudEventCallback(OnCloudEventCallback& callback, void* callback_arg) {
153+
void ArduinoIoTCloudClass::execCloudEventCallback(OnCloudEventCallback& callback, void* callback_arg)
154+
{
132155
if (callback) {
133156
(*callback)(callback_arg);
134157
}
135158
}
136-
void ArduinoIoTCloudClass::printConnectionStatus(ArduinoIoTConnectionStatus status) {
137-
switch (status) {
159+
160+
void ArduinoIoTCloudClass::printConnectionStatus(ArduinoIoTConnectionStatus status)
161+
{
162+
switch (status)
163+
{
138164
case ArduinoIoTConnectionStatus::IDLE: Debug.print(DBG_INFO, "Arduino IoT Cloud Connection status: IDLE"); break;
139165
case ArduinoIoTConnectionStatus::ERROR: Debug.print(DBG_ERROR, "Arduino IoT Cloud Connection status: ERROR"); break;
140166
case ArduinoIoTConnectionStatus::CONNECTING: Debug.print(DBG_INFO, "Arduino IoT Cloud Connection status: CONNECTING"); break;
141167
case ArduinoIoTConnectionStatus::RECONNECTING: Debug.print(DBG_INFO, "Arduino IoT Cloud Connection status: RECONNECTING"); break;
142168
case ArduinoIoTConnectionStatus::CONNECTED: Debug.print(DBG_INFO, "Arduino IoT Cloud Connection status: CONNECTED"); break;
143169
case ArduinoIoTConnectionStatus::DISCONNECTED: Debug.print(DBG_ERROR, "Arduino IoT Cloud Connection status: DISCONNECTED"); break;
144170
}
145-
}
171+
}

src/ArduinoIoTCloud.h

Lines changed: 42 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424

2525
#include <ArduinoIoTCloud_Defines.h>
2626

27-
28-
2927
#include <ArduinoCloudThing.h>
3028

3129
#include <Arduino_DebugUtils.h>
@@ -34,21 +32,21 @@
3432
#include "types/CloudWrapperInt.h"
3533
#include "types/CloudWrapperString.h"
3634

37-
3835
#include "CloudSerial.h"
3936

4037
/******************************************************************************
4138
TYPEDEF
4239
******************************************************************************/
4340

44-
typedef enum {
41+
typedef enum
42+
{
4543
READ = 0x01,
4644
WRITE = 0x02,
4745
READWRITE = READ | WRITE
4846
} permissionType;
4947

50-
51-
enum class ArduinoIoTConnectionStatus {
48+
enum class ArduinoIoTConnectionStatus
49+
{
5250
IDLE,
5351
CONNECTING,
5452
CONNECTED,
@@ -57,13 +55,15 @@ enum class ArduinoIoTConnectionStatus {
5755
ERROR,
5856
};
5957

60-
enum class ArduinoIoTSynchronizationStatus {
58+
enum class ArduinoIoTSynchronizationStatus
59+
{
6160
SYNC_STATUS_SYNCHRONIZED,
6261
SYNC_STATUS_WAIT_FOR_CLOUD_VALUES,
6362
SYNC_STATUS_VALUES_PROCESSED
6463
};
6564

66-
enum class ArduinoIoTCloudEvent {
65+
enum class ArduinoIoTCloudEvent
66+
{
6767
SYNC, CONNECT, DISCONNECT
6868
};
6969

@@ -74,93 +74,73 @@ typedef void (*OnCloudEventCallback)(void * /* arg */);
7474
* CLASS DECLARATION
7575
******************************************************************************/
7676

77-
class ArduinoIoTCloudClass {
78-
77+
class ArduinoIoTCloudClass
78+
{
7979
public:
80-
static const int TIMEOUT_FOR_LASTVALUES_SYNC = 10000;
81-
/*Public Virtual Functions*/
82-
virtual int connect() = 0;
83-
virtual bool disconnect() = 0;
8480

85-
virtual void update() = 0;
86-
87-
virtual int connected() = 0;
81+
static const int TIMEOUT_FOR_LASTVALUES_SYNC = 10000;
8882

83+
virtual int connect () = 0;
84+
virtual bool disconnect () = 0;
85+
virtual void update () = 0;
86+
virtual int connected () = 0;
8987
virtual void printDebugInfo() = 0;
9088

91-
inline void setThingId(String const thing_id) {
92-
_thing_id = thing_id;
93-
};
89+
inline void setThingId (String const thing_id) { _thing_id = thing_id; };
90+
inline String getThingId () const { return _thing_id; };
91+
inline String getDeviceId() const { return _device_id; };
9492

95-
inline String getThingId() const {
96-
return _thing_id;
97-
};
98-
99-
inline String getDeviceId() const {
100-
return _device_id;
101-
};
93+
void addCallback(ArduinoIoTCloudEvent const event, OnCloudEventCallback callback);
10294

10395
#define addProperty( v, ...) addPropertyReal(v, #v, __VA_ARGS__)
10496

10597
static unsigned long const DEFAULT_MIN_TIME_BETWEEN_UPDATES_MILLIS = 500; /* Data rate throttled to 2 Hz */
10698

107-
void addPropertyReal(ArduinoCloudProperty& property, String name, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
108-
109-
void addPropertyReal(ArduinoCloudProperty& property, String name, int tag, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
99+
/* The following methods are used for non-LoRa boards which can use the
100+
* name of the property to identify a given property within a CBOR message.
101+
*/
110102

103+
void addPropertyReal(ArduinoCloudProperty& property, String name, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
111104
void addPropertyReal(bool& property, String name, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
112-
void addPropertyReal(bool& property, String name, int tag, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
113-
ArduinoCloudProperty& addPropertyReal(bool& property, String name, Permission const permission);
114-
ArduinoCloudProperty& addPropertyReal(bool& property, String name, int tag, Permission const permission);
115-
116105
void addPropertyReal(float& property, String name, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
106+
void addPropertyReal(int& property, String name, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
107+
void addPropertyReal(String& property, String name, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
117108

118-
void addPropertyReal(float& property, String name, int tag, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
119-
109+
ArduinoCloudProperty& addPropertyReal(bool& property, String name, Permission const permission);
120110
ArduinoCloudProperty& addPropertyReal(float& property, String name, Permission const permission);
111+
ArduinoCloudProperty& addPropertyReal(int& property, String name, Permission const permission);
112+
ArduinoCloudProperty& addPropertyReal(String& property, String name, int tag, Permission const permission);
121113

122-
ArduinoCloudProperty& addPropertyReal(float& property, String name, int tag, Permission const permission);
123-
124-
void addPropertyReal(int& property, String name, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
114+
/* The following methods are for MKR WAN 1300/1310 LoRa boards since
115+
* they use a number to identify a given property within a CBOR message.
116+
* This approach reduces the required amount of data which is of great
117+
* important when using LoRa.
118+
*/
125119

120+
void addPropertyReal(ArduinoCloudProperty& property, String name, int tag, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
121+
void addPropertyReal(bool& property, String name, int tag, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
122+
void addPropertyReal(float& property, String name, int tag, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
126123
void addPropertyReal(int& property, String name, int tag, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
124+
void addPropertyReal(String& property, String name, int tag, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
127125

128-
ArduinoCloudProperty& addPropertyReal(int& property, String name, Permission const permission);
129-
126+
ArduinoCloudProperty& addPropertyReal(bool& property, String name, int tag, Permission const permission);
127+
ArduinoCloudProperty& addPropertyReal(float& property, String name, int tag, Permission const permission);
130128
ArduinoCloudProperty& addPropertyReal(int& property, String name, int tag, Permission const permission);
131-
132-
void addPropertyReal(String& property, String name, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
133-
void addPropertyReal(String& property, String name, int tag, permissionType permission_type = READWRITE, long seconds = ON_CHANGE, void(*fn)(void) = NULL, float minDelta = 0.0f, void(*synFn)(ArduinoCloudProperty & property) = CLOUD_WINS);
134129
ArduinoCloudProperty& addPropertyReal(String& property, String name, Permission const permission);
135130

136-
ArduinoCloudProperty& addPropertyReal(String& property, String name, int tag, Permission const permission);
137-
138-
void addCallback(ArduinoIoTCloudEvent const event, OnCloudEventCallback callback);
139-
140-
141131
protected:
142132

143133
virtual int writeStdout(const byte data[], int length) = 0;
144134
virtual int writeProperties(const byte data[], int length) = 0;
145135
virtual int writeShadowOut(const byte data[], int length) = 0;
146136

147-
148-
149-
150-
ArduinoIoTConnectionStatus getIoTStatus() {
151-
return _iotStatus;
152-
}
153-
154-
ArduinoIoTConnectionStatus _iotStatus = ArduinoIoTConnectionStatus::IDLE;
155-
156-
157-
158-
ArduinoIoTSynchronizationStatus _syncStatus = ArduinoIoTSynchronizationStatus::SYNC_STATUS_SYNCHRONIZED;
159-
137+
inline ArduinoIoTConnectionStatus getIoTStatus() { return _iotStatus; }
160138

161139
String _device_id = "";
162140
String _thing_id = "";
163141

142+
ArduinoIoTConnectionStatus _iotStatus = ArduinoIoTConnectionStatus::IDLE;
143+
ArduinoIoTSynchronizationStatus _syncStatus = ArduinoIoTSynchronizationStatus::SYNC_STATUS_SYNCHRONIZED;
164144

165145
ArduinoCloudThing Thing;
166146

@@ -176,10 +156,8 @@ class ArduinoIoTCloudClass {
176156

177157
#ifdef HAS_TCP
178158
#include "ArduinoIoTCloudTCP.h"
179-
180159
#elif defined(HAS_LORA)
181160
#include "ArduinoIoTCloudLPWAN.h"
182-
183161
#endif
184162

185163
#endif

0 commit comments

Comments
 (0)