 |
ESP3D
3.0
Firmware for ESP boards connected to 3D Printer
|
Go to the documentation of this file.
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"
34 #if defined (ETH_FEATURE)
35 #include "../../modules/ethernet/ethconfig.h"
37 #if defined (BLUETOOTH_FEATURE)
38 #include "../../modules/bluetooth/BT_service.h"
39 #endif //BLUETOOTH_FEATURE
40 #endif //WIFI_FEATURE || ETH_FEATURE || BLUETOOTH_FEATURE
42 #include "../../modules/http/http_server.h"
45 #include "../../modules/telnet/telnet_server.h"
46 #endif //TELNET_FEATURE
48 #include "../../modules/ftp/FtpServer.h"
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"
59 #ifdef NOTIFICATION_FEATURE
60 #include "../../modules/notifications/notifications_service.h"
61 #endif //NOTIFICATION_FEATURE
63 #include "../../modules/buzzer/buzzer.h"
64 #endif //BUZZER_DEVICE
66 #include "../../modules/camera/camera.h"
67 #endif //CAMERA_DEVICE
69 #include "../../modules/filesystem/esp_sd.h"
79 #ifdef AUTHENTICATION_FEATURE
81 output->
printERROR(
"Wrong authentication!", 401);
86 #endif //AUTHENTICATION_FEATURE
87 bool plain =
hastag(cmd_params,
"plain");
90 output->print (
"{\"Status\":[");
94 output->print (
"{\"id\":\"");
96 output->print (
"Chip ID");
98 output->print (
"\",\"value\":\"");
100 output->print (
": ");
104 output->print (
"\"}");
110 output->print (
",{\"id\":\"");
112 output->print (
"CPU Frequency");
114 output->print (
"\",\"value\":\"");
116 output->print (
": ");
118 output->printf(
"%d Mhz",ESP.getCpuFreqMHz());
120 output->print (
"\"}");
127 output->print (
",{\"id\":\"");
129 output->print (
"CPU Temperature");
131 output->print (
"\",\"value\":\"");
133 output->print (
": ");
137 output->print (
"\"}");
144 output->print (
",{\"id\":\"");
146 output->print (
"Free memory");
148 output->print (
"\",\"value\":\"");
150 output->print (
": ");
154 output->print (
"\"}");
160 output->print (
",{\"id\":\"");
162 output->print (
"SDK");
164 output->print (
"\",\"value\":\"");
166 output->print (
": ");
168 output->printf(
"%s", ESP.getSdkVersion());
170 output->print (
"\"}");
176 output->print (
",{\"id\":\"");
178 output->print (
"Flash Size");
180 output->print (
"\",\"value\":\"");
182 output->print (
": ");
186 output->print (
"\"}");
191 #if (defined (WIFI_FEATURE) || defined (ETH_FEATURE)) && (defined(OTA_FEATURE) || defined(WEB_UPDATE_FEATURE))
194 output->print (
",{\"id\":\"");
196 output->print (
"Available Size for update");
198 output->print (
"\",\"value\":\"");
200 output->print (
": ");
204 output->print (
"\"}");
208 #endif //WIFI_FEATURE || ETH_FEATURE
209 #if defined(FILESYSTEM_FEATURE)
212 output->print (
",{\"id\":\"");
214 output->print (
"Filesystem type");
216 output->print (
"\",\"value\":\"");
218 output->print (
": ");
222 output->print (
"\"}");
228 output->print (
",{\"id\":\"");
230 output->print (
"Filesystem usage");
232 output->print (
"\",\"value\":\"");
234 output->print (
": ");
240 output->print (
"\"}");
244 #endif //FILESYSTEM_FEATURE
247 output->print (
",{\"id\":\"");
249 output->print (
"Baud rate");
251 output->print (
"\",\"value\":\"");
253 output->print (
": ");
257 output->print (
"\"}");
261 #if defined (WIFI_FEATURE)
262 if (WiFi.getMode() != WIFI_OFF) {
265 output->print (
",{\"id\":\"");
267 output->print (
"Sleep mode");
269 output->print (
"\",\"value\":\"");
271 output->print (
": ");
275 output->print (
"\"}");
280 #endif //WIFI_FEATURE
281 #if defined (WIFI_FEATURE) || defined (ETH_FEATURE)
284 output->print (
",{\"id\":\"");
286 output->print (
"WiFi");
288 output->print (
"\",\"value\":\"");
290 output->print (
": ");
292 output->print ((WiFi.getMode() == WIFI_OFF)?
"Disabled":
"Enabled");
294 output->print (
"\"}");
298 #if defined (ETH_FEATURE)
301 output->print (
",{\"id\":\"");
303 output->print (
"Ethernet");
305 output->print (
"\",\"value\":\"");
307 output->print (
": ");
311 output->print (
"\"}");
316 #if defined (BLUETOOTH_FEATURE)
319 output->print (
",{\"id\":\"");
321 output->print(
"Bluetooth");
323 output->print (
"\",\"value\":\"");
325 output->print (
": ");
329 output->print (
"\"}");
333 #endif //BLUETOOTH_FEATURE
336 output->print (
",{\"id\":\"");
338 output->print (
"Hostname");
340 output->print (
"\",\"value\":\"");
342 output->print (
": ");
346 output->print (
"\"}");
350 #if defined (HTTP_FEATURE)
354 output->print (
",{\"id\":\"");
356 output->print (
"HTTP port");
358 output->print (
"\",\"value\":\"");
360 output->print (
": ");
364 output->print (
"\"}");
369 #endif //HTTP_FEATURE
370 #if defined (TELNET_FEATURE)
374 output->print (
",{\"id\":\"");
376 output->print (
"Telnet port");
378 output->print (
"\",\"value\":\"");
380 output->print (
": ");
384 output->print (
"\"}");
391 output->print (
",{\"id\":\"");
393 output->print (
"Telnet Client");
395 output->print (
"\",\"value\":\"");
397 output->print (
": ");
401 output->print (
"\"}");
406 #endif //TELNET_FEATURE
407 #if defined (FTP_FEATURE)
411 output->print (
",{\"id\":\"");
413 output->print (
"Ftp ports (ctrl, active, passive)");
415 output->print (
"\",\"value\":\"");
417 output->print (
": ");
421 output->print (
"\"}");
428 output->print (
",{\"id\":\"");
430 output->print (
"Ftp Client");
432 output->print (
"\",\"value\":\"");
434 output->print (
": ");
438 output->print (
"\"}");
444 #if defined (WS_DATA_FEATURE)
448 output->print (
",{\"id\":\"");
450 output->print (
"Websocket port");
452 output->print (
"\",\"value\":\"");
454 output->print (
": ");
458 output->print (
"\"}");
463 #endif //WS_DATA_FEATURE
464 #if defined (CAMERA_DEVICE)
468 output->print (
",{\"id\":\"");
470 output->print (
"camera name");
472 output->print (
"\",\"value\":\"");
474 output->print (
": ");
478 output->print (
"\"}");
484 output->print (
",{\"id\":\"");
486 output->print (
"camera ports");
488 output->print (
"\",\"value\":\"");
490 output->print (
": ");
494 output->print (
"\"}");
499 #endif //CAMERA_DEVICE
501 #if defined (BLUETOOTH_FEATURE)
505 output->print (
",{\"id\":\"");
507 output->print (
"Current BT mode");
509 output->print (
"\",\"value\":\"");
511 output->print (
": ");
513 output->print (
"Serial (");
517 output->print (
"\"}");
523 output->print (
",{\"id\":\"");
525 output->print (
"BT Status");
527 output->print (
"\",\"value\":\"");
529 output->print (
": ");
533 output->print (
" (client: ");
538 output->print (
"\"}");
543 #endif //BLUETOOTH_FEATURE
544 #if defined (ETH_FEATURE)
548 output->print (
",{\"id\":\"");
550 output->print (
"Current Ethernet mode");
552 output->print (
"\",\"value\":\"");
554 output->print (
": ");
556 output->print (
"Client(");
557 output->print (ETH.macAddress().c_str());
560 output->print (
"\"}");
566 output->print (
",{\"id\":\"");
568 output->print (
"Ethernet cable");
570 output->print (
"\",\"value\":\"");
572 output->print (
": ");
574 output->print ((ETH.linkUp())?
"Connected":
"Disconnected");
576 output->print (
" (");
577 output->print (ETH.linkSpeed());
581 output->print (
"\"}");
587 output->print (
",{\"id\":\"");
589 output->print (
"IP Mode");
591 output->print (
"\",\"value\":\"");
593 output->print (
": ");
597 output->print (
"\"}");
603 output->print (
",{\"id\":\"");
605 output->print (
"IP");
607 output->print (
"\",\"value\":\"");
609 output->print (
": ");
611 output->print (ETH.localIP().toString().c_str());
613 output->print (
"\"}");
619 output->print (
",{\"id\":\"");
621 output->print (
"Gateway");
623 output->print (
"\",\"value\":\"");
625 output->print (
": ");
627 output->print (ETH.gatewayIP().toString().c_str());
629 output->print (
"\"}");
635 output->print (
",{\"id\":\"");
637 output->print (
"Mask");
639 output->print (
"\",\"value\":\"");
641 output->print (
": ");
643 output->print (ETH.subnetMask().toString().c_str());
645 output->print (
"\"}");
651 output->print (
",{\"id\":\"");
653 output->print (
"DNS");
655 output->print (
"\",\"value\":\"");
657 output->print (
": ");
659 output->print (ETH.dnsIP().toString().c_str());
661 output->print (
"\"}");
667 #if defined (WIFI_FEATURE)
668 if (WiFi.getMode() != WIFI_OFF) {
671 output->print (
",{\"id\":\"");
673 output->print (
"Current WiFi Mode");
675 output->print (
"\",\"value\":\"");
677 output->print (
": ");
679 if (WiFi.getMode() == WIFI_STA) {
680 output->print (
"STA (");
681 output->print ( WiFi.macAddress().c_str());
683 }
else if (WiFi.getMode() == WIFI_AP) {
684 output->print (
"AP (");
685 output->print (WiFi.softAPmacAddress().c_str());
687 }
else if (WiFi.getMode() == WIFI_AP_STA) {
688 output->print (
"Mixed");
690 output->print (
"STA (");
691 output->print (WiFi.macAddress().c_str());
694 output->print (
"AP (");
695 output->print (WiFi.softAPmacAddress().c_str());
698 output->print (
"???");
701 output->print (
"\"}");
706 if (WiFi.getMode() == WIFI_STA) {
709 output->print (
",{\"id\":\"");
711 output->print (
"Connected to");
713 output->print (
"\",\"value\":\"");
715 output->print (
": ");
717 if (WiFi.isConnected()) {
718 output->print (WiFi.SSID().c_str());
721 output->print (
"\"}");
725 if (WiFi.isConnected()) {
728 output->print (
",{\"id\":\"");
730 output->print (
"Signal");
732 output->print (
"\",\"value\":\"");
734 output->print (
": ");
738 output->print (
"\"}");
744 output->print (
",{\"id\":\"");
746 output->print (
"Phy Mode");
748 output->print (
"\",\"value\":\"");
750 output->print (
": ");
754 output->print (
"\"}");
760 output->print (
",{\"id\":\"");
762 output->print (
"Channel");
764 output->print (
"\",\"value\":\"");
766 output->print (
": ");
768 output->printf (
"%d",WiFi.channel());
770 output->print (
"\"}");
776 output->print (
",{\"id\":\"");
778 output->print (
"IP Mode");
780 output->print (
"\",\"value\":\"");
782 output->print (
": ");
786 output->print (
"\"}");
792 output->print (
",{\"id\":\"");
794 output->print (
"IP");
796 output->print (
"\",\"value\":\"");
798 output->print (
": ");
800 output->print (WiFi.localIP().toString().c_str());
802 output->print (
"\"}");
808 output->print (
",{\"id\":\"");
810 output->print (
"Gateway");
812 output->print (
"\",\"value\":\"");
814 output->print (
": ");
816 output->print (WiFi.gatewayIP().toString().c_str());
818 output->print (
"\"}");
824 output->print (
",{\"id\":\"");
826 output->print (
"Mask");
828 output->print (
"\",\"value\":\"");
830 output->print (
": ");
832 output->print (WiFi.subnetMask().toString().c_str());
834 output->print (
"\"}");
840 output->print (
",{\"id\":\"");
842 output->print (
"DNS");
844 output->print (
"\",\"value\":\"");
846 output->print (
": ");
848 output->print (WiFi.dnsIP().toString().c_str());
850 output->print (
"\"}");
857 output->print (
",{\"id\":\"");
859 output->print (
"Disabled Mode");
861 output->print (
"\",\"value\":\"");
863 output->print (
": ");
865 output->print (
"AP (");
866 output->print (WiFi.softAPmacAddress().c_str());
869 output->print (
"\"}");
873 }
else if (WiFi.getMode() == WIFI_AP) {
876 output->print (
",{\"id\":\"");
878 output->print (
"SSID");
880 output->print (
"\",\"value\":\"");
882 output->print (
": ");
886 output->print (
"\"}");
892 output->print (
",{\"id\":\"");
894 output->print (
"Visible");
896 output->print (
"\",\"value\":\"");
898 output->print (
": ");
902 output->print (
"\"}");
908 output->print (
",{\"id\":\"");
910 output->print (
"Authentication");
912 output->print (
"\",\"value\":\"");
914 output->print (
": ");
918 output->print (
"\"}");
924 output->print (
",{\"id\":\"");
926 output->print (
"DHCP Server");
928 output->print (
"\",\"value\":\"");
930 output->print (
": ");
934 output->print (
"\"}");
940 output->print (
",{\"id\":\"");
942 output->print (
"IP");
944 output->print (
"\",\"value\":\"");
946 output->print (
": ");
948 output->print (WiFi.softAPIP().toString());
950 output->print (
"\"}");
956 output->print (
",{\"id\":\"");
958 output->print (
"Gateway");
960 output->print (
"\",\"value\":\"");
962 output->print (
": ");
966 output->print (
"\"}");
972 output->print (
",{\"id\":\"");
974 output->print (
"Mask");
976 output->print (
"\",\"value\":\"");
978 output->print (
": ");
982 output->print (
"\"}");
987 const char * entry = NULL;
991 output->print (
",{\"id\":\"");
993 output->print (
"Connected clients");
995 output->print (
"\",\"value\":\"");
997 output->print (
": ");
1001 output->print (
"\"}");
1005 for (uint8_t i = 0; i < nb; i++) {
1008 output->print (
",{\"id\":\"");
1010 output->printf (
"Client %d",i);
1012 output->print (
"\",\"value\":\"");
1014 output->print (
": ");
1016 output->print (entry);
1018 output->print (
"\"}");
1027 output->print (
",{\"id\":\"");
1029 output->print (
"Disabled Mode");
1031 output->print (
"\",\"value\":\"");
1033 output->print (
": ");
1035 output->print (
"STA (");
1036 output->print (WiFi.macAddress().c_str());
1037 output->print (
")");
1039 output->print (
"\"}");
1045 #endif //WIFI_FEATURE
1046 #endif //WIFI_FEATURE || ETH FEATURE
1047 #if defined (TIMESTAMP_FEATURE)
1049 output->print (
",{\"id\":\"");
1051 output->print (
"Time client");
1053 output->print (
"\",\"value\":\"");
1055 output->print (
": ");
1059 output->print (
"\"}");
1063 #endif //TIMESTAMP_FEATURE
1065 output->print (
",{\"id\":\"");
1067 output->print (
"Serial communication");
1069 output->print (
"\",\"value\":\"");
1071 output->print (
": ");
1075 output->print (
"\"}");
1079 #if defined (NOTIFICATION_FEATURE)
1081 output->print (
",{\"id\":\"");
1083 output->print (
"Notification");
1085 output->print (
"\",\"value\":\"");
1087 output->print (
": ");
1091 output->print (
"(");
1093 output->print (
")");
1096 output->print (
"\"}");
1100 #endif //NOTIFICATION_FEATURE
1103 output->print (
",{\"id\":\"");
1105 output->print (
"SD Card");
1107 output->print (
"\",\"value\":\"");
1109 output->print (
": ");
1112 output->print (
"(");
1114 output->print (
")");
1116 output->print (
"\"}");
1121 #if defined (DHT_DEVICE)
1123 output->print (
",{\"id\":\"");
1125 output->print (
"DHT sensor");
1127 output->print (
"\",\"value\":\"");
1129 output->print (
": ");
1132 output->print (
"(");
1134 output->print (
")");
1136 output->print (
"\"}");
1141 #if defined (BUZZER_DEVICE)
1143 output->print (
",{\"id\":\"");
1145 output->print (
"Buzzer");
1147 output->print (
"\",\"value\":\"");
1149 output->print (
": ");
1153 output->print (
"\"}");
1157 #endif //BUZZER_DEVICE
1158 #if defined (ESP_DEBUG_FEATURE)
1161 output->print (
",{\"id\":\"");
1163 output->print (
"Debug");
1165 output->print (
"\",\"value\":\"");
1167 output->print (
": ");
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
1185 output->print (
"\"}");
1189 #endif //ESP_DEBUG_FEATURE
1192 output->print (
",{\"id\":\"");
1194 output->print (
"FW version");
1196 output->print (
"\",\"value\":\"");
1198 output->print (
": ");
1202 output->print (
"\"}");
1207 output->print (
",{\"id\":\"");
1210 output->print (
"FW architecture");
1212 output->print (
"\",\"value\":\"");
1214 output->print (
": ");
1218 output->print (
"\"}");
1224 output->print (
"]}");
static const char * clientmacAddress()
static bool is_AP_visible()
static const char * AP_Mask_String()
static const char * FilesystemName()
size_t printLN(const char *s)
NotificationsService notificationsservice
uint16_t datapassiveport()
const char * clientIPAddress()
static size_t usedBytes()
WebSocket_Server websocket_data_server
static bool isIPModeDHCP(uint8_t mode)
static size_t totalBytes()
static uint8_t GetSDDevice(bool fromsettings=false)
static const char * macAddress()
const char * GetModelString()
static const char * hostname(bool fromsettings=false)
static const char * getConnectedSTA(uint8_t *totalcount=NULL, bool reset=false)
const char * GetModelString()
static int32_t getSignal(int32_t RSSI)
const char * getTypeString()
uint16_t dataactiveport()
static size_t max_update_size()
static float temperature()
Telnet_Server telnet_server
static uint16_t getChipID()
SerialService serial_service
bool hastag(const char *cmd_params, const char *tag)
static const char * FilesystemName()
static const char * AP_Auth_String()
static const char * getPHYModeString(uint8_t wifimode)
size_t printERROR(const char *s, int code_error=200)
static const char * TargetBoard()
static const char * getSleepModeString()
bool ESP420(const char *cmd_params, level_authenticate_type auth_level, ESP3DOutput *output)
static bool has_temperature_sensor()
static String & formatBytes(uint64_t bytes)
const char * clientIPAddress()
static const char * AP_SSID()
BuzzerDevice esp3d_buzzer
static bool isDHCPServer(uint8_t mode)
static const char * AP_Gateway_String()