@@ -36,7 +36,6 @@ extern bool isResetting;
3636extern StaticJsonBuffer<10000 > jsonBuffer;
3737extern String apiVersion;
3838extern int currentVersion;
39- extern char firmwareType[];
4039
4140extern int powerMode;
4241extern Display* display;
@@ -48,8 +47,6 @@ extern int displayWidth;
4847extern int displayRotation;
4948extern boolean printMemory;
5049
51- extern struct rst_info resetInfo;
52-
5350extern String name;
5451extern String board;
5552extern String ucType;
@@ -86,27 +83,36 @@ extern VisualisationHelper* vHelper;
8683int portNumber = 0 ;
8784bool foundPorts = false ;
8885
86+ String urlString;
87+ String requestDataString;
88+ String message;
89+ String payload;
90+
8991std::unique_ptr<BearSSL::WiFiClientSecure>sslClient (new BearSSL::WiFiClientSecure);
9092
91- bool initSSL ()
93+ HTTPClient httpClient;
94+
95+ void initSSL ()
9296{
9397 sslClient->setBufferSizes (512 , 512 );
94-
9598 if (bridgeURL.startsWith (" https://hub" ))
9699 sslClient->setFingerprint (ssl_fingerprint_prod);
97100 else if (bridgeURL.startsWith (" https://test" ))
98101 sslClient->setFingerprint (ssl_fingerprint_test);
99102}
100103
101- bool registerBridge ()
104+ void registerBridge ()
102105{
106+ // urlString.reserve(300);
107+ // requestDataString.reserve(200);
108+ // payload.reserve(1000);
109+
103110 if (display!=NULL )
104111 {
105112 display->clear (false );
106113 display->drawProductLogo ();
107114 display->drawString (0 , 10 , " Signing in..." );
108115 }
109-
110116 String uuid = getUUID ();
111117 String networkIP = WiFi.localIP ().toString ();
112118
@@ -115,14 +121,11 @@ bool registerBridge()
115121 Serial.println (" Registering Bridge " + uuid + " to Bridge located at " + bridgeURL);
116122 if (WiFi.status () == WL_CONNECTED) {
117123
118- HTTPClient httpClient;
119-
120- String urlString = bridgeURL + " /" + apiVersion + " /bridge/" ;
124+ urlString = bridgeURL + " /" + apiVersion + " /bridge/" ;
121125
122126 httpClient.begin (*sslClient, urlString);
123127 httpClient.addHeader (" Content-Type" , " application/json" );
124128 httpClient.setTimeout (5000 );
125-
126129 String pwdHashString = " " ;
127130
128131 if (pwdHash[0 ]!=0xff )
@@ -131,28 +134,28 @@ bool registerBridge()
131134 }
132135
133136 String message = " {\" uuid\" :\" " + uuid + " \" ,\" networkIP\" :\" " + networkIP + " \" ,\" name\" :\" " + name + " \" ,\" vendor\" :\" " + board + " \" ,\" type\" :\" " + ucType + " \" ,\" firmwareVersion\" :" + currentVersion + " ,\" secPassword\" :\" " + pwdHashString + " \" }" ;
134-
135137 Serial.print (" p" );
136138 int httpCode = httpClient.POST (message);
137139
138140 if (httpCode == HTTP_CODE_OK)
139141 {
140142 Serial.print (" o" );
141- String payload = httpClient.getString ();
143+ payload = httpClient.getString ();
144+
142145 if (payload == uuid)
143146 {
144147 registerRetry=0 ;
145148 state = Init_Configuration;
146149 httpClient.end ();
147- return true ;
150+ return ;
148151 }
149152 }
150153 else if (httpCode == HTTP_CODE_UPGRADE_REQUIRED)
151154 {
152155 Serial.print (" u" );
153156 httpClient.end ();
154157 restart ();
155- return false ;
158+ return ;
156159 }
157160 else
158161 {
@@ -168,20 +171,20 @@ bool registerBridge()
168171 httpClient.end ();
169172 Serial.println (" Registering not possible, going back to Deep Sleep for 5 minutes." );
170173 trySleep (300000000 );
171- return false ;
174+ return ;
172175 }
173176 else if (registerRetry>=25 )
174177 {
175178 httpClient.end ();
176179 restart ();
177- return false ;
180+ return ;
178181 }
179182
180183 }
181184 }
182185
183186 httpClient.end ();
184- return false ;
187+ return ;
185188
186189 }
187190 else
@@ -190,14 +193,14 @@ bool registerBridge()
190193 Serial.println (" Register failed..? - WIFI:" + WiFi.status ());
191194 Serial.println (" Trying to reconnect... " + WiFi.status ());
192195 WiFi.reconnect ();
193- int conRes = WiFi.waitForConnectResult ();
196+ WiFi.waitForConnectResult ();
194197 }
195198
196199 }
197200 else
198201 {
199202 Serial.println (" Failed to register Bridge" );
200- return false ;
203+ return ;
201204 }
202205
203206}
@@ -340,20 +343,18 @@ void restart() {
340343 wdt_reset ();
341344}
342345
343- bool getBridgeConfig () {
346+ void getBridgeConfig () {
344347
345348 Serial.println (" Getting Bridge Config from " + bridgeURL);
346349
347- HTTPClient httpClient;
348-
349350 if (display!=NULL )
350351 {
351352 display->clear (false );
352353 display->drawProductLogo ();
353354 display->drawString (0 , 10 , " Waiting for config..." );
354355 }
355356
356- String urlString = bridgeURL + " /" + apiVersion + " /bridge/" + getUUID ();
357+ urlString = bridgeURL + " /" + apiVersion + " /bridge/" + getUUID ();
357358
358359 httpClient.begin (*sslClient, urlString);
359360
@@ -365,7 +366,7 @@ bool getBridgeConfig() {
365366 if (httpCode == HTTP_CODE_OK)
366367 {
367368 Serial.print (" o" );
368- String payload = httpClient.getString ();
369+ payload = httpClient.getString ();
369370 httpClient.end ();
370371
371372 portNumber = 0 ;
@@ -414,8 +415,8 @@ bool getBridgeConfig() {
414415 {
415416 Serial.println (" Fetching port page " +String (i));
416417
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 );
419420
420421 httpClient.addHeader (" Content-Type" , " application/json" );
421422
@@ -426,12 +427,12 @@ bool getBridgeConfig() {
426427 {
427428 Serial.print (" o" );
428429
429- String pagePayload = httpClient.getString ();
430+ payload = httpClient.getString ();
430431 httpClient.end ();
431432
432- if (pagePayload != NULL && pagePayload != " " )
433+ if (payload != NULL && payload != " " )
433434 {
434- JsonObject& bridgePortConfig = jsonBuffer.parseObject (pagePayload );
435+ JsonObject& bridgePortConfig = jsonBuffer.parseObject (payload );
435436 if (bridgePortConfig.containsKey (" p" ))
436437 {
437438 JsonArray& pagedPortConfigArray = bridgePortConfig[" p" ];
@@ -462,7 +463,7 @@ bool getBridgeConfig() {
462463 if (foundPorts)
463464 state = Operating;
464465
465- return true ;
466+ return ;
466467 }
467468 }
468469
@@ -485,7 +486,7 @@ bool getBridgeConfig() {
485486 }
486487
487488
488- return false ;
489+ return ;
489490
490491}
491492
@@ -757,10 +758,9 @@ void configureDisplayValueData(int portNumber, JsonObject& portConfig) {
757758}
758759
759760void configureExpansionPort (int portNumber, JsonObject& portConfig) {
760- Serial.println (" Configure Expansion Port: " );
761+ Serial.print (" Configure Expansion Port: " );
761762
762- portConfig.prettyPrintTo (Serial);
763- Serial.println (" " );
763+ // portConfig.prettyPrintTo(Serial);
764764
765765 SensorCalculation* calc = NULL ;
766766
@@ -845,7 +845,7 @@ void configureExpansionPort(int portNumber, JsonObject& portConfig) {
845845 else if (portConfig[" et" ] == " DHT11" || portConfig[" et" ] == " DHT21" || portConfig[" et" ] == " DHT22" )
846846 {
847847 uint8_t port = translateGPIOPort (portConfig[" ec1" ]);
848- if (port>= 0 )
848+ if (port< 999 )
849849 {
850850 addSensor (new SensorDHT (portConfig[" id" ], portConfig[" c" ], portConfig[" sn" ], portConfig[" n" ], portConfig[" et" ], port, refreshInterval, postDataInterval, portConfig[" s" ][" svt" ], calc));
851851 }
@@ -883,7 +883,7 @@ void configurePort(int portNumber, JsonObject& portConfig) {
883883
884884 Serial.println (" Configure Onboard Port:" + port);
885885
886- portConfig.prettyPrintTo (Serial);
886+ // portConfig.prettyPrintTo(Serial);
887887 Serial.println (" " );
888888
889889 SensorCalculation* calc = NULL ;
@@ -967,7 +967,7 @@ void configurePort(int portNumber, JsonObject& portConfig) {
967967 else
968968 {
969969 uint8_t intPort = translateGPIOPort (port);
970- if (intPort!=- 1 )
970+ if (intPort< 999 )
971971 {
972972 Serial.println (" Setting up Digital Switch at Port: " + port);
973973 addSensor (new SensorDigitalSwitch (portConfig[" id" ], portConfig[" c" ], portConfig[" sn" ], portConfig[" n" ], intPort, refreshInterval, postDataInterval, calc));
@@ -1200,7 +1200,7 @@ uint8_t translateGPIOPort(String gpioPort)
12001200 if (gpioPort==" 16" )
12011201 return 16 ;
12021202
1203- return - 1 ;
1203+ return 999 ;
12041204}
12051205
12061206boolean postSensorData (Data* data[], int dataCount)
@@ -1267,9 +1267,7 @@ boolean postSensorData(Data* data[], int dataCount)
12671267
12681268boolean postSensorDataPart (Data* data[], int startIndex, int endIndex)
12691269{
1270- HTTPClient httpClient;
1271-
1272- String requestDataString = " " ;
1270+ requestDataString = " " ;
12731271
12741272 for (int i = startIndex; i <= endIndex; i++)
12751273 {
@@ -1279,7 +1277,7 @@ boolean postSensorDataPart(Data* data[], int startIndex, int endIndex)
12791277 requestDataString = requestDataString + " ," + data[i]->getRequestString ();
12801278 }
12811279
1282- String urlString = bridgeURL + " /" + apiVersion + " /data/" + getUUID () + " /" + requestDataString;
1280+ urlString = bridgeURL + " /" + apiVersion + " /data/" + getUUID () + " /" + requestDataString;
12831281
12841282 httpClient.begin (*sslClient, urlString);
12851283
@@ -1307,7 +1305,7 @@ boolean postSensorDataPart(Data* data[], int startIndex, int endIndex)
13071305 display->drawConnected (true );
13081306 }
13091307
1310- String payload = httpClient.getString ();
1308+ payload = httpClient.getString ();
13111309 httpClient.end ();
13121310
13131311 if (payload!=NULL && displayType!=0 )
0 commit comments