1515 a commercial license, send an email to [email protected] . 1616*/
1717
18+ /* *****************************************************************************
19+ * INCLUDE
20+ ******************************************************************************/
21+
1822#include < ArduinoIoTCloud.h>
1923
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+ {
2135 addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
2236}
2337
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+ {
2540 Permission permission = Permission::ReadWrite;
2641 if (permission_type == READ) {
2742 permission = Permission::Read;
@@ -32,102 +47,136 @@ void ArduinoIoTCloudClass::addPropertyReal(ArduinoCloudProperty& property, Strin
3247 }
3348
3449 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);
3651 } 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);
3853 }
3954}
4055
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+ {
4258 addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
4359}
4460
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+ {
4663 ArduinoCloudProperty* p = new CloudWrapperBool (property);
4764 addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
4865}
49- ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, Permission const permission) {
66+
67+ ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (bool & property, String name, Permission const permission)
68+ {
5069 return addPropertyReal (property, name, -1 , permission);
5170}
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+ {
5374 ArduinoCloudProperty* p = new CloudWrapperBool (property);
54- return Thing .addPropertyReal (*p, name, permission, tag);
75+ return _thing .addPropertyReal (*p, name, permission, tag);
5576}
5677
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+ {
5880 addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
5981}
6082
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+ {
6285 ArduinoCloudProperty* p = new CloudWrapperFloat (property);
6386 addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
6487}
6588
66- ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (float & property, String name, Permission const permission) {
89+ ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (float & property, String name, Permission const permission)
90+ {
6791 return addPropertyReal (property, name, -1 , permission);
6892}
6993
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+ {
7196 ArduinoCloudProperty* p = new CloudWrapperFloat (property);
72- return Thing .addPropertyReal (*p, name, permission, tag);
97+ return _thing .addPropertyReal (*p, name, permission, tag);
7398}
7499
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+ {
76102 addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
77103}
78104
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+ {
80107 ArduinoCloudProperty* p = new CloudWrapperInt (property);
81108 addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
82109}
83110
84- ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (int & property, String name, Permission const permission) {
111+ ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (int & property, String name, Permission const permission)
112+ {
85113 return addPropertyReal (property, name, -1 , permission);
86114}
87115
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+ {
89118 ArduinoCloudProperty* p = new CloudWrapperInt (property);
90- return Thing .addPropertyReal (*p, name, permission, tag);
119+ return _thing .addPropertyReal (*p, name, permission, tag);
91120}
92121
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+ {
94124 addPropertyReal (property, name, -1 , permission_type, seconds, fn, minDelta, synFn);
95125}
96126
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+ {
98129 ArduinoCloudProperty* p = new CloudWrapperString (property);
99130 addPropertyReal (*p, name, tag, permission_type, seconds, fn, minDelta, synFn);
100131}
101132
102- ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (String& property, String name, Permission const permission) {
133+ ArduinoCloudProperty& ArduinoIoTCloudClass::addPropertyReal (String& property, String name, Permission const permission)
134+ {
103135 return addPropertyReal (property, name, -1 , permission);
104136}
105137
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+ {
107140 ArduinoCloudProperty* p = new CloudWrapperString (property);
108- return Thing .addPropertyReal (*p, name, permission, tag);
141+ return _thing .addPropertyReal (*p, name, permission, tag);
109142}
110143
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+ }
116158 }
117- };
118159
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)];
120166 if (callback) {
121- (*callback)(callback_arg );
167+ (*callback)();
122168 }
123169}
124- void ArduinoIoTCloudClass::printConnectionStatus (ArduinoIoTConnectionStatus status) {
125- switch (status) {
170+
171+ void ArduinoIoTCloudClass::printConnectionStatus (ArduinoIoTConnectionStatus status)
172+ {
173+ switch (status)
174+ {
126175 case ArduinoIoTConnectionStatus::IDLE: Debug.print (DBG_INFO, " Arduino IoT Cloud Connection status: IDLE" ); break ;
127176 case ArduinoIoTConnectionStatus::ERROR: Debug.print (DBG_ERROR, " Arduino IoT Cloud Connection status: ERROR" ); break ;
128177 case ArduinoIoTConnectionStatus::CONNECTING: Debug.print (DBG_INFO, " Arduino IoT Cloud Connection status: CONNECTING" ); break ;
129178 case ArduinoIoTConnectionStatus::RECONNECTING: Debug.print (DBG_INFO, " Arduino IoT Cloud Connection status: RECONNECTING" ); break ;
130179 case ArduinoIoTConnectionStatus::CONNECTED: Debug.print (DBG_INFO, " Arduino IoT Cloud Connection status: CONNECTED" ); break ;
131180 case ArduinoIoTConnectionStatus::DISCONNECTED: Debug.print (DBG_ERROR, " Arduino IoT Cloud Connection status: DISCONNECTED" ); break ;
132181 }
133- }
182+ }
0 commit comments