@@ -36,7 +36,6 @@ extern bool isResetting;
36
36
extern StaticJsonBuffer<10000 > jsonBuffer;
37
37
extern String apiVersion;
38
38
extern int currentVersion;
39
- extern char firmwareType[];
40
39
41
40
extern int powerMode;
42
41
extern Display* display;
@@ -48,8 +47,6 @@ extern int displayWidth;
48
47
extern int displayRotation;
49
48
extern boolean printMemory;
50
49
51
- extern struct rst_info resetInfo;
52
-
53
50
extern String name;
54
51
extern String board;
55
52
extern String ucType;
@@ -86,27 +83,36 @@ extern VisualisationHelper* vHelper;
86
83
int portNumber = 0 ;
87
84
bool foundPorts = false ;
88
85
86
+ String urlString;
87
+ String requestDataString;
88
+ String message;
89
+ String payload;
90
+
89
91
std::unique_ptr<BearSSL::WiFiClientSecure>sslClient (new BearSSL::WiFiClientSecure);
90
92
91
- bool initSSL ()
93
+ HTTPClient httpClient;
94
+
95
+ void initSSL ()
92
96
{
93
97
sslClient->setBufferSizes (512 , 512 );
94
-
95
98
if (bridgeURL.startsWith (" https://hub" ))
96
99
sslClient->setFingerprint (ssl_fingerprint_prod);
97
100
else if (bridgeURL.startsWith (" https://test" ))
98
101
sslClient->setFingerprint (ssl_fingerprint_test);
99
102
}
100
103
101
- bool registerBridge ()
104
+ void registerBridge ()
102
105
{
106
+ // urlString.reserve(300);
107
+ // requestDataString.reserve(200);
108
+ // payload.reserve(1000);
109
+
103
110
if (display!=NULL )
104
111
{
105
112
display->clear (false );
106
113
display->drawProductLogo ();
107
114
display->drawString (0 , 10 , " Signing in..." );
108
115
}
109
-
110
116
String uuid = getUUID ();
111
117
String networkIP = WiFi.localIP ().toString ();
112
118
@@ -115,14 +121,11 @@ bool registerBridge()
115
121
Serial.println (" Registering Bridge " + uuid + " to Bridge located at " + bridgeURL);
116
122
if (WiFi.status () == WL_CONNECTED) {
117
123
118
- HTTPClient httpClient;
119
-
120
- String urlString = bridgeURL + " /" + apiVersion + " /bridge/" ;
124
+ urlString = bridgeURL + " /" + apiVersion + " /bridge/" ;
121
125
122
126
httpClient.begin (*sslClient, urlString);
123
127
httpClient.addHeader (" Content-Type" , " application/json" );
124
128
httpClient.setTimeout (5000 );
125
-
126
129
String pwdHashString = " " ;
127
130
128
131
if (pwdHash[0 ]!=0xff )
@@ -131,28 +134,28 @@ bool registerBridge()
131
134
}
132
135
133
136
String message = " {\" uuid\" :\" " + uuid + " \" ,\" networkIP\" :\" " + networkIP + " \" ,\" name\" :\" " + name + " \" ,\" vendor\" :\" " + board + " \" ,\" type\" :\" " + ucType + " \" ,\" firmwareVersion\" :" + currentVersion + " ,\" secPassword\" :\" " + pwdHashString + " \" }" ;
134
-
135
137
Serial.print (" p" );
136
138
int httpCode = httpClient.POST (message);
137
139
138
140
if (httpCode == HTTP_CODE_OK)
139
141
{
140
142
Serial.print (" o" );
141
- String payload = httpClient.getString ();
143
+ payload = httpClient.getString ();
144
+
142
145
if (payload == uuid)
143
146
{
144
147
registerRetry=0 ;
145
148
state = Init_Configuration;
146
149
httpClient.end ();
147
- return true ;
150
+ return ;
148
151
}
149
152
}
150
153
else if (httpCode == HTTP_CODE_UPGRADE_REQUIRED)
151
154
{
152
155
Serial.print (" u" );
153
156
httpClient.end ();
154
157
restart ();
155
- return false ;
158
+ return ;
156
159
}
157
160
else
158
161
{
@@ -168,20 +171,20 @@ bool registerBridge()
168
171
httpClient.end ();
169
172
Serial.println (" Registering not possible, going back to Deep Sleep for 5 minutes." );
170
173
trySleep (300000000 );
171
- return false ;
174
+ return ;
172
175
}
173
176
else if (registerRetry>=25 )
174
177
{
175
178
httpClient.end ();
176
179
restart ();
177
- return false ;
180
+ return ;
178
181
}
179
182
180
183
}
181
184
}
182
185
183
186
httpClient.end ();
184
- return false ;
187
+ return ;
185
188
186
189
}
187
190
else
@@ -190,14 +193,14 @@ bool registerBridge()
190
193
Serial.println (" Register failed..? - WIFI:" + WiFi.status ());
191
194
Serial.println (" Trying to reconnect... " + WiFi.status ());
192
195
WiFi.reconnect ();
193
- int conRes = WiFi.waitForConnectResult ();
196
+ WiFi.waitForConnectResult ();
194
197
}
195
198
196
199
}
197
200
else
198
201
{
199
202
Serial.println (" Failed to register Bridge" );
200
- return false ;
203
+ return ;
201
204
}
202
205
203
206
}
@@ -340,20 +343,18 @@ void restart() {
340
343
wdt_reset ();
341
344
}
342
345
343
- bool getBridgeConfig () {
346
+ void getBridgeConfig () {
344
347
345
348
Serial.println (" Getting Bridge Config from " + bridgeURL);
346
349
347
- HTTPClient httpClient;
348
-
349
350
if (display!=NULL )
350
351
{
351
352
display->clear (false );
352
353
display->drawProductLogo ();
353
354
display->drawString (0 , 10 , " Waiting for config..." );
354
355
}
355
356
356
- String urlString = bridgeURL + " /" + apiVersion + " /bridge/" + getUUID ();
357
+ urlString = bridgeURL + " /" + apiVersion + " /bridge/" + getUUID ();
357
358
358
359
httpClient.begin (*sslClient, urlString);
359
360
@@ -365,7 +366,7 @@ bool getBridgeConfig() {
365
366
if (httpCode == HTTP_CODE_OK)
366
367
{
367
368
Serial.print (" o" );
368
- String payload = httpClient.getString ();
369
+ payload = httpClient.getString ();
369
370
httpClient.end ();
370
371
371
372
portNumber = 0 ;
@@ -414,8 +415,8 @@ bool getBridgeConfig() {
414
415
{
415
416
Serial.println (" Fetching port page " +String (i));
416
417
417
- String pageUrlString = bridgeURL + " /" + apiVersion + " /bridge/" + getUUID () + " /" + String (i);
418
- httpClient.begin (*sslClient, pageUrlString );
418
+ urlString = bridgeURL + " /" + apiVersion + " /bridge/" + getUUID () + " /" + String (i);
419
+ httpClient.begin (*sslClient, urlString );
419
420
420
421
httpClient.addHeader (" Content-Type" , " application/json" );
421
422
@@ -426,12 +427,12 @@ bool getBridgeConfig() {
426
427
{
427
428
Serial.print (" o" );
428
429
429
- String pagePayload = httpClient.getString ();
430
+ payload = httpClient.getString ();
430
431
httpClient.end ();
431
432
432
- if (pagePayload != NULL && pagePayload != " " )
433
+ if (payload != NULL && payload != " " )
433
434
{
434
- JsonObject& bridgePortConfig = jsonBuffer.parseObject (pagePayload );
435
+ JsonObject& bridgePortConfig = jsonBuffer.parseObject (payload );
435
436
if (bridgePortConfig.containsKey (" p" ))
436
437
{
437
438
JsonArray& pagedPortConfigArray = bridgePortConfig[" p" ];
@@ -462,7 +463,7 @@ bool getBridgeConfig() {
462
463
if (foundPorts)
463
464
state = Operating;
464
465
465
- return true ;
466
+ return ;
466
467
}
467
468
}
468
469
@@ -485,7 +486,7 @@ bool getBridgeConfig() {
485
486
}
486
487
487
488
488
- return false ;
489
+ return ;
489
490
490
491
}
491
492
@@ -757,10 +758,9 @@ void configureDisplayValueData(int portNumber, JsonObject& portConfig) {
757
758
}
758
759
759
760
void configureExpansionPort (int portNumber, JsonObject& portConfig) {
760
- Serial.println (" Configure Expansion Port: " );
761
+ Serial.print (" Configure Expansion Port: " );
761
762
762
- portConfig.prettyPrintTo (Serial);
763
- Serial.println (" " );
763
+ // portConfig.prettyPrintTo(Serial);
764
764
765
765
SensorCalculation* calc = NULL ;
766
766
@@ -845,7 +845,7 @@ void configureExpansionPort(int portNumber, JsonObject& portConfig) {
845
845
else if (portConfig[" et" ] == " DHT11" || portConfig[" et" ] == " DHT21" || portConfig[" et" ] == " DHT22" )
846
846
{
847
847
uint8_t port = translateGPIOPort (portConfig[" ec1" ]);
848
- if (port>= 0 )
848
+ if (port< 999 )
849
849
{
850
850
addSensor (new SensorDHT (portConfig[" id" ], portConfig[" c" ], portConfig[" sn" ], portConfig[" n" ], portConfig[" et" ], port, refreshInterval, postDataInterval, portConfig[" s" ][" svt" ], calc));
851
851
}
@@ -883,7 +883,7 @@ void configurePort(int portNumber, JsonObject& portConfig) {
883
883
884
884
Serial.println (" Configure Onboard Port:" + port);
885
885
886
- portConfig.prettyPrintTo (Serial);
886
+ // portConfig.prettyPrintTo(Serial);
887
887
Serial.println (" " );
888
888
889
889
SensorCalculation* calc = NULL ;
@@ -967,7 +967,7 @@ void configurePort(int portNumber, JsonObject& portConfig) {
967
967
else
968
968
{
969
969
uint8_t intPort = translateGPIOPort (port);
970
- if (intPort!=- 1 )
970
+ if (intPort< 999 )
971
971
{
972
972
Serial.println (" Setting up Digital Switch at Port: " + port);
973
973
addSensor (new SensorDigitalSwitch (portConfig[" id" ], portConfig[" c" ], portConfig[" sn" ], portConfig[" n" ], intPort, refreshInterval, postDataInterval, calc));
@@ -1200,7 +1200,7 @@ uint8_t translateGPIOPort(String gpioPort)
1200
1200
if (gpioPort==" 16" )
1201
1201
return 16 ;
1202
1202
1203
- return - 1 ;
1203
+ return 999 ;
1204
1204
}
1205
1205
1206
1206
boolean postSensorData (Data* data[], int dataCount)
@@ -1267,9 +1267,7 @@ boolean postSensorData(Data* data[], int dataCount)
1267
1267
1268
1268
boolean postSensorDataPart (Data* data[], int startIndex, int endIndex)
1269
1269
{
1270
- HTTPClient httpClient;
1271
-
1272
- String requestDataString = " " ;
1270
+ requestDataString = " " ;
1273
1271
1274
1272
for (int i = startIndex; i <= endIndex; i++)
1275
1273
{
@@ -1279,7 +1277,7 @@ boolean postSensorDataPart(Data* data[], int startIndex, int endIndex)
1279
1277
requestDataString = requestDataString + " ," + data[i]->getRequestString ();
1280
1278
}
1281
1279
1282
- String urlString = bridgeURL + " /" + apiVersion + " /data/" + getUUID () + " /" + requestDataString;
1280
+ urlString = bridgeURL + " /" + apiVersion + " /data/" + getUUID () + " /" + requestDataString;
1283
1281
1284
1282
httpClient.begin (*sslClient, urlString);
1285
1283
@@ -1307,7 +1305,7 @@ boolean postSensorDataPart(Data* data[], int startIndex, int endIndex)
1307
1305
display->drawConnected (true );
1308
1306
}
1309
1307
1310
- String payload = httpClient.getString ();
1308
+ payload = httpClient.getString ();
1311
1309
httpClient.end ();
1312
1310
1313
1311
if (payload!=NULL && displayType!=0 )
0 commit comments