15
15
a commercial license, send an email to [email protected] .
16
16
*/
17
17
18
+ /* *****************************************************************************
19
+ * INCLUDE
20
+ ******************************************************************************/
21
+
18
22
#include < ArduinoIoTCloud.h>
19
23
20
- void ArduinoIoTCloudClass::addPropertyReal (ArduinoCloudProperty& property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
24
+ /* *****************************************************************************
25
+ * PUBLIC MEMBER FUNCTIONS
26
+ ******************************************************************************/
27
+
28
+ void ArduinoIoTCloudClass::addCallback (ArduinoIoTCloudEvent const event, OnCloudEventCallback callback)
29
+ {
30
+ _cloud_event_callback[static_cast <size_t >(event)] = callback;
31
+ }
32
+
33
+ void ArduinoIoTCloudClass::addPropertyReal (ArduinoCloudProperty& property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
34
+ {
21
35
addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
22
36
}
23
37
24
- void ArduinoIoTCloudClass::addPropertyReal (ArduinoCloudProperty& property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
38
+ void ArduinoIoTCloudClass::addPropertyReal (ArduinoCloudProperty& property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
39
+ {
25
40
Permission permission = Permission::ReadWrite;
26
41
if (permission_type == READ) {
27
42
permission = Permission::Read;
@@ -32,102 +47,136 @@ void ArduinoIoTCloudClass::addPropertyReal(ArduinoCloudProperty& property, Strin
32
47
}
33
48
34
49
if (seconds == ON_CHANGE) {
35
- Thing .addPropertyReal (property, name, permission, tag).publishOnChange (minDelta, DEFAULT_MIN_TIME_BETWEEN_UPDATES_MILLIS).onUpdate (fn).onSync (synFn);
50
+ _thing .addPropertyReal (property, name, permission, tag).publishOnChange (minDelta, DEFAULT_MIN_TIME_BETWEEN_UPDATES_MILLIS).onUpdate (fn).onSync (synFn);
36
51
} else {
37
- Thing .addPropertyReal (property, name, permission, tag).publishEvery (seconds).onUpdate (fn).onSync (synFn);
52
+ _thing .addPropertyReal (property, name, permission, tag).publishEvery (seconds).onUpdate (fn).onSync (synFn);
38
53
}
39
54
}
40
55
41
- void ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
56
+ void ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
57
+ {
42
58
addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
43
59
}
44
60
45
- void ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
61
+ void ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
62
+ {
46
63
ArduinoCloudProperty* p = new CloudWrapperBool (property);
47
64
addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
48
65
}
49
- ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, Permission const permission) {
66
+
67
+ ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, Permission const permission)
68
+ {
50
69
return addPropertyReal (property, name, -1 , permission);
51
70
}
52
- ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, int tag, Permission const permission) {
71
+
72
+ ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, int tag, Permission const permission)
73
+ {
53
74
ArduinoCloudProperty* p = new CloudWrapperBool (property);
54
- return Thing .addPropertyReal (*p, name, permission, tag);
75
+ return _thing .addPropertyReal (*p, name, permission, tag);
55
76
}
56
77
57
- void ArduinoIoTCloudClass::addPropertyReal (float & property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
78
+ void ArduinoIoTCloudClass::addPropertyReal (float & property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
79
+ {
58
80
addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
59
81
}
60
82
61
- void ArduinoIoTCloudClass::addPropertyReal (float & property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
83
+ void ArduinoIoTCloudClass::addPropertyReal (float & property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
84
+ {
62
85
ArduinoCloudProperty* p = new CloudWrapperFloat (property);
63
86
addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
64
87
}
65
88
66
- ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (float & property, String name, Permission const permission) {
89
+ ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (float & property, String name, Permission const permission)
90
+ {
67
91
return addPropertyReal (property, name, -1 , permission);
68
92
}
69
93
70
- ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (float & property, String name, int tag, Permission const permission) {
94
+ ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (float & property, String name, int tag, Permission const permission)
95
+ {
71
96
ArduinoCloudProperty* p = new CloudWrapperFloat (property);
72
- return Thing .addPropertyReal (*p, name, permission, tag);
97
+ return _thing .addPropertyReal (*p, name, permission, tag);
73
98
}
74
99
75
- void ArduinoIoTCloudClass::addPropertyReal (int & property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
100
+ void ArduinoIoTCloudClass::addPropertyReal (int & property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
101
+ {
76
102
addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
77
103
}
78
104
79
- void ArduinoIoTCloudClass::addPropertyReal (int & property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
105
+ void ArduinoIoTCloudClass::addPropertyReal (int & property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
106
+ {
80
107
ArduinoCloudProperty* p = new CloudWrapperInt (property);
81
108
addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
82
109
}
83
110
84
- ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (int & property, String name, Permission const permission) {
111
+ ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (int & property, String name, Permission const permission)
112
+ {
85
113
return addPropertyReal (property, name, -1 , permission);
86
114
}
87
115
88
- ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (int & property, String name, int tag, Permission const permission) {
116
+ ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (int & property, String name, int tag, Permission const permission)
117
+ {
89
118
ArduinoCloudProperty* p = new CloudWrapperInt (property);
90
- return Thing .addPropertyReal (*p, name, permission, tag);
119
+ return _thing .addPropertyReal (*p, name, permission, tag);
91
120
}
92
121
93
- void ArduinoIoTCloudClass::addPropertyReal (String& property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
122
+ void ArduinoIoTCloudClass::addPropertyReal (String& property, String name, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
123
+ {
94
124
addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
95
125
}
96
126
97
- void ArduinoIoTCloudClass::addPropertyReal (String& property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property)) {
127
+ void ArduinoIoTCloudClass::addPropertyReal (String& property, String name, int tag, permissionType permission_type, long seconds, void (*fn)(void ), float minDelta, void(*synFn)(ArduinoCloudProperty & property))
128
+ {
98
129
ArduinoCloudProperty* p = new CloudWrapperString (property);
99
130
addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
100
131
}
101
132
102
- ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (String& property, String name, Permission const permission) {
133
+ ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (String& property, String name, Permission const permission)
134
+ {
103
135
return addPropertyReal (property, name, -1 , permission);
104
136
}
105
137
106
- ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (String& property, String name, int tag, Permission const permission) {
138
+ ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (String& property, String name, int tag, Permission const permission)
139
+ {
107
140
ArduinoCloudProperty* p = new CloudWrapperString (property);
108
- return Thing .addPropertyReal (*p, name, permission, tag);
141
+ return _thing .addPropertyReal (*p, name, permission, tag);
109
142
}
110
143
111
- void ArduinoIoTCloudClass::addCallback (ArduinoIoTCloudEvent const event, OnCloudEventCallback callback) {
112
- switch (event) {
113
- case ArduinoIoTCloudEvent::SYNC: _on_sync_event_callback = callback; break ;
114
- case ArduinoIoTCloudEvent::CONNECT: _on_connect_event_callback = callback; break ;
115
- case ArduinoIoTCloudEvent::DISCONNECT: _on_disconnect_event_callback = callback; break ;
144
+ /* *****************************************************************************
145
+ * PROTECTED MEMBER FUNCTIONS
146
+ ******************************************************************************/
147
+
148
+ NetworkConnectionState ArduinoIoTCloudClass::checkPhyConnection ()
149
+ {
150
+ NetworkConnectionState const connect_state = _connection->check ();
151
+
152
+ if (_connection->check () != NetworkConnectionState::CONNECTED)
153
+ {
154
+ if (_iot_status == ArduinoIoTConnectionStatus::CONNECTED)
155
+ {
156
+ disconnect ();
157
+ }
116
158
}
117
- };
118
159
119
- void ArduinoIoTCloudClass::execCloudEventCallback (OnCloudEventCallback& callback, void * callback_arg) {
160
+ return connect_state;
161
+ }
162
+
163
+ void ArduinoIoTCloudClass::execCloudEventCallback (ArduinoIoTCloudEvent const event)
164
+ {
165
+ OnCloudEventCallback callback = _cloud_event_callback[static_cast <size_t >(event)];
120
166
if (callback) {
121
- (*callback)(callback_arg );
167
+ (*callback)();
122
168
}
123
169
}
124
- void ArduinoIoTCloudClass::printConnectionStatus (ArduinoIoTConnectionStatus status) {
125
- switch (status) {
170
+
171
+ void ArduinoIoTCloudClass::printConnectionStatus (ArduinoIoTConnectionStatus status)
172
+ {
173
+ switch (status)
174
+ {
126
175
case ArduinoIoTConnectionStatus::IDLE: Debug.print (DBG_INFO, " Arduino IoT Cloud Connection status: IDLE" ); break ;
127
176
case ArduinoIoTConnectionStatus::ERROR: Debug.print (DBG_ERROR, " Arduino IoT Cloud Connection status: ERROR" ); break ;
128
177
case ArduinoIoTConnectionStatus::CONNECTING: Debug.print (DBG_INFO, " Arduino IoT Cloud Connection status: CONNECTING" ); break ;
129
178
case ArduinoIoTConnectionStatus::RECONNECTING: Debug.print (DBG_INFO, " Arduino IoT Cloud Connection status: RECONNECTING" ); break ;
130
179
case ArduinoIoTConnectionStatus::CONNECTED: Debug.print (DBG_INFO, " Arduino IoT Cloud Connection status: CONNECTED" ); break ;
131
180
case ArduinoIoTConnectionStatus::DISCONNECTED: Debug.print (DBG_ERROR, " Arduino IoT Cloud Connection status: DISCONNECTED" ); break ;
132
181
}
133
- }
182
+ }
0 commit comments