ESP3D  3.0
Firmware for ESP boards connected to 3D Printer
ESP420.cpp
Go to the documentation of this file.
1 /*
2  ESP420.cpp - ESP3D command class
3 
4  Copyright (c) 2014 Luc Lebosse. All rights reserved.
5 
6  This library is free software; you can redistribute it and/or
7  modify it under the terms of the GNU Lesser General Public
8  License as published by the Free Software Foundation; either
9  version 2.1 of the License, or (at your option) any later version.
10 
11  This library is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public
17  License along with this library; if not, write to the Free Software
18  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20 #include "../../include/esp3d_config.h"
21 #include "../commands.h"
22 #include "../esp3doutput.h"
23 #include "../settings_esp3d.h"
24 #include "../../modules/authentication/authentication_service.h"
25 #include "../../modules/serial/serial_service.h"
26 #ifdef FILESYSTEM_FEATURE
27 #include "../../modules/filesystem/esp_filesystem.h"
28 #endif //FILESYSTEM_FEATURE
29 #if defined (WIFI_FEATURE) || defined(ETH_FEATURE) ||defined(BLUETOOTH_FEATURE)
30 #include "../../modules/network/netconfig.h"
31 #if defined (WIFI_FEATURE)
32 #include "../../modules/wifi/wificonfig.h"
33 #endif //WIFI_FEATURE
34 #if defined (ETH_FEATURE)
35 #include "../../modules/ethernet/ethconfig.h"
36 #endif //ETH_FEATURE
37 #if defined (BLUETOOTH_FEATURE)
38 #include "../../modules/bluetooth/BT_service.h"
39 #endif //BLUETOOTH_FEATURE
40 #endif //WIFI_FEATURE || ETH_FEATURE || BLUETOOTH_FEATURE
41 #ifdef HTTP_FEATURE
42 #include "../../modules/http/http_server.h"
43 #endif //HTTP_FEATURE
44 #ifdef TELNET_FEATURE
45 #include "../../modules/telnet/telnet_server.h"
46 #endif //TELNET_FEATURE
47 #ifdef FTP_FEATURE
48 #include "../../modules/ftp/FtpServer.h"
49 #endif //FTP_FEATURE
50 #ifdef WS_DATA_FEATURE
51 #include "../../modules/websocket/websocket_server.h"
52 #endif //WS_DATA_FEATURE
53 #if defined (TIMESTAMP_FEATURE)
54 #include "../../modules/time/time_server.h"
55 #endif //TIMESTAMP_FEATURE
56 #if defined (DHT_DEVICE)
57 #include "../../modules/dht/dht.h"
58 #endif //DHT_DEVICE
59 #ifdef NOTIFICATION_FEATURE
60 #include "../../modules/notifications/notifications_service.h"
61 #endif //NOTIFICATION_FEATURE
62 #ifdef BUZZER_DEVICE
63 #include "../../modules/buzzer/buzzer.h"
64 #endif //BUZZER_DEVICE
65 #ifdef CAMERA_DEVICE
66 #include "../../modules/camera/camera.h"
67 #endif //CAMERA_DEVICE
68 #ifdef SD_DEVICE
69 #include "../../modules/filesystem/esp_sd.h"
70 #endif //SD_DEVICE
71 
72 //Get ESP current status
73 //output is JSON or plain text according parameter
74 //[ESP420]<plain>
75 bool Commands::ESP420(const char* cmd_params, level_authenticate_type auth_type, ESP3DOutput * output)
76 {
77  bool response = true;
78  String parameter;
79 #ifdef AUTHENTICATION_FEATURE
80  if (auth_type == LEVEL_GUEST) {
81  output->printERROR("Wrong authentication!", 401);
82  return false;
83  }
84 #else
85  (void)auth_type;
86 #endif //AUTHENTICATION_FEATURE
87  bool plain = hastag(cmd_params,"plain");
88  //TODO add plain / JSON support
89  if (!plain) {
90  output->print ("{\"Status\":[");
91  }
92  //Chip ID
93  if (!plain) {
94  output->print ("{\"id\":\"");
95  }
96  output->print ("Chip ID");
97  if (!plain) {
98  output->print ("\",\"value\":\"");
99  } else {
100  output->print (": ");
101  }
102  output->printf("%d",Hal::getChipID());
103  if (!plain) {
104  output->print ("\"}");
105  } else {
106  output->printLN("");
107  }
108  //CPU freq
109  if (!plain) {
110  output->print (",{\"id\":\"");
111  }
112  output->print ("CPU Frequency");
113  if (!plain) {
114  output->print ("\",\"value\":\"");
115  } else {
116  output->print (": ");
117  }
118  output->printf("%d Mhz",ESP.getCpuFreqMHz());
119  if (!plain) {
120  output->print ("\"}");
121  } else {
122  output->printLN("");
123  }
124  //CPU temp
126  if (!plain) {
127  output->print (",{\"id\":\"");
128  }
129  output->print ("CPU Temperature");
130  if (!plain) {
131  output->print ("\",\"value\":\"");
132  } else {
133  output->print (": ");
134  }
135  output->printf("%s %s",String (Hal::temperature(), 1).c_str(), (output->client() == ESP_HTTP_CLIENT)?"&deg;C":"C");
136  if (!plain) {
137  output->print ("\"}");
138  } else {
139  output->printLN("");
140  }
141  }
142  //Free Memory
143  if (!plain) {
144  output->print (",{\"id\":\"");
145  }
146  output->print ("Free memory");
147  if (!plain) {
148  output->print ("\",\"value\":\"");
149  } else {
150  output->print (": ");
151  }
152  output->print(ESP_FileSystem::formatBytes (ESP.getFreeHeap()).c_str());
153  if (!plain) {
154  output->print ("\"}");
155  } else {
156  output->printLN("");
157  }
158  //SDK version
159  if (!plain) {
160  output->print (",{\"id\":\"");
161  }
162  output->print ("SDK");
163  if (!plain) {
164  output->print ("\",\"value\":\"");
165  } else {
166  output->print (": ");
167  }
168  output->printf("%s", ESP.getSdkVersion());
169  if (!plain) {
170  output->print ("\"}");
171  } else {
172  output->printLN("");
173  }
174  //Flash size
175  if (!plain) {
176  output->print (",{\"id\":\"");
177  }
178  output->print ("Flash Size");
179  if (!plain) {
180  output->print ("\",\"value\":\"");
181  } else {
182  output->print (": ");
183  }
184  output->print(ESP_FileSystem::formatBytes (ESP.getFlashChipSize()).c_str());
185  if (!plain) {
186  output->print ("\"}");
187  } else {
188  output->printLN("");
189  }
190 
191 #if (defined (WIFI_FEATURE) || defined (ETH_FEATURE)) && (defined(OTA_FEATURE) || defined(WEB_UPDATE_FEATURE))
192  //update space
193  if (!plain) {
194  output->print (",{\"id\":\"");
195  }
196  output->print ("Available Size for update");
197  if (!plain) {
198  output->print ("\",\"value\":\"");
199  } else {
200  output->print (": ");
201  }
203  if (!plain) {
204  output->print ("\"}");
205  } else {
206  output->printLN("");
207  }
208 #endif //WIFI_FEATURE || ETH_FEATURE
209 #if defined(FILESYSTEM_FEATURE)
210  //FileSystem type
211  if (!plain) {
212  output->print (",{\"id\":\"");
213  }
214  output->print ("Filesystem type");
215  if (!plain) {
216  output->print ("\",\"value\":\"");
217  } else {
218  output->print (": ");
219  }
220  output->print (ESP_FileSystem::FilesystemName());
221  if (!plain) {
222  output->print ("\"}");
223  } else {
224  output->printLN("");
225  }
226  //FileSystem capacity
227  if (!plain) {
228  output->print (",{\"id\":\"");
229  }
230  output->print ("Filesystem usage");
231  if (!plain) {
232  output->print ("\",\"value\":\"");
233  } else {
234  output->print (": ");
235  }
236  output->print (ESP_FileSystem::formatBytes (ESP_FileSystem::usedBytes()).c_str());
237  output->print ("/");
238  output->print (ESP_FileSystem::formatBytes (ESP_FileSystem::totalBytes()).c_str());
239  if (!plain) {
240  output->print ("\"}");
241  } else {
242  output->printLN("");
243  }
244 #endif //FILESYSTEM_FEATURE
245  //baud rate
246  if (!plain) {
247  output->print (",{\"id\":\"");
248  }
249  output->print ("Baud rate");
250  if (!plain) {
251  output->print ("\",\"value\":\"");
252  } else {
253  output->print (": ");
254  }
255  output->printf ("%ld", serial_service.baudRate());
256  if (!plain) {
257  output->print ("\"}");
258  } else {
259  output->printLN("");
260  }
261 #if defined (WIFI_FEATURE)
262  if (WiFi.getMode() != WIFI_OFF) {
263  //sleep mode
264  if (!plain) {
265  output->print (",{\"id\":\"");
266  }
267  output->print ("Sleep mode");
268  if (!plain) {
269  output->print ("\",\"value\":\"");
270  } else {
271  output->print (": ");
272  }
273  output->print (WiFiConfig::getSleepModeString ());
274  if (!plain) {
275  output->print ("\"}");
276  } else {
277  output->printLN("");
278  }
279  }
280 #endif //WIFI_FEATURE
281 #if defined (WIFI_FEATURE) || defined (ETH_FEATURE)
282  //Wifi enabled
283  if (!plain) {
284  output->print (",{\"id\":\"");
285  }
286  output->print ("WiFi");
287  if (!plain) {
288  output->print ("\",\"value\":\"");
289  } else {
290  output->print (": ");
291  }
292  output->print ((WiFi.getMode() == WIFI_OFF)?"Disabled":"Enabled");
293  if (!plain) {
294  output->print ("\"}");
295  } else {
296  output->printLN("");
297  }
298 #if defined (ETH_FEATURE)
299  //Ethernet enabled
300  if (!plain) {
301  output->print (",{\"id\":\"");
302  }
303  output->print ("Ethernet");
304  if (!plain) {
305  output->print ("\",\"value\":\"");
306  } else {
307  output->print (": ");
308  }
309  output->print ((EthConfig::started())?"Enabled":"Disabled");
310  if (!plain) {
311  output->print ("\"}");
312  } else {
313  output->printLN("");
314  }
315 #endif //ETH_FEATURE
316 #if defined (BLUETOOTH_FEATURE)
317  //BT enabled
318  if (!plain) {
319  output->print (",{\"id\":\"");
320  }
321  output->print("Bluetooth");
322  if (!plain) {
323  output->print ("\",\"value\":\"");
324  } else {
325  output->print (": ");
326  }
327  output->print ((bt_service.started())?"Enabled":"Disabled");
328  if (!plain) {
329  output->print ("\"}");
330  } else {
331  output->printLN("");
332  }
333 #endif //BLUETOOTH_FEATURE
334  //Hostname
335  if (!plain) {
336  output->print (",{\"id\":\"");
337  }
338  output->print ("Hostname");
339  if (!plain) {
340  output->print ("\",\"value\":\"");
341  } else {
342  output->print (": ");
343  }
344  output->print (NetConfig::hostname());
345  if (!plain) {
346  output->print ("\"}");
347  } else {
348  output->printLN("");
349  }
350 #if defined (HTTP_FEATURE)
351  if (HTTP_Server::started()) {
352  //http port
353  if (!plain) {
354  output->print (",{\"id\":\"");
355  }
356  output->print ("HTTP port");
357  if (!plain) {
358  output->print ("\",\"value\":\"");
359  } else {
360  output->print (": ");
361  }
362  output->printf ("%d",HTTP_Server::port());
363  if (!plain) {
364  output->print ("\"}");
365  } else {
366  output->printLN("");
367  }
368  }
369 #endif //HTTP_FEATURE
370 #if defined (TELNET_FEATURE)
371  if (telnet_server.started()) {
372  //telnet port
373  if (!plain) {
374  output->print (",{\"id\":\"");
375  }
376  output->print ("Telnet port");
377  if (!plain) {
378  output->print ("\",\"value\":\"");
379  } else {
380  output->print (": ");
381  }
382  output->printf ("%d",telnet_server.port());
383  if (!plain) {
384  output->print ("\"}");
385  } else {
386  output->printLN("");
387  }
388  }
389  if (telnet_server.isConnected()) {
390  if (!plain) {
391  output->print (",{\"id\":\"");
392  }
393  output->print ("Telnet Client");
394  if (!plain) {
395  output->print ("\",\"value\":\"");
396  } else {
397  output->print (": ");
398  }
399  output->printf ("%s",telnet_server.clientIPAddress());
400  if (!plain) {
401  output->print ("\"}");
402  } else {
403  output->printLN("");
404  }
405  }
406 #endif //TELNET_FEATURE
407 #if defined (FTP_FEATURE)
408  if (ftp_server.started()) {
409  //ftp ports
410  if (!plain) {
411  output->print (",{\"id\":\"");
412  }
413  output->print ("Ftp ports (ctrl, active, passive)");
414  if (!plain) {
415  output->print ("\",\"value\":\"");
416  } else {
417  output->print (": ");
418  }
419  output->printf ("%d, %d, %d",ftp_server.ctrlport(),ftp_server.dataactiveport(), ftp_server.datapassiveport());
420  if (!plain) {
421  output->print ("\"}");
422  } else {
423  output->printLN("");
424  }
425  }
426  if (ftp_server.isConnected()) {
427  if (!plain) {
428  output->print (",{\"id\":\"");
429  }
430  output->print ("Ftp Client");
431  if (!plain) {
432  output->print ("\",\"value\":\"");
433  } else {
434  output->print (": ");
435  }
436  output->printf ("%s",ftp_server.clientIPAddress());
437  if (!plain) {
438  output->print ("\"}");
439  } else {
440  output->printLN("");
441  }
442  }
443 #endif //FTP_FEATURE
444 #if defined (WS_DATA_FEATURE)
446  //websocket port
447  if (!plain) {
448  output->print (",{\"id\":\"");
449  }
450  output->print ("Websocket port");
451  if (!plain) {
452  output->print ("\",\"value\":\"");
453  } else {
454  output->print (": ");
455  }
456  output->printf ("%d",websocket_data_server.port());
457  if (!plain) {
458  output->print ("\"}");
459  } else {
460  output->printLN("");
461  }
462  }
463 #endif //WS_DATA_FEATURE
464 #if defined (CAMERA_DEVICE)
465  if (esp3d_camera.started()) {
466  //camera name
467  if (!plain) {
468  output->print (",{\"id\":\"");
469  }
470  output->print ("camera name");
471  if (!plain) {
472  output->print ("\",\"value\":\"");
473  } else {
474  output->print (": ");
475  }
476  output->printf ("%s(%d)",esp3d_camera.GetModelString(),esp3d_camera.GetModel());
477  if (!plain) {
478  output->print ("\"}");
479  } else {
480  output->printLN("");
481  }
482  //camera port
483  if (!plain) {
484  output->print (",{\"id\":\"");
485  }
486  output->print ("camera ports");
487  if (!plain) {
488  output->print ("\",\"value\":\"");
489  } else {
490  output->print (": ");
491  }
492  output->printf ("%d - %d",esp3d_camera.port(), esp3d_camera.port()+1);
493  if (!plain) {
494  output->print ("\"}");
495  } else {
496  output->printLN("");
497  }
498  }
499 #endif //CAMERA_DEVICE
500 
501 #if defined (BLUETOOTH_FEATURE)
502  if (bt_service.started()) {
503  //BT mode
504  if (!plain) {
505  output->print (",{\"id\":\"");
506  }
507  output->print ("Current BT mode");
508  if (!plain) {
509  output->print ("\",\"value\":\"");
510  } else {
511  output->print (": ");
512  }
513  output->print ("Serial (");
514  output->print (BTService::macAddress());
515  output->print(")");
516  if (!plain) {
517  output->print ("\"}");
518  } else {
519  output->printLN("");
520  }
521  //BT status
522  if (!plain) {
523  output->print (",{\"id\":\"");
524  }
525  output->print ("BT Status");
526  if (!plain) {
527  output->print ("\",\"value\":\"");
528  } else {
529  output->print (": ");
530  }
531  output->print ((bt_service.isConnected())?"Connected":"Disconnected");
532  if (bt_service.isConnected()) {
533  output->print (" (client: ");
534  output->print (BTService::clientmacAddress());
535  output->print (")");
536  }
537  if (!plain) {
538  output->print ("\"}");
539  } else {
540  output->printLN("");
541  }
542  }
543 #endif //BLUETOOTH_FEATURE
544 #if defined (ETH_FEATURE)
545  if (EthConfig::started()) {
546  //Ethernet mode
547  if (!plain) {
548  output->print (",{\"id\":\"");
549  }
550  output->print ("Current Ethernet mode");
551  if (!plain) {
552  output->print ("\",\"value\":\"");
553  } else {
554  output->print (": ");
555  }
556  output->print ("Client(");
557  output->print (ETH.macAddress().c_str());
558  output->printLN(")");
559  if (!plain) {
560  output->print ("\"}");
561  } else {
562  output->printLN("");
563  }
564  //Ethernet cable
565  if (!plain) {
566  output->print (",{\"id\":\"");
567  }
568  output->print ("Ethernet cable");
569  if (!plain) {
570  output->print ("\",\"value\":\"");
571  } else {
572  output->print (": ");
573  }
574  output->print ((ETH.linkUp())?"Connected":"Disconnected");
575  if(ETH.linkUp()) {
576  output->print (" (");
577  output->print (ETH.linkSpeed());
578  output->printLN("Mbps)");
579  }
580  if (!plain) {
581  output->print ("\"}");
582  } else {
583  output->printLN("");
584  }
585  //IP mode
586  if (!plain) {
587  output->print (",{\"id\":\"");
588  }
589  output->print ("IP Mode");
590  if (!plain) {
591  output->print ("\",\"value\":\"");
592  } else {
593  output->print (": ");
594  }
595  output->print ((NetConfig::isIPModeDHCP(ESP_ETH_STA))?"DHCP":"Static");
596  if (!plain) {
597  output->print ("\"}");
598  } else {
599  output->printLN("");
600  }
601  //IP value
602  if (!plain) {
603  output->print (",{\"id\":\"");
604  }
605  output->print ("IP");
606  if (!plain) {
607  output->print ("\",\"value\":\"");
608  } else {
609  output->print (": ");
610  }
611  output->print (ETH.localIP().toString().c_str());
612  if (!plain) {
613  output->print ("\"}");
614  } else {
615  output->printLN("");
616  }
617  //GW value
618  if (!plain) {
619  output->print (",{\"id\":\"");
620  }
621  output->print ("Gateway");
622  if (!plain) {
623  output->print ("\",\"value\":\"");
624  } else {
625  output->print (": ");
626  }
627  output->print (ETH.gatewayIP().toString().c_str());
628  if (!plain) {
629  output->print ("\"}");
630  } else {
631  output->printLN("");
632  }
633  //Mask value
634  if (!plain) {
635  output->print (",{\"id\":\"");
636  }
637  output->print ("Mask");
638  if (!plain) {
639  output->print ("\",\"value\":\"");
640  } else {
641  output->print (": ");
642  }
643  output->print (ETH.subnetMask().toString().c_str());
644  if (!plain) {
645  output->print ("\"}");
646  } else {
647  output->printLN("");
648  }
649  //DNS value
650  if (!plain) {
651  output->print (",{\"id\":\"");
652  }
653  output->print ("DNS");
654  if (!plain) {
655  output->print ("\",\"value\":\"");
656  } else {
657  output->print (": ");
658  }
659  output->print (ETH.dnsIP().toString().c_str());
660  if (!plain) {
661  output->print ("\"}");
662  } else {
663  output->printLN("");
664  }
665  }
666 #endif //ETH_FEATURE
667 #if defined (WIFI_FEATURE)
668  if (WiFi.getMode() != WIFI_OFF) {
669  //WiFi Mode
670  if (!plain) {
671  output->print (",{\"id\":\"");
672  }
673  output->print ("Current WiFi Mode");
674  if (!plain) {
675  output->print ("\",\"value\":\"");
676  } else {
677  output->print (": ");
678  }
679  if (WiFi.getMode() == WIFI_STA) {
680  output->print ("STA (");
681  output->print ( WiFi.macAddress().c_str());
682  output->print (")");
683  } else if (WiFi.getMode() == WIFI_AP) {
684  output->print ("AP (");
685  output->print (WiFi.softAPmacAddress().c_str());
686  output->print (")");
687  } else if (WiFi.getMode() == WIFI_AP_STA) { //we should not be in this state but just in case ....
688  output->print ("Mixed");
689  output->printLN("");
690  output->print ("STA (");
691  output->print (WiFi.macAddress().c_str());
692  output->print (")");
693  output->printLN("");
694  output->print ("AP (");
695  output->print (WiFi.softAPmacAddress().c_str());
696  output->print (")");
697  } else {
698  output->print ("???");
699  }
700  if (!plain) {
701  output->print ("\"}");
702  } else {
703  output->printLN("");
704  }
705  //WiFi Station
706  if (WiFi.getMode() == WIFI_STA) {
707  //Connected to SSID
708  if (!plain) {
709  output->print (",{\"id\":\"");
710  }
711  output->print ("Connected to");
712  if (!plain) {
713  output->print ("\",\"value\":\"");
714  } else {
715  output->print (": ");
716  }
717  if (WiFi.isConnected()) {
718  output->print (WiFi.SSID().c_str());
719  }
720  if (!plain) {
721  output->print ("\"}");
722  } else {
723  output->printLN("");
724  }
725  if (WiFi.isConnected()) { //in case query come from serial
726  //Signal strength
727  if (!plain) {
728  output->print (",{\"id\":\"");
729  }
730  output->print ("Signal");
731  if (!plain) {
732  output->print ("\",\"value\":\"");
733  } else {
734  output->print (": ");
735  }
736  output->printf ("%d %%",WiFiConfig::getSignal(WiFi.RSSI()));
737  if (!plain) {
738  output->print ("\"}");
739  } else {
740  output->printLN("");
741  }
742  //Phy Mode
743  if (!plain) {
744  output->print (",{\"id\":\"");
745  }
746  output->print ("Phy Mode");
747  if (!plain) {
748  output->print ("\",\"value\":\"");
749  } else {
750  output->print (": ");
751  }
752  output->print (WiFiConfig::getPHYModeString (WIFI_STA));
753  if (!plain) {
754  output->print ("\"}");
755  } else {
756  output->printLN("");
757  }
758  //Channel
759  if (!plain) {
760  output->print (",{\"id\":\"");
761  }
762  output->print ("Channel");
763  if (!plain) {
764  output->print ("\",\"value\":\"");
765  } else {
766  output->print (": ");
767  }
768  output->printf ("%d",WiFi.channel());
769  if (!plain) {
770  output->print ("\"}");
771  } else {
772  output->printLN("");
773  }
774  //IP Mode
775  if (!plain) {
776  output->print (",{\"id\":\"");
777  }
778  output->print ("IP Mode");
779  if (!plain) {
780  output->print ("\",\"value\":\"");
781  } else {
782  output->print (": ");
783  }
784  output->print ((NetConfig::isIPModeDHCP(ESP_WIFI_STA))?"DHCP":"Static");
785  if (!plain) {
786  output->print ("\"}");
787  } else {
788  output->printLN("");
789  }
790  //IP value
791  if (!plain) {
792  output->print (",{\"id\":\"");
793  }
794  output->print ("IP");
795  if (!plain) {
796  output->print ("\",\"value\":\"");
797  } else {
798  output->print (": ");
799  }
800  output->print (WiFi.localIP().toString().c_str());
801  if (!plain) {
802  output->print ("\"}");
803  } else {
804  output->printLN("");
805  }
806  //Gateway value
807  if (!plain) {
808  output->print (",{\"id\":\"");
809  }
810  output->print ("Gateway");
811  if (!plain) {
812  output->print ("\",\"value\":\"");
813  } else {
814  output->print (": ");
815  }
816  output->print (WiFi.gatewayIP().toString().c_str());
817  if (!plain) {
818  output->print ("\"}");
819  } else {
820  output->printLN("");
821  }
822  //Mask value
823  if (!plain) {
824  output->print (",{\"id\":\"");
825  }
826  output->print ("Mask");
827  if (!plain) {
828  output->print ("\",\"value\":\"");
829  } else {
830  output->print (": ");
831  }
832  output->print (WiFi.subnetMask().toString().c_str());
833  if (!plain) {
834  output->print ("\"}");
835  } else {
836  output->printLN("");
837  }
838  //DNS value
839  if (!plain) {
840  output->print (",{\"id\":\"");
841  }
842  output->print ("DNS");
843  if (!plain) {
844  output->print ("\",\"value\":\"");
845  } else {
846  output->print (": ");
847  }
848  output->print (WiFi.dnsIP().toString().c_str());
849  if (!plain) {
850  output->print ("\"}");
851  } else {
852  output->printLN("");
853  }
854  }
855  //Disabled Mode
856  if (!plain) {
857  output->print (",{\"id\":\"");
858  }
859  output->print ("Disabled Mode");
860  if (!plain) {
861  output->print ("\",\"value\":\"");
862  } else {
863  output->print (": ");
864  }
865  output->print ("AP (");
866  output->print (WiFi.softAPmacAddress().c_str());
867  output->print (")");
868  if (!plain) {
869  output->print ("\"}");
870  } else {
871  output->printLN("");
872  }
873  } else if (WiFi.getMode() == WIFI_AP) {
874  //AP SSID
875  if (!plain) {
876  output->print (",{\"id\":\"");
877  }
878  output->print ("SSID");
879  if (!plain) {
880  output->print ("\",\"value\":\"");
881  } else {
882  output->print (": ");
883  }
884  output->print (WiFiConfig::AP_SSID());
885  if (!plain) {
886  output->print ("\"}");
887  } else {
888  output->printLN("");
889  }
890  //AP Visibility
891  if (!plain) {
892  output->print (",{\"id\":\"");
893  }
894  output->print ("Visible");
895  if (!plain) {
896  output->print ("\",\"value\":\"");
897  } else {
898  output->print (": ");
899  }
900  output->print ((WiFiConfig::is_AP_visible()) ? "Yes" : "No");
901  if (!plain) {
902  output->print ("\"}");
903  } else {
904  output->printLN("");
905  }
906  //AP Authentication
907  if (!plain) {
908  output->print (",{\"id\":\"");
909  }
910  output->print ("Authentication");
911  if (!plain) {
912  output->print ("\",\"value\":\"");
913  } else {
914  output->print (": ");
915  }
916  output->print (WiFiConfig::AP_Auth_String());
917  if (!plain) {
918  output->print ("\"}");
919  } else {
920  output->printLN("");
921  }
922  //DHCP Server
923  if (!plain) {
924  output->print (",{\"id\":\"");
925  }
926  output->print ("DHCP Server");
927  if (!plain) {
928  output->print ("\",\"value\":\"");
929  } else {
930  output->print (": ");
931  }
932  output->print ((NetConfig::isDHCPServer (ESP_WIFI_AP))?"Started":"Stopped");
933  if (!plain) {
934  output->print ("\"}");
935  } else {
936  output->printLN("");
937  }
938  //IP Value
939  if (!plain) {
940  output->print (",{\"id\":\"");
941  }
942  output->print ("IP");
943  if (!plain) {
944  output->print ("\",\"value\":\"");
945  } else {
946  output->print (": ");
947  }
948  output->print (WiFi.softAPIP().toString());
949  if (!plain) {
950  output->print ("\"}");
951  } else {
952  output->printLN("");
953  }
954  //Gateway Value
955  if (!plain) {
956  output->print (",{\"id\":\"");
957  }
958  output->print ("Gateway");
959  if (!plain) {
960  output->print ("\",\"value\":\"");
961  } else {
962  output->print (": ");
963  }
964  output->print (WiFiConfig::AP_Gateway_String());
965  if (!plain) {
966  output->print ("\"}");
967  } else {
968  output->printLN("");
969  }
970  //Mask Value
971  if (!plain) {
972  output->print (",{\"id\":\"");
973  }
974  output->print ("Mask");
975  if (!plain) {
976  output->print ("\",\"value\":\"");
977  } else {
978  output->print (": ");
979  }
980  output->print (WiFiConfig::AP_Mask_String());
981  if (!plain) {
982  output->print ("\"}");
983  } else {
984  output->printLN("");
985  }
986  //Connected clients
987  const char * entry = NULL;
988  uint8_t nb = 0;
989  entry = WiFiConfig::getConnectedSTA(&nb, true);
990  if (!plain) {
991  output->print (",{\"id\":\"");
992  }
993  output->print ("Connected clients");
994  if (!plain) {
995  output->print ("\",\"value\":\"");
996  } else {
997  output->print (": ");
998  }
999  output->print (nb);
1000  if (!plain) {
1001  output->print ("\"}");
1002  } else {
1003  output->printLN("");
1004  }
1005  for (uint8_t i = 0; i < nb; i++) {
1006  //Client
1007  if (!plain) {
1008  output->print (",{\"id\":\"");
1009  }
1010  output->printf ("Client %d",i);
1011  if (!plain) {
1012  output->print ("\",\"value\":\"");
1013  } else {
1014  output->print (": ");
1015  }
1016  output->print (entry);
1017  if (!plain) {
1018  output->print ("\"}");
1019  } else {
1020  output->printLN("");
1021  }
1022  //get next
1023  entry = WiFiConfig::getConnectedSTA();
1024  }
1025  //Disabled Mode
1026  if (!plain) {
1027  output->print (",{\"id\":\"");
1028  }
1029  output->print ("Disabled Mode");
1030  if (!plain) {
1031  output->print ("\",\"value\":\"");
1032  } else {
1033  output->print (": ");
1034  }
1035  output->print ("STA (");
1036  output->print (WiFi.macAddress().c_str());
1037  output->print (")");
1038  if (!plain) {
1039  output->print ("\"}");
1040  } else {
1041  output->printLN("");
1042  }
1043  }
1044  }
1045 #endif //WIFI_FEATURE
1046 #endif //WIFI_FEATURE || ETH FEATURE
1047 #if defined (TIMESTAMP_FEATURE)
1048  if (!plain) {
1049  output->print (",{\"id\":\"");
1050  }
1051  output->print ("Time client");
1052  if (!plain) {
1053  output->print ("\",\"value\":\"");
1054  } else {
1055  output->print (": ");
1056  }
1057  output->print (timeserver.started()?"Started":"Disabled");
1058  if (!plain) {
1059  output->print ("\"}");
1060  } else {
1061  output->printLN("");
1062  }
1063 #endif //TIMESTAMP_FEATURE
1064  if (!plain) {
1065  output->print (",{\"id\":\"");
1066  }
1067  output->print ("Serial communication");
1068  if (!plain) {
1069  output->print ("\",\"value\":\"");
1070  } else {
1071  output->print (": ");
1072  }
1073  output->print (serial_service.started()?"Enabled":"Disabled");
1074  if (!plain) {
1075  output->print ("\"}");
1076  } else {
1077  output->printLN("");
1078  }
1079 #if defined (NOTIFICATION_FEATURE)
1080  if (!plain) {
1081  output->print (",{\"id\":\"");
1082  }
1083  output->print ("Notification");
1084  if (!plain) {
1085  output->print ("\",\"value\":\"");
1086  } else {
1087  output->print (": ");
1088  }
1089  output->print (notificationsservice.started()?"Enabled":"Disabled");
1090  if (notificationsservice.started()) {
1091  output->print ("(");
1092  output->print (notificationsservice.getTypeString());
1093  output->print (")");
1094  }
1095  if (!plain) {
1096  output->print ("\"}");
1097  } else {
1098  output->printLN("");
1099  }
1100 #endif //NOTIFICATION_FEATURE
1101 #ifdef SD_DEVICE
1102  if (!plain) {
1103  output->print (",{\"id\":\"");
1104  }
1105  output->print ("SD Card");
1106  if (!plain) {
1107  output->print ("\",\"value\":\"");
1108  } else {
1109  output->print (": ");
1110  }
1111  output->print ((Settings_ESP3D::GetSDDevice() == ESP_DIRECT_SD)?"Direct":(Settings_ESP3D::GetSDDevice() == ESP_SHARED_SD)?"Shared":"None");
1112  output->print ("(");
1113  output->print (ESP_SD::FilesystemName());
1114  output->print (")");
1115  if (!plain) {
1116  output->print ("\"}");
1117  } else {
1118  output->printLN("");
1119  }
1120 #endif //SD_DEVICE
1121 #if defined (DHT_DEVICE)
1122  if (!plain) {
1123  output->print (",{\"id\":\"");
1124  }
1125  output->print ("DHT sensor");
1126  if (!plain) {
1127  output->print ("\",\"value\":\"");
1128  } else {
1129  output->print (": ");
1130  }
1131  output->print (esp3d_DHT.started()?"Enabled":"Disabled");
1132  output->print ("(");
1133  output->print (esp3d_DHT.GetModelString());
1134  output->print (")");
1135  if (!plain) {
1136  output->print ("\"}");
1137  } else {
1138  output->printLN("");
1139  }
1140 #endif //DHT_DEVICE
1141 #if defined (BUZZER_DEVICE)
1142  if (!plain) {
1143  output->print (",{\"id\":\"");
1144  }
1145  output->print ("Buzzer");
1146  if (!plain) {
1147  output->print ("\",\"value\":\"");
1148  } else {
1149  output->print (": ");
1150  }
1151  output->print (esp3d_buzzer.started()?"Enabled":"Disabled");
1152  if (!plain) {
1153  output->print ("\"}");
1154  } else {
1155  output->printLN("");
1156  }
1157 #endif //BUZZER_DEVICE
1158 #if defined (ESP_DEBUG_FEATURE)
1159  //debug
1160  if (!plain) {
1161  output->print (",{\"id\":\"");
1162  }
1163  output->print ("Debug");
1164  if (!plain) {
1165  output->print ("\",\"value\":\"");
1166  } else {
1167  output->print (": ");
1168  }
1169 #if ESP_DEBUG_FEATURE == DEBUG_OUTPUT_SERIAL0
1170  output->print ("Serial");
1171 #endif //DEBUG_OUTPUT_SERIAL0
1172 #if ESP_DEBUG_FEATURE == DEBUG_OUTPUT_SERIAL1
1173  output->print ("Serial1");
1174 #endif //DEBUG_OUTPUT_SERIAL1
1175 #if ESP_DEBUG_FEATURE == DEBUG_OUTPUT_SERIAL2
1176  output->print ("Serial2");
1177 #endif //DEBUG_OUTPUT_SERIAL2
1178 #if ESP_DEBUG_FEATURE == DEBUG_OUTPUT_TELNET
1179  output->printf ("Telnet(%d)", DEBUG_ESP3D_OUTPUT_PORT);
1180 #endif //DEBUG_OUTPUT_TELNET
1181 #if ESP_DEBUG_FEATURE == DEBUG_OUTPUT_WEBSOCKET
1182  output->printf ("Websocket(%d)", DEBUG_ESP3D_OUTPUT_PORT);
1183 #endif //DEBUG_OUTPUT_WEBSOCKET
1184  if (!plain) {
1185  output->print ("\"}");
1186  } else {
1187  output->printLN("");
1188  }
1189 #endif //ESP_DEBUG_FEATURE
1190  //FW version
1191  if (!plain) {
1192  output->print (",{\"id\":\"");
1193  }
1194  output->print ("FW version");
1195  if (!plain) {
1196  output->print ("\",\"value\":\"");
1197  } else {
1198  output->print (": ");
1199  }
1200  output->print (FW_VERSION);
1201  if (!plain) {
1202  output->print ("\"}");
1203  } else {
1204  output->printLN("");
1205  }
1206  if (!plain) {
1207  output->print (",{\"id\":\"");
1208  }
1209  //FW architecture
1210  output->print ("FW architecture");
1211  if (!plain) {
1212  output->print ("\",\"value\":\"");
1213  } else {
1214  output->print (": ");
1215  }
1216  output->print (Settings_ESP3D::TargetBoard());
1217  if (!plain) {
1218  output->print ("\"}");
1219  } else {
1220  output->printLN("");
1221  }
1222 
1223  if (!plain) {
1224  output->print ("]}");
1225  output->printLN ("");
1226  }
1227  return response;
1228 }
Telnet_Server::isConnected
bool isConnected()
Definition: telnet_server.cpp:42
BTService::clientmacAddress
static const char * clientmacAddress()
WiFiConfig::is_AP_visible
static bool is_AP_visible()
Definition: wificonfig.cpp:373
WiFiConfig::AP_Mask_String
static const char * AP_Mask_String()
Definition: wificonfig.cpp:448
ESP_FileSystem::FilesystemName
static const char * FilesystemName()
ESP_SHARED_SD
#define ESP_SHARED_SD
Definition: defines.h:56
ESP3DOutput::printLN
size_t printLN(const char *s)
Definition: esp3doutput.cpp:165
TimeServer::started
bool started()
notificationsservice
NotificationsService notificationsservice
Definition: notifications_service.cpp:67
FtpServer::datapassiveport
uint16_t datapassiveport()
Definition: FtpServer.h:86
FtpServer::started
bool started()
Definition: FtpServer.cpp:170
Camera::started
bool started()
Definition: camera.h:38
Telnet_Server::clientIPAddress
const char * clientIPAddress()
Definition: telnet_server.cpp:65
ESP_WIFI_STA
#define ESP_WIFI_STA
Definition: netconfig.h:41
BuzzerDevice::started
bool started()
Definition: buzzer.h:37
Camera::GetModel
uint8_t GetModel()
Telnet_Server::port
uint16_t port()
Definition: telnet_server.h:69
DHT::started
bool started()
ESP_FileSystem::usedBytes
static size_t usedBytes()
websocket_data_server
WebSocket_Server websocket_data_server
Definition: websocket_server.cpp:35
WebSocket_Server::started
bool started()
Definition: websocket_server.h:74
NetConfig::isIPModeDHCP
static bool isIPModeDHCP(uint8_t mode)
Definition: netconfig.cpp:385
ESP_FileSystem::totalBytes
static size_t totalBytes()
esp3d_DHT
DHT esp3d_DHT
Settings_ESP3D::GetSDDevice
static uint8_t GetSDDevice(bool fromsettings=false)
Definition: settings_esp3d.cpp:191
BTService::macAddress
static const char * macAddress()
SerialService::started
bool started()
Definition: serial_service.h:68
SerialService::baudRate
long baudRate()
Definition: serial_service.cpp:196
DHT::GetModelString
const char * GetModelString()
LEVEL_GUEST
@ LEVEL_GUEST
Definition: authentication_service.h:26
NetConfig::hostname
static const char * hostname(bool fromsettings=false)
Definition: netconfig.cpp:331
WiFiConfig::getConnectedSTA
static const char * getConnectedSTA(uint8_t *totalcount=NULL, bool reset=false)
Definition: wificonfig.cpp:466
timeserver
TimeServer timeserver
FW_VERSION
#define FW_VERSION
Definition: version.h:25
Camera::GetModelString
const char * GetModelString()
WiFiConfig::getSignal
static int32_t getSignal(int32_t RSSI)
Definition: wificonfig.cpp:107
NotificationsService::getTypeString
const char * getTypeString()
Definition: notifications_service.cpp:137
EthConfig::started
static bool started()
Telnet_Server::started
bool started()
Definition: telnet_server.cpp:154
FtpServer::dataactiveport
uint16_t dataactiveport()
Definition: FtpServer.h:90
ESP_FileSystem::max_update_size
static size_t max_update_size()
Definition: esp_filesystem.cpp:60
Hal::temperature
static float temperature()
Definition: hal.cpp:258
telnet_server
Telnet_Server telnet_server
Definition: telnet_server.cpp:31
FtpServer::ctrlport
uint16_t ctrlport()
Definition: FtpServer.h:82
Hal::getChipID
static uint16_t getChipID()
Definition: hal.cpp:238
level_authenticate_type
level_authenticate_type
Definition: authentication_service.h:25
FtpServer::isConnected
bool isConnected()
Definition: FtpServer.cpp:123
NotificationsService::started
bool started()
Definition: notifications_service.cpp:132
ESP_DIRECT_SD
#define ESP_DIRECT_SD
Definition: defines.h:55
serial_service
SerialService serial_service
Definition: serial_service.cpp:42
Commands::hastag
bool hastag(const char *cmd_params, const char *tag)
Definition: commands.cpp:221
ESP_SD::FilesystemName
static const char * FilesystemName()
WiFiConfig::AP_Auth_String
static const char * AP_Auth_String()
Definition: wificonfig.cpp:403
WiFiConfig::getPHYModeString
static const char * getPHYModeString(uint8_t wifimode)
Definition: wificonfig.cpp:352
ESP3DOutput::printERROR
size_t printERROR(const char *s, int code_error=200)
Definition: esp3doutput.cpp:247
Camera::port
uint16_t port()
Definition: camera.h:55
HTTP_Server::port
static uint16_t port()
Definition: http_server.h:57
ESP3DOutput::client
uint8_t client()
Definition: esp3doutput.h:79
Settings_ESP3D::TargetBoard
static const char * TargetBoard()
Definition: settings_esp3d.cpp:1226
HTTP_Server::started
static bool started()
Definition: http_server.h:53
ESP_ETH_STA
#define ESP_ETH_STA
Definition: netconfig.h:44
BTService::started
bool started()
WiFiConfig::getSleepModeString
static const char * getSleepModeString()
Definition: wificonfig.cpp:329
Commands::ESP420
bool ESP420(const char *cmd_params, level_authenticate_type auth_level, ESP3DOutput *output)
Definition: ESP420.cpp:75
WebSocket_Server::port
uint16_t port()
Definition: websocket_server.h:59
bt_service
BTService bt_service
BTService::isConnected
bool isConnected()
esp3d_camera
Camera esp3d_camera
ESP_WIFI_AP
#define ESP_WIFI_AP
Definition: netconfig.h:42
Hal::has_temperature_sensor
static bool has_temperature_sensor()
Definition: hal.cpp:248
ESP_FileSystem::formatBytes
static String & formatBytes(uint64_t bytes)
Definition: esp_filesystem.cpp:45
ftp_server
FtpServer ftp_server
Definition: FtpServer.cpp:106
FtpServer::clientIPAddress
const char * clientIPAddress()
Definition: FtpServer.cpp:160
WiFiConfig::AP_SSID
static const char * AP_SSID()
Definition: wificonfig.cpp:387
ESP_HTTP_CLIENT
#define ESP_HTTP_CLIENT
Definition: esp3doutput.h:24
esp3d_buzzer
BuzzerDevice esp3d_buzzer
ESP3DOutput
Definition: esp3doutput.h:48
NetConfig::isDHCPServer
static bool isDHCPServer(uint8_t mode)
Definition: netconfig.cpp:400
WiFiConfig::AP_Gateway_String
static const char * AP_Gateway_String()
Definition: wificonfig.cpp:430