ESP3D  3.0
Firmware for ESP boards connected to 3D Printer
settings_esp3d.cpp
Go to the documentation of this file.
1 /*
2  settings_esp3d.cpp - settings esp3d functions 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 
21 #include "../include/esp3d_config.h"
22 #if defined (ESP_SAVE_SETTINGS)
23 #include "settings_esp3d.h"
24 #include "esp3doutput.h"
25 
26 #if ESP_SAVE_SETTINGS == SETTINGS_IN_EEPROM
27 #include <EEPROM.h>
28 //EEPROM SIZE (Up to 4096)
29 #define EEPROM_SIZE 2048 //max is 2048
30 #endif //SETTINGS_IN_EEPROM
31 
32 #if defined (WIFI_FEATURE) || defined(ETH_FEATURE)
33 #include "../modules/network/netconfig.h"
34 #if defined (WIFI_FEATURE)
35 #include "../modules/wifi/wificonfig.h"
36 #endif //WIFI_FEATURE
37 #endif //WIFI_FEATURE || ETH_FEATURE
38 
39 
40 #if ESP_SAVE_SETTINGS == SETTINGS_IN_PREFERENCES
41 #include <Preferences.h>
42 #define NAMESPACE "ESP3D"
43 #endif // SETTINGS_IN_PREFERENCES
44 
45 //Current Settings Version
46 #define CURRENT_SETTINGS_VERSION "ESP3D04"
47 
48 //boundaries
49 #define MAX_DHT_INTERVAL 60000
50 #define MIN_DHT_INTERVAL 0
51 #define MAX_LOCAL_PASSWORD_LENGTH 20
52 #define MIN_LOCAL_PASSWORD_LENGTH 1
53 #define MAX_VERSION_LENGTH 7 //ESP3DXX
54 #define MAX_BOOT_DELAY 40000
55 #define MIN_BOOT_DELAY 0
56 #define MIN_NOTIFICATION_TOKEN_LENGTH 0
57 #define MIN_NOTIFICATION_SETTINGS_LENGTH 0
58 #define MAX_NOTIFICATION_TOKEN_LENGTH 63
59 #define MAX_NOTIFICATION_SETTINGS_LENGTH 127
60 #define MAX_SERVER_ADDRESS_LENGTH 128
61 #define MIN_SERVER_ADDRESS_LENGTH 0
62 
63 
64 //default byte values
65 #ifdef WIFI_FEATURE
66 #define DEFAULT_ESP_RADIO_MODE ESP_WIFI_AP
67 #else //WIFI_FEATURE
68 #ifdef BLUETOOTH_FEATURE
69 #define DEFAULT_ESP_RADIO_MODE ESP_BT
70 #else //BLUETOOTH_FEATURE
71 #ifdef ETH_FEATURE
72 #define DEFAULT_ESP_RADIO_MODE ESP_ETH_STA
73 #else //BLUETOOTH_FEATURE
74 #define DEFAULT_ESP_RADIO_MODE NO_NETWORK
75 #endif //ETH_FEATURE
76 #endif //BLUETOOTH_FEATURE
77 #endif //WIFI_FEATURE
78 #ifdef BUZZER_DEVICE
79 #define DEFAULT_BUZZER_STATE 1
80 #endif //BUZZER_DEVICE
81 #ifdef TIMESTAMP_FEATURE
82 #define DEFAULT_INTERNET_TIME 0
83 #endif //TIMESTAMP_FEATURE
84 
85 #define DEFAULT_ESP_BYTE 0
86 #define DEFAULT_ESP_STRING_SIZE 0
87 #if defined (WIFI_FEATURE) || defined (ETH_FEATURE)
88 #define DEFAULT_STA_IP_MODE DHCP_MODE
89 #endif //WIFI_FEATURE || ETH_FEATURE
90 //#define DEFAULT_PHY_MODE WIFI_PHY_MODE_11G
91 //#define DEFAULT_SLEEP_MODE WIFI_MODEM_SLEEP
92 #define DEFAULT_AP_CHANNEL 11
93 #define DEFAULT_AUTH_TYPE AUTH_WPA_PSK
94 #define DEFAULT_SSID_VISIBLE 1
95 #define DEFAULT_OUTPUT_FLAG ESP_ALL_CLIENTS
96 #define DEFAULT_SDREADER_SPEED 4
97 #define DEFAULT_FW UNKNOWN_FW
98 #define DEFAULT_TIME_ZONE 0
99 #define DEFAULT_TIME_DST 0
100 #define DEFAULT_SD_MOUNT ESP_SD_ROOT
101 #define DEFAULT_DIRECT_SD_CHECK 0
102 #define DEFAULT_SD_CHECK_UPDATE_AT_BOOT 1
103 #define DEFAULT_DHT_TYPE NO_DHT_DEVICE
104 #define DEFAULT_SD_DEVICE_TYPE ESP_NO_SD
105 #define DEFAULT_HTTP_ON 1
106 #define DEFAULT_FTP_ON 1
107 #define DEFAULT_TELNET_ON 1
108 #define DEFAULT_WEBSOCKET_ON 1
109 #define DEFAULT_NOTIFICATION_TYPE 0
110 #define DEFAULT_NOTIFICATION_TOKEN1 ""
111 #define DEFAULT_NOTIFICATION_TOKEN2 ""
112 #define DEFAULT_NOTIFICATION_SETTINGS ""
113 #define DEFAULT_AUTO_NOTIFICATION_STATE 1
114 
115 
116 //default int values
117 #define DEFAULT_ESP_INT 0L
118 #define DEFAULT_BAUD_RATE 115200L
119 #define DEFAULT_HTTP_PORT 80L
120 #define DEFAULT_FTP_CTRL_PORT 21L
121 #define DEFAULT_FTP_ACTIVE_PORT 20L
122 #define DEFAULT_FTP_PASSIVE_PORT 55600L
123 #define DEFAULT_WEBSOCKET_PORT 8282L
124 #define DEFAULT_CAMERA_PORT 9600L
125 #define DEFAULT_TELNET_PORT 23L
126 #define DEFAULT_DHT_INTERVAL 30000L
127 #define DEFAULT_BOOT_DELAY 10000L
128 #define DEFAULT_CALIBRATION_VALUE 0
129 #define DEFAULT_CALIBRATION_DONE 0
130 
131 #ifdef WIFI_FEATURE
132 //default string values
133 const char DEFAULT_AP_SSID [] = "ESP3D";
134 const char DEFAULT_AP_PASSWORD [] = "12345678";
135 const char DEFAULT_STA_SSID [] = "ESP3D";
136 const char DEFAULT_STA_PASSWORD [] = "12345678";
137 #endif //WIFI_FEATURE
138 #if defined (BLUETOOTH_FEATURE) || defined (WIFI_FEATURE) ||defined (ETH_FEATURE)
139 const char DEFAULT_HOSTNAME [] = "esp3d";
140 #endif //BLUETOOTH_FEATURE ||WIFI_FEATURE || ETH_FEATURE
141 const char DEFAULT_ESP_STRING [] = "";
142 #ifdef AUTHENTICATION_FEATURE
143 const char DEFAULT_ADMIN_PWD [] = "admin";
144 const char DEFAULT_USER_PWD [] = "user";
145 #endif //AUTHENTICATION_FEATURE
146 #ifdef TIMESTAMP_FEATURE
147 const char DEFAULT_TIME_SERVER1 [] = "1.pool.ntp.org";
148 const char DEFAULT_TIME_SERVER2 [] = "2.pool.ntp.org";
149 const char DEFAULT_TIME_SERVER3 [] = "0.pool.ntp.org";
150 #endif //TIMESTAMP_FEATURE
151 const char DEFAULT_SETTINGS_VERSION [] = "ESP3D";
152 
153 #if defined (WIFI_FEATURE) ||defined (ETH_FEATURE)
154 //default IP values
155 const uint8_t DEFAULT_IP_VALUE[] = {192, 168, 0, 1};
156 const uint8_t DEFAULT_MASK_VALUE[] = {255, 255, 255, 0};
157 #define DEFAULT_GATEWAY_VALUE DEFAULT_IP_VALUE
158 const uint8_t DEFAULT_ADDRESS_VALUE[] = {0, 0, 0, 0};
159 #endif //WIFI_FEATURE || ETH_FEATURE
160 
161 uint8_t Settings_ESP3D::_FirmwareTarget = UNKNOWN_FW;
162 bool Settings_ESP3D::_SDdevice = ESP_NO_SD;
163 
165 {
166 }
168 {
169 }
170 
172 {
173  if(GetSettingsVersion() == -1) {
174  return false;
175  }
176  //get target FW
178  //get SD device if any
180  return true;
181 }
182 
183 uint8_t Settings_ESP3D::GetFirmwareTarget(bool fromsettings)
184 {
185  if(fromsettings) {
186  _FirmwareTarget = read_byte (ESP_TARGET_FW);
187  }
188  return _FirmwareTarget;
189 }
190 
191 uint8_t Settings_ESP3D::GetSDDevice(bool fromsettings)
192 {
193  if(fromsettings) {
194 #ifdef SD_DEVICE
195  _SDdevice = read_byte (ESP_SD_DEVICE_TYPE);
196 #else // !SD_DEVICE
197  _SDdevice = ESP_NO_SD;
198 #endif //SD_DEVICE
199  }
200  return _SDdevice;
201 }
202 
204 {
205  static String response;
206  if ( _FirmwareTarget == REPETIER4DV) {
207  response = F ("repetier4davinci");
208  } else if ( _FirmwareTarget == REPETIER) {
209  response = F ("repetier");
210  } else if ( _FirmwareTarget == MARLIN) {
211  response = F ("marlin");
212  } else if ( _FirmwareTarget == MARLINKIMBRA) {
213  response = F ("marlinkimbra");
214  } else if ( _FirmwareTarget == SMOOTHIEWARE) {
215  response = F ("smoothieware");
216  } else if ( _FirmwareTarget == GRBL) {
217  response = F ("grbl");
218  } else {
219  response = F ("???");
220  }
221  return response.c_str();
222 }
223 
224 //Default value for a byte setting
226 {
227  uint8_t res;
228  switch(pos) {
229  case ESP_RADIO_MODE:
231  break;
232 #ifdef TIMESTAMP_FEATURE
233  case ESP_INTERNET_TIME:
234  res = DEFAULT_INTERNET_TIME;
235  break;
236 #endif //TIMESTAMP_FEATURE
237 #ifdef BUZZER_DEVICE
238  case ESP_BUZZER:
239  res = DEFAULT_BUZZER_STATE;
240  break;
241 #endif //BUZZER_DEVICE
242 #ifdef NOTIFICATION_FEATURE
245  break;
248  break;
249 #endif //NOTIFICATION_FEATURE
250 #if defined (WIFI_FEATURE) || defined (ETH_FEATURE)
251  case ESP_STA_IP_MODE:
252  res = DEFAULT_STA_IP_MODE;
253  break;
254 #endif //WIFI_FEATURE || ETH_FEATURE
255  //case ESP_AP_PHY_MODE:
256  //case ESP_STA_PHY_MODE:
257  // res = DEFAULT_PHY_MODE;
258  // break;
259  //case ESP_SLEEP_MODE:
260  // res = DEFAULT_SLEEP_MODE;
261  // break;
262 #if defined (WIFI_FEATURE)
263  case ESP_AP_CHANNEL:
264  res = DEFAULT_AP_CHANNEL;
265  break;
266  //case ESP_AP_AUTH_TYPE:
267  // res = DEFAULT_AUTH_TYPE;
268  // break;
269  //case ESP_SSID_VISIBLE:
270  // res = DEFAULT_SSID_VISIBLE;
271  // break;
272 #endif //WIFI_FEATURE
273  case ESP_OUTPUT_FLAG:
274  res = DEFAULT_OUTPUT_FLAG;
275  break;
276 #ifdef FTP_FEATURE
277  case ESP_FTP_ON:
278  res = DEFAULT_FTP_ON;
279  break;
280 #endif //FTP_FEATURE
281 #ifdef HTTP_FEATURE
282  case ESP_HTTP_ON:
283  res = DEFAULT_HTTP_ON;
284  break;
285 #endif //HTTP_FEATURE
286 #ifdef TELNET_FEATURE
287  case ESP_TELNET_ON:
288  res = DEFAULT_TELNET_ON;
289  break;
290 #endif //TELNET_FEATURE
291 #ifdef WS_DATA_FEATURE
292  case ESP_WEBSOCKET_ON:
293  res = DEFAULT_WEBSOCKET_ON;
294  break;
295 #endif //WS_DATA_FEATURE
296 #ifdef SD_DEVICE
297  case ESP_SD_SPEED_DIV:
299  break;
300  case ESP_SD_MOUNT:
301  res = DEFAULT_SD_MOUNT;
302  break;
303  case ESP_DIRECT_SD_CHECK:
305  break;
308  break;
309  case ESP_SD_DEVICE_TYPE:
311  break;
312 #endif //SD_DEVICE
313  case ESP_TARGET_FW:
314  res = DEFAULT_FW;
315  break;
316 #ifdef TIMESTAMP_FEATURE
317  case ESP_TIMEZONE:
318  res = DEFAULT_TIME_ZONE;
319  break;
320  case ESP_TIME_IS_DST:
321  res = DEFAULT_TIME_DST;
322  break;
323 #endif //TIMESTAMP_FEATURE
324 
325 #if defined(DHT_DEVICE)
326  case ESP_DHT_TYPE:
327  res = DEFAULT_DHT_TYPE;
328  break;
329 #endif //DHT_DEVICE
330 #if defined(DISPLAY_DEVICE) && defined(DISPLAY_TOUCH_DRIVER)
331  case ESP_CALIBRATION:
333  break;
334 #endif // DISPLAY_DEVICE && DISPLAY_TOUCH_DRIVER
335  default:
336  res = DEFAULT_ESP_BYTE;
337  }
338  return res;
339 }
340 
341 //Default value for a int32 setting
343 {
344  uint32_t res;
345  switch(pos) {
346  case ESP_BAUD_RATE:
347  res = DEFAULT_BAUD_RATE;
348  break;
349  case ESP_BOOT_DELAY:
350  res = DEFAULT_BOOT_DELAY;
351  break;
352 #if defined(DISPLAY_DEVICE) && defined(DISPLAY_TOUCH_DRIVER)
353  case ESP_CALIBRATION_1:
354  case ESP_CALIBRATION_2:
355  case ESP_CALIBRATION_3:
356  case ESP_CALIBRATION_4:
357  case ESP_CALIBRATION_5:
359  break;
360 #endif // DISPLAY_DEVICE && DISPLAY_TOUCH_DRIVER
361 #if defined (WIFI_FEATURE) || defined (ETH_FEATURE)
362  case ESP_AP_IP_VALUE:
363  case ESP_STA_IP_VALUE:
364  res = IPAddress(DEFAULT_IP_VALUE);
365  break;
366  case ESP_STA_MASK_VALUE:
367  res = IPAddress(DEFAULT_MASK_VALUE);
368  break;
370  res = IPAddress(DEFAULT_GATEWAY_VALUE);
371  break;
372 #endif //WIFI_FEATURE || ETH_FEATURE
373 #ifdef FTP_FEATURE
374  case ESP_FTP_CTRL_PORT:
375  res = DEFAULT_FTP_CTRL_PORT;
376  break;
379  break;
382  break;
383 #endif //FTP_FEATURE
384 #ifdef HTTP_FEATURE
385  case ESP_HTTP_PORT:
386  res = DEFAULT_HTTP_PORT;
387  break;
388 #endif //HTTP_FEATURE
389 #ifdef TELNET_FEATURE
390  case ESP_TELNET_PORT:
391  res = DEFAULT_TELNET_PORT;
392  break;
393 #endif //TELNET_FEATURE
394 #ifdef WS_DATA_FEATURE
395  case ESP_WEBSOCKET_PORT:
397  break;
398 #endif //WS_DATA_FEATURE
399 #ifdef CAMERA_DEVICE
400  case ESP_CAMERA_PORT:
401  res = DEFAULT_CAMERA_PORT;
402  break;
403 #endif //CAMERA_DEVICE
404 #if defined(DHT_DEVICE)
405  case ESP_DHT_INTERVAL:
406  res = DEFAULT_DHT_INTERVAL;
407  break;
408 #endif //DHT_DEVICE
409  default:
410  res = DEFAULT_ESP_INT;
411  }
412  return res;
413 }
414 
415 //Max value for a int32 setting
417 {
418  uint32_t res;
419  switch(pos) {
420  case ESP_BOOT_DELAY:
421  res = MAX_BOOT_DELAY;
422  break;
423 #ifdef CAMERA_DEVICE
424  case ESP_CAMERA_PORT:
425  res = MAX_HTTP_PORT;
426  break;
427 #endif //CAMERA_DEVICE
428 #ifdef FTP_FEATURE
429  case ESP_FTP_CTRL_PORT:
432  res = MAX_FTP_PORT;
433  break;
434 #endif //FTP_FEATURE
435 #ifdef HTTP_FEATURE
436  case ESP_HTTP_PORT:
437  res = MAX_HTTP_PORT;
438  break;
439 #endif //HTTP_FEATURE
440 #ifdef TELNET_FEATURE
441  case ESP_TELNET_PORT:
442  res = MAX_TELNET_PORT;
443  break;
444 #endif //TELNET_FEATURE
445 #ifdef WS_DATA_FEATURE
446  case ESP_WEBSOCKET_PORT:
447  res = MAX_WEBSOCKET_PORT;
448  break;
449 #endif //WS_DATA_FEATURE
450 #if defined(DHT_DEVICE)
451  case ESP_DHT_INTERVAL:
452  res = MAX_DHT_INTERVAL;
453  break;
454 #endif //DHT_DEVICE
455  default:
456  res = DEFAULT_ESP_INT;
457  }
458  return res;
459 }
460 
461 //Min value for a int32 setting
463 {
464  uint32_t res;
465  switch(pos) {
466  case ESP_BOOT_DELAY:
467  res = MIN_BOOT_DELAY;
468  break;
469 #ifdef CAMERA_DEVICE
470  case ESP_CAMERA_PORT:
471  res =MIN_HTTP_PORT;
472  break;
473 #endif //CAMERA_DEVICE
474 #ifdef FTP_FEATURE
475  case ESP_FTP_CTRL_PORT:
478  res =MIN_FTP_PORT;
479  break;
480 #endif //FTP_FEATURE
481 #ifdef HTTP_FEATURE
482  case ESP_HTTP_PORT:
483  res = MIN_HTTP_PORT;
484  break;
485 #endif //HTTP_FEATURE
486 #ifdef TELNET_FEATURE
487  case ESP_TELNET_PORT:
488  res = MIN_TELNET_PORT;
489  break;
490 #endif //TELNET_FEATURE
491 #ifdef WS_DATA_FEATURE
492  case ESP_WEBSOCKET_PORT:
493  res = MIN_WEBSOCKET_PORT;
494  break;
495 #endif //WS_DATA_FEATURE
496 #if defined(DHT_DEVICE)
497  case ESP_DHT_INTERVAL:
498  res = MIN_DHT_INTERVAL;
499  break;
500 #endif //DHT_DEVICE
501  default:
502  res = DEFAULT_ESP_INT;
503  }
504  return res;
505 }
506 
508 {
509  uint8_t res;
510  switch(pos) {
511 #if defined (WIFI_FEATURE)
512  case ESP_AP_CHANNEL:
513  res = MAX_CHANNEL;
514  break;
515 #endif //WIFI_FEATURE
516 #ifdef TIMESTAMP_FEATURE
517  case ESP_TIMEZONE:
518  res= 12;
519  break;
520 #endif //TIMESTAMP_FEATURE
521  default:
522  res = 255;
523  }
524  return res;
525 }
526 
528 {
529  uint8_t res;
530  switch(pos) {
531 #if defined (WIFI_FEATURE)
532  case ESP_AP_CHANNEL:
533  res = MIN_CHANNEL;
534  break;
535 #endif //WIFI_FEATURE
536 #ifdef TIMESTAMP_FEATURE
537  case ESP_TIMEZONE:
538  res= -12;
539  break;
540 #endif //TIMESTAMP_FEATURE
541  default:
542  res = 0;
543  }
544  return res;
545 }
546 
547 //Default value for a ip setting
549 {
550  return get_default_int32_value(pos);
551 }
552 
553 //Default value for a byte setting
555 {
556  static String res;
557  switch(pos) {
558 #if defined (WIFI_FEATURE) || defined (ETH_FEATURE) || defined (BLUETOOTH_FEATURE)
559  case ESP_HOSTNAME:
560  res = DEFAULT_HOSTNAME;
561  break;
562 #endif //WIFI_FEATURE || ETH_FEATURE || defined (ETH_FEATURE)
563 #ifdef TIMESTAMP_FEATURE
564  case ESP_TIME_SERVER1:
565  res = DEFAULT_TIME_SERVER1;
566  break;
567  case ESP_TIME_SERVER2:
568  res = DEFAULT_TIME_SERVER2;
569  break;
570  case ESP_TIME_SERVER3:
571  res = DEFAULT_TIME_SERVER3;
572  break;
573 #endif //TIMESTAMP_FEATURE
574 #ifdef NOTIFICATION_FEATURE
577  break;
580  break;
583  break;
584 #endif //NOTIFICATION_FEATURE
585 #if defined (WIFI_FEATURE)
586  case ESP_STA_SSID:
587  res = DEFAULT_STA_SSID;
588  break;
589  case ESP_AP_SSID:
590  res = DEFAULT_AP_SSID;
591  break;
592  case ESP_STA_PASSWORD:
593  res = DEFAULT_STA_PASSWORD;
594  break;
595  case ESP_AP_PASSWORD:
596  res = DEFAULT_AP_PASSWORD;
597  break;
598 #endif //WIFI_FEATURE
599 #ifdef AUTHENTICATION_FEATURE
600  case ESP_ADMIN_PWD:
601  res = DEFAULT_ADMIN_PWD;
602  break;
603  case ESP_USER_PWD:
604  res = DEFAULT_USER_PWD;
605  break;
606 #endif //AUTHENTICATION_FEATURE
609  break;
610  default:
611  res = DEFAULT_ESP_STRING;
612  }
613  return res;
614 }
615 
616 //Max size of for a string setting
618 {
619  uint8_t res;
620  switch(pos) {
621 #if defined (WIFI_FEATURE) || defined (ETH_FEATURE) || defined (BLUETOOTH_FEATURE)
622  case ESP_HOSTNAME:
623  res = MAX_HOSTNAME_LENGTH;
624  break;
625 #endif //WIFI_FEATURE || ETH_FEATURE || BLUETOOTH_FEATURE
626 #ifdef TIMESTAMP_FEATURE
627  case ESP_TIME_SERVER1:
628  case ESP_TIME_SERVER2:
629  case ESP_TIME_SERVER3:
631  break;
632 #endif //TIMESTAMP_FEATURE
633 #ifdef NOTIFICATION_FEATURE
637  break;
640  break;
641 #endif //NOTIFICATION_FEATURE
642 #if defined (WIFI_FEATURE)
643  case ESP_STA_SSID:
644  case ESP_AP_SSID:
645  res = MAX_SSID_LENGTH;
646  break;
647  case ESP_STA_PASSWORD:
648  case ESP_AP_PASSWORD:
649  res = MAX_PASSWORD_LENGTH;
650  break;
651 #endif //WIFI_FEATURE
652 #ifdef AUTHENTICATION_FEATURE
653  case ESP_ADMIN_PWD:
654  case ESP_USER_PWD:
656  break;
657 #endif //AUTHENTICATION_FEATURE
659  res = MAX_VERSION_LENGTH;
660  break;
661  default:
663  }
664  return res;
665 }
666 
667 //Min size of for a string setting
669 {
670  uint8_t res;
671  switch(pos) {
672 #if defined (WIFI_FEATURE) || defined (ETH_FEATURE) || defined (BLUETOOTH_FEATURE)
673  case ESP_HOSTNAME:
674  res = MIN_HOSTNAME_LENGTH;
675  break;
676 #endif //WIFI_FEATURE || ETH_FEATURE || BLUETOOTH_FEATURE
677 #ifdef NOTIFICATION_FEATURE
681  break;
684  break;
685 #endif //NOTIFICATION_FEATURE
686 #ifdef TIMESTAMP_FEATURE
687  case ESP_TIME_SERVER1:
688  case ESP_TIME_SERVER2:
689  case ESP_TIME_SERVER3:
691  break;
692 #endif //TIMESTAMP_FEATURE
693 #if defined (WIFI_FEATURE)
694  case ESP_STA_SSID:
695  case ESP_AP_SSID:
696  res = MIN_SSID_LENGTH;
697  break;
698  case ESP_STA_PASSWORD:
699  case ESP_AP_PASSWORD:
700  res = MIN_PASSWORD_LENGTH;
701  break;
702 #endif //WIFI_FEATURE
703 #ifdef AUTHENTICATION_FEATURE
704  case ESP_ADMIN_PWD:
705  case ESP_USER_PWD:
707  break;
708 #endif //AUTHENTICATION_FEATURE
709  default:
711  }
712  return res;
713 }
714 
715 uint8_t Settings_ESP3D::read_byte (int pos, bool * haserror)
716 {
717  if(haserror) {
718  *haserror = true;
719  }
720  uint8_t value = get_default_byte_value(pos);
721 #if ESP_SAVE_SETTINGS == SETTINGS_IN_EEPROM
722 //check if parameters are acceptable
723  if ((pos + 1 > EEPROM_SIZE) ) {
724  log_esp3d("Error read byte %d", pos);
725  return value;
726  }
727 //read byte
728  EEPROM.begin (EEPROM_SIZE);
729  value = EEPROM.read (pos);
730  EEPROM.end();
731 #endif //SETTINGS_IN_EEPROM
732 #if ESP_SAVE_SETTINGS == SETTINGS_IN_PREFERENCES
733  Preferences prefs;
734  if (!prefs.begin(NAMESPACE, true)) {
735  log_esp3d("Error opening %s", NAMESPACE);
736  return value;
737  }
738  String p = "P_" + String(pos);
739  value = prefs.getChar(p.c_str(), get_default_byte_value(pos));
740  prefs.end();
741 #endif //SETTINGS_IN_PREFERENCES
742  if(haserror) {
743  *haserror = false;
744  }
745  return value;
746 }
747 
748 //write a flag / byte
749 bool Settings_ESP3D::write_byte (int pos, const uint8_t value)
750 {
751 #if ESP_SAVE_SETTINGS == SETTINGS_IN_EEPROM
752  //check if parameters are acceptable
753  if (pos + 1 > EEPROM_SIZE) {
754  log_esp3d("Error read byte %d", pos);
755  return false;
756  }
757  EEPROM.begin (EEPROM_SIZE);
758  EEPROM.write (pos, value);
759  if (!EEPROM.commit()) {
760  log_esp3d("Error commit %d", pos);
761  return false;
762  }
763  EEPROM.end();
764 #endif //SETTINGS_IN_EEPROM
765 #if ESP_SAVE_SETTINGS == SETTINGS_IN_PREFERENCES
766  Preferences prefs;
767  if (!prefs.begin(NAMESPACE, false)) {
768  log_esp3d("Error opening %s", NAMESPACE);
769  return false;
770  }
771  String p = "P_" + String(pos);
772  uint8_t r = prefs.putChar(p.c_str(), value);
773  prefs.end();
774  if (r == 0) {
775  log_esp3d("Error commit %s", p.c_str());
776  return false;
777  }
778 #endif //SETTINGS_IN_PREFERENCES
779  return true;
780 }
781 
782 bool Settings_ESP3D::is_string(const char * s, uint len)
783 {
784  for (uint p = 0; p < len; p++) {
785  if (!isPrintable (char(s[p]))) {
786  return false;
787  }
788  }
789  return true;
790 }
791 
792 //read a string
793 //a string is multibyte + \0, this is won't work if 1 char is multibyte like chinese char
794 const char * Settings_ESP3D::read_string (int pos, bool *haserror)
795 {
796  uint8_t size_max = get_max_string_size(pos);
797  if (haserror) {
798  *haserror = true;
799  }
800  if (size_max == 0) {
801  log_esp3d("Error size string %d", pos);
802  return DEFAULT_ESP_STRING;
803  }
804 #if ESP_SAVE_SETTINGS == SETTINGS_IN_EEPROM
805  static char * byte_buffer = NULL;
806  size_max++;//do not forget the 0x0 for the end
807  if (byte_buffer) {
808  free (byte_buffer);
809  byte_buffer = NULL;
810  }
811  //check if parameters are acceptable
812  if (pos + size_max + 1 > EEPROM_SIZE) {
813  log_esp3d("Error read string %d", pos);
814  return DEFAULT_ESP_STRING;
815  }
816  byte_buffer = (char *)malloc(size_max+1);
817  if (!byte_buffer) {
818  log_esp3d("Error mem read string %d", pos);
819  return DEFAULT_ESP_STRING;
820  }
821  EEPROM.begin (EEPROM_SIZE);
822  byte b = 1; // non zero for the while loop below
823  int i = 0;
824 
825  //read until max size is reached or \0 is found
826  while (i < size_max && b != 0) {
827  b = EEPROM.read (pos + i);
828  byte_buffer[i] = isPrintable (char(b))?b:0;
829  i++;
830  }
831 
832  // Be sure there is a 0 at the end.
833  if (b != 0) {
834  byte_buffer[i - 1] = 0x00;
835  }
836  EEPROM.end();
837 
838  if (haserror) {
839  *haserror = false;
840  }
841  return byte_buffer;
842 
843 #endif //SETTINGS_IN_EEPROM
844 #if ESP_SAVE_SETTINGS == SETTINGS_IN_PREFERENCES
845  Preferences prefs;
846  static String res;
847 
848  if (!prefs.begin(NAMESPACE, true)) {
849  log_esp3d("Error opening %s", NAMESPACE);
850  return "";
851  }
852  String p = "P_" + String(pos);
853  res = prefs.getString(p.c_str(), get_default_string_value(pos));
854  prefs.end();
855 
856  if (res.length() > size_max) {
857  log_esp3d("String too long %d vs %d", res.length(), size_max);
858  res = res.substring(0,size_max-1);
859  }
860 
861  if (haserror) {
862  *haserror = false;
863  }
864  return res.c_str();
865 
866 #endif //SETTINGS_IN_PREFERENCES
867 }
868 
869 //write a string (array of byte with a 0x00 at the end)
870 bool Settings_ESP3D::write_string (int pos, const char * byte_buffer)
871 {
872  int size_buffer = strlen (byte_buffer);
873  uint8_t size_max = get_max_string_size(pos);
874  //check if parameters are acceptable
875  if (size_max == 0) {
876  log_esp3d("Error unknow entry %d", pos);
877  return false;
878  }
879  if (size_max < size_buffer) {
880  log_esp3d("Error string too long %d, %d", pos, size_buffer);
881  return false;
882  }
883 #if ESP_SAVE_SETTINGS == SETTINGS_IN_EEPROM
884  if ( pos + size_buffer + 1 > EEPROM_SIZE || byte_buffer == NULL) {
885  log_esp3d("Error write string %d", pos);
886  return false;
887  }
888  //copy the value(s)
889  EEPROM.begin (EEPROM_SIZE);
890  for (int i = 0; i < size_buffer; i++) {
891  EEPROM.write (pos + i, byte_buffer[i]);
892  }
893  //0 terminal
894  EEPROM.write (pos + size_buffer, 0x00);
895  if (!EEPROM.commit()) {
896  log_esp3d("Error commit %d", pos);
897  return false;
898  }
899  EEPROM.end();
900 #endif //SETTINGS_IN_EEPROM
901 #if ESP_SAVE_SETTINGS == SETTINGS_IN_PREFERENCES
902  Preferences prefs;
903  if (!prefs.begin(NAMESPACE, false)) {
904  log_esp3d("Error opening %s", NAMESPACE);
905  return false;
906  }
907  String p = "P_" + String(pos);
908  uint8_t r = prefs.putString(p.c_str(), byte_buffer);
909  prefs.end();
910  if (r != size_buffer) {
911  log_esp3d("Error commit %s", p.c_str());
912  return false;
913  }
914 #endif //SETTINGS_IN_PREFERENCES
915  return true;
916 }
917 
918 //read a uint32
919 uint32_t Settings_ESP3D::read_uint32(int pos, bool * haserror)
920 {
921  if (haserror) {
922  *haserror = true;
923  }
924  uint32_t res = get_default_int32_value(pos);
925 #if ESP_SAVE_SETTINGS == SETTINGS_IN_EEPROM
926  //check if parameters are acceptable
927  uint8_t size_buffer = sizeof(uint32_t);
928  if ( pos + size_buffer > EEPROM_SIZE ) {
929  log_esp3d("Error read int %d", pos);
930  return res;
931  }
932  uint8_t i = 0;
933  EEPROM.begin (EEPROM_SIZE);
934  //read until max size is reached
935  while (i < size_buffer ) {
936  ((uint8_t *)(&res))[i] = EEPROM.read (pos + i);
937  i++;
938  }
939  EEPROM.end();
940 #endif //SETTINGS_IN_EEPROM
941 #if ESP_SAVE_SETTINGS == SETTINGS_IN_PREFERENCES
942  Preferences prefs;
943  if (!prefs.begin(NAMESPACE, true)) {
944  log_esp3d("Error opening %s", NAMESPACE);
945  return res;
946  }
947  String p = "P_" + String(pos);
948  res = prefs.getUInt(p.c_str(), res);
949  prefs.end();
950 #endif //SETTINGS_IN_PREFERENCES
951  if (haserror) {
952  *haserror = false;
953  }
954  return res;
955 }
956 
957 //read an IP
958 uint32_t Settings_ESP3D::read_IP(int pos, bool * haserror)
959 {
960  return read_uint32(pos,haserror);
961 }
962 
963 //read an IP
964 String Settings_ESP3D::read_IP_String(int pos, bool * haserror)
965 {
966  return IPtoString(read_uint32(pos,haserror));
967 }
968 
969 //write a uint32
970 bool Settings_ESP3D::write_uint32(int pos, const uint32_t value)
971 {
972 #if ESP_SAVE_SETTINGS == SETTINGS_IN_EEPROM
973  uint8_t size_buffer = sizeof(uint32_t);
974  //check if parameters are acceptable
975  if (pos + size_buffer > EEPROM_SIZE) {
976  log_esp3d("Error invalid entry %d", pos);
977  return false;
978  }
979  EEPROM.begin (EEPROM_SIZE);
980  //copy the value(s)
981  for (int i = 0; i < size_buffer; i++) {
982  EEPROM.write (pos + i, ((uint8_t *)(&value))[i]);
983  }
984  if (!EEPROM.commit()) {
985  log_esp3d("Error commit %d", pos);
986  return false;
987  }
988  EEPROM.end();
989 #endif //SETTINGS_IN_EEPROM
990 #if ESP_SAVE_SETTINGS == SETTINGS_IN_PREFERENCES
991  Preferences prefs;
992  if (!prefs.begin(NAMESPACE, false)) {
993  log_esp3d("Error opening %s", NAMESPACE);
994  return false;
995  }
996  String p = "P_" + String(pos);
997  uint8_t r = prefs.putUInt(p.c_str(), value);
998  prefs.end();
999  if (r == 0) {
1000  log_esp3d("Error commit %s", p.c_str());
1001  return false;
1002  }
1003 #endif //SETTINGS_IN_PREFERENCES
1004  return true;
1005 }
1006 
1007 //write a IP
1008 bool Settings_ESP3D::write_IP(int pos, const uint32_t value)
1009 {
1010  return write_uint32(pos, value);
1011 }
1012 
1013 //clear all entries
1015 {
1016  bool res = true;
1017  log_esp3d("Reset Settings");
1018 
1019 #if ESP_SAVE_SETTINGS == SETTINGS_IN_PREFERENCES
1020  log_esp3d("clear preferences");
1021  Preferences prefs;
1022  if (!prefs.begin(NAMESPACE, false)) {
1023  return false;
1024  }
1025  res = prefs.clear();
1026  prefs.end();
1027 #endif //SETTINGS_IN_PREFERENCES
1028 
1029 //for EEPROM need to overwrite all settings
1030 #if ESP_SAVE_SETTINGS == SETTINGS_IN_EEPROM
1031  log_esp3d("clear EEPROM");
1032 
1033 #if defined(DISPLAY_DEVICE) && defined(DISPLAY_TOUCH_DRIVER)
1034  //Calibration done (internal only)
1036  //Calibration data (internal only)
1042 #endif // DISPLAY_DEVICE && DISPLAY_TOUCH_DRIVER
1043 #ifdef BUZZER_DEVICE
1044  //Buzzer state
1046 #endif //BUZZER_DEVICE
1047 #if defined (WIFI_FEATURE) || defined (BLUETOOTH_FEATURE) || defined (ETH_FEATURE)
1048  //Hostname
1050 #endif //WIFI_FEATURE || BLUETOOTH_FEATURE || ETH_FEATURE
1051 #ifdef NOTIFICATION_FEATURE
1052  //Auto Notification
1054  //Notification Type
1056  //Notification Token1
1058  //Notification Token2
1060  //Notification Settings
1062 #endif //NOTIFICATION_FEATURE
1063  //radio mode
1065 #if defined (WIFI_FEATURE)
1066  //STA SSID
1068  //STA pwd
1070  //AP SSID
1072  //AP password
1074  //AP static IP
1076  //AP Channel
1078  //AP Network Mode (PHY)
1079  //Settings_ESP3D::write_byte(ESP_AP_PHY_MODE,Settings_ESP3D::get_default_byte_value(ESP_AP_PHY_MODE));
1080  //AP Authentication
1081  //Settings_ESP3D::write_byte(ESP_AP_AUTH_TYPE,Settings_ESP3D::get_default_byte_value(ESP_AP_AUTH_TYPE));
1082  //AP SSID visibility
1083  //Settings_ESP3D::write_byte(ESP_SSID_VISIBLE,Settings_ESP3D::get_default_byte_value(ESP_SSID_VISIBLE));
1084 #endif //WIFI_FEATURE
1085 
1086 #if defined (WIFI_FEATURE) || defined (ETH_FEATURE)
1087  //STA Network Mode
1088  //Settings_ESP3D::write_byte(ESP_STA_PHY_MODE,Settings_ESP3D::get_default_byte_value(ESP_STA_PHY_MODE));
1089  //STA IP mode
1091  //STA static IP
1093  //STA static Gateway
1095  //STA static Mask
1097 #endif //WIFI_FEATURE || ETH_FEATURE
1098 
1099 #ifdef FTP_FEATURE
1100  //FTP On
1102  //FTP Ctrl Port
1104  //FTP Active data Port
1106  //FTP Pasive data Port
1108 #endif //FTP_FEATURE
1109 
1110 #ifdef HTTP_FEATURE
1111  //HTTP On
1113  //HTTP Port
1115 #endif //HTTP_FEATURE
1116 
1117 #ifdef TELNET_FEATURE
1118  //TELNET On
1120  //TELNET Port
1122 #endif //TELNET
1123 
1124 #ifdef CAMERA_DEVICE
1125  //Camera Port
1127 #endif //CAMERA_DEVICE
1128 
1129 #ifdef WS_DATA_FEATURE
1130  //Websocket On
1132  //Websocket Port
1134 #endif //WS_DATA_FEATURE
1135 #ifdef AUTHENTICATION_FEATURE
1136  //Admin password
1138  //User password
1140 #endif //AUTHENTICATION_FEATURE
1141  //Target FW
1143  //Output flag
1145 #ifdef SD_DEVICE
1146  //Direct SD
1148  //SPI SD Divider
1150 #endif //SD_DEVICE
1151 
1152 #ifdef TIMESTAMP_FEATURE
1153  //Internet time
1155  //Time Zone
1157  //Is DST Time Zone
1159  //Time Server 1 address
1161  //Time Server 2 address
1163  //Time Server 3 address
1165 #endif //TIMESTAMP_FEATURE
1166 #ifdef DHT_DEVICE
1167  //DHT device
1169  //DHT query interval
1171 #endif //DHT_DEVICE
1172  //Start Delay
1174 #endif //SETTINGS_IN_EEPROM
1175  //set version in settings
1176  if (res) {
1177  log_esp3d("Reset Setting Version");
1178  //Settings version (internal only)
1180  }
1181  return res;
1182 }
1183 
1184 //Get Settings Version
1185 // * -1 means no version detected
1186 // * 00 / 01 Not used
1187 // * 03 and up is version
1189 {
1190  int8_t v = -1;
1192  if ((version == "ESP3D") ||( version.length() != 7) || (version.indexOf("ESP3D")!=0)) {
1193  log_esp3d("Invalid Settings Version %s",version.c_str());
1194  return v;
1195  }
1196  v = version.substring(5).toInt();
1197  log_esp3d("Settings Version %d", v);
1198  return v;
1199 }
1200 
1201 //write a IP from string
1202 bool Settings_ESP3D::write_IP_String(int pos, const char * value)
1203 {
1204  return write_uint32(pos, StringtoIP(value));
1205 }
1206 
1207 //Helper to convert IP string to int
1208 uint32_t Settings_ESP3D::StringtoIP(const char *s)
1209 {
1210  uint32_t ip_int = 0;
1211  IPAddress ipaddr;
1212  if (ipaddr.fromString(s)) {
1213  ip_int = ipaddr;
1214  }
1215  return ip_int;
1216 }
1217 
1218 // Helper to convert int to IP string
1219 String Settings_ESP3D::IPtoString(uint32_t ip_int)
1220 {
1221  static IPAddress ipaddr;
1222  ipaddr = ip_int;
1223  return ipaddr.toString();
1224 }
1225 
1227 {
1228 #ifdef ARDUINO_ARCH_ESP32
1229  return "ESP32";
1230 #endif //ARDUINO_ARCH_ESP32
1231 #ifdef ARDUINO_ARCH_ESP8266
1232  return "ESP82XX";
1233 #endif //ARDUINO_ARCH_ESP8266
1234 }
1235 
1236 bool Settings_ESP3D::isLocalPasswordValid (const char * password)
1237 {
1238  char c;
1239  //limited size
1240  if ( (strlen (password) > MAX_LOCAL_PASSWORD_LENGTH) || (strlen (password) <= MIN_LOCAL_PASSWORD_LENGTH) ) {
1241  return false;
1242  }
1243  //no space allowed
1244  for (uint8_t i = 0; i < strlen (password); i++) {
1245  c = password[i];
1246  if (c == ' ') {
1247  return false;
1248  }
1249  }
1250  return true;
1251 }
1252 #endif //ESP_SAVE_SETTINGS
ESP_CALIBRATION_4
#define ESP_CALIBRATION_4
Definition: settings_esp3d.h:87
ESP_FTP_DATA_ACTIVE_PORT
#define ESP_FTP_DATA_ACTIVE_PORT
Definition: settings_esp3d.h:92
Settings_ESP3D::write_byte
static bool write_byte(int pos, const uint8_t value)
Definition: settings_esp3d.cpp:749
REPETIER4DV
#define REPETIER4DV
Definition: settings_esp3d.h:29
ESP_HTTP_PORT
#define ESP_HTTP_PORT
Definition: settings_esp3d.h:52
DEFAULT_ESP_STRING
const char DEFAULT_ESP_STRING[]
Definition: settings_esp3d.cpp:141
MAX_HTTP_PORT
#define MAX_HTTP_PORT
Definition: netconfig.h:24
ESP_DHT_INTERVAL
#define ESP_DHT_INTERVAL
Definition: settings_esp3d.h:56
DEFAULT_HOSTNAME
const char DEFAULT_HOSTNAME[]
Definition: settings_esp3d.cpp:139
DEFAULT_CAMERA_PORT
#define DEFAULT_CAMERA_PORT
Definition: settings_esp3d.cpp:124
Settings_ESP3D::read_string
static const char * read_string(int pos, bool *haserror=NULL)
Definition: settings_esp3d.cpp:794
DEFAULT_ESP_STRING_SIZE
#define DEFAULT_ESP_STRING_SIZE
Definition: settings_esp3d.cpp:86
ESP_SETTINGS_VERSION
#define ESP_SETTINGS_VERSION
Definition: settings_esp3d.h:57
MIN_BOOT_DELAY
#define MIN_BOOT_DELAY
Definition: settings_esp3d.cpp:55
MIN_FTP_PORT
#define MIN_FTP_PORT
Definition: netconfig.h:27
ESP_DHT_TYPE
#define ESP_DHT_TYPE
Definition: settings_esp3d.h:71
Settings_ESP3D::isLocalPasswordValid
static bool isLocalPasswordValid(const char *password)
Definition: settings_esp3d.cpp:1236
DEFAULT_TELNET_ON
#define DEFAULT_TELNET_ON
Definition: settings_esp3d.cpp:107
DEFAULT_SD_MOUNT
#define DEFAULT_SD_MOUNT
Definition: settings_esp3d.cpp:100
ESP_TIME_SERVER3
#define ESP_TIME_SERVER3
Definition: settings_esp3d.h:77
MARLIN
#define MARLIN
Definition: settings_esp3d.h:30
ESP_NOTIFICATION_TYPE
#define ESP_NOTIFICATION_TYPE
Definition: settings_esp3d.h:47
MAX_SSID_LENGTH
#define MAX_SSID_LENGTH
Definition: wificonfig.h:22
ESP_USER_PWD
#define ESP_USER_PWD
Definition: settings_esp3d.h:59
MAX_NOTIFICATION_TOKEN_LENGTH
#define MAX_NOTIFICATION_TOKEN_LENGTH
Definition: settings_esp3d.cpp:58
Settings_ESP3D::get_default_int32_value
static uint32_t get_default_int32_value(int pos)
Definition: settings_esp3d.cpp:342
Settings_ESP3D::get_max_int32_value
static uint32_t get_max_int32_value(int pos)
Definition: settings_esp3d.cpp:416
DEFAULT_STA_IP_MODE
#define DEFAULT_STA_IP_MODE
Definition: settings_esp3d.cpp:88
Settings_ESP3D::get_default_byte_value
static uint8_t get_default_byte_value(int pos)
Definition: settings_esp3d.cpp:225
ESP_TELNET_ON
#define ESP_TELNET_ON
Definition: settings_esp3d.h:66
DEFAULT_ESP_BYTE
#define DEFAULT_ESP_BYTE
Definition: settings_esp3d.cpp:85
DEFAULT_NOTIFICATION_TYPE
#define DEFAULT_NOTIFICATION_TYPE
Definition: settings_esp3d.cpp:109
ESP_AP_IP_VALUE
#define ESP_AP_IP_VALUE
Definition: settings_esp3d.h:62
Settings_ESP3D::GetSettingsVersion
static int8_t GetSettingsVersion()
Definition: settings_esp3d.cpp:1188
ESP_STA_PASSWORD
#define ESP_STA_PASSWORD
Definition: settings_esp3d.h:41
ESP_TARGET_FW
#define ESP_TARGET_FW
Definition: settings_esp3d.h:72
MIN_NOTIFICATION_TOKEN_LENGTH
#define MIN_NOTIFICATION_TOKEN_LENGTH
Definition: settings_esp3d.cpp:56
SMOOTHIEWARE
#define SMOOTHIEWARE
Definition: settings_esp3d.h:32
ESP_TELNET_PORT
#define ESP_TELNET_PORT
Definition: settings_esp3d.h:53
DEFAULT_MASK_VALUE
const uint8_t DEFAULT_MASK_VALUE[]
Definition: settings_esp3d.cpp:156
ESP_AP_PASSWORD
#define ESP_AP_PASSWORD
Definition: settings_esp3d.h:61
DEFAULT_STA_SSID
const char DEFAULT_STA_SSID[]
Definition: settings_esp3d.cpp:135
DEFAULT_SD_CHECK_UPDATE_AT_BOOT
#define DEFAULT_SD_CHECK_UPDATE_AT_BOOT
Definition: settings_esp3d.cpp:102
DEFAULT_BOOT_DELAY
#define DEFAULT_BOOT_DELAY
Definition: settings_esp3d.cpp:127
DEFAULT_AP_PASSWORD
const char DEFAULT_AP_PASSWORD[]
Definition: settings_esp3d.cpp:134
ESP_STA_IP_MODE
#define ESP_STA_IP_MODE
Definition: settings_esp3d.h:42
MAX_HOSTNAME_LENGTH
#define MAX_HOSTNAME_LENGTH
Definition: netconfig.h:32
ESP_SD_MOUNT
#define ESP_SD_MOUNT
Definition: settings_esp3d.h:79
DEFAULT_TIME_ZONE
#define DEFAULT_TIME_ZONE
Definition: settings_esp3d.cpp:98
MIN_WEBSOCKET_PORT
#define MIN_WEBSOCKET_PORT
Definition: netconfig.h:31
Settings_ESP3D::get_default_string_value
static const String & get_default_string_value(int pos)
Definition: settings_esp3d.cpp:554
ESP_BAUD_RATE
#define ESP_BAUD_RATE
Definition: settings_esp3d.h:46
ESP_CAMERA_PORT
#define ESP_CAMERA_PORT
Definition: settings_esp3d.h:90
DEFAULT_FTP_ON
#define DEFAULT_FTP_ON
Definition: settings_esp3d.cpp:106
ESP_STA_SSID
#define ESP_STA_SSID
Definition: settings_esp3d.h:40
DEFAULT_HTTP_ON
#define DEFAULT_HTTP_ON
Definition: settings_esp3d.cpp:105
Settings_ESP3D::Settings_ESP3D
Settings_ESP3D()
Definition: settings_esp3d.cpp:164
Settings_ESP3D::GetSDDevice
static uint8_t GetSDDevice(bool fromsettings=false)
Definition: settings_esp3d.cpp:191
MAX_CHANNEL
#define MAX_CHANNEL
Definition: wificonfig.h:25
MIN_HOSTNAME_LENGTH
#define MIN_HOSTNAME_LENGTH
Definition: netconfig.h:33
ESP_AUTO_NOTIFICATION
#define ESP_AUTO_NOTIFICATION
Definition: settings_esp3d.h:89
ESP_NOTIFICATION_TOKEN1
#define ESP_NOTIFICATION_TOKEN1
Definition: settings_esp3d.h:69
Settings_ESP3D::write_uint32
static bool write_uint32(int pos, const uint32_t value)
Definition: settings_esp3d.cpp:970
ESP_INTERNET_TIME
#define ESP_INTERNET_TIME
Definition: settings_esp3d.h:51
settings_esp3d.h
Settings_ESP3D::GetFirmwareTarget
static uint8_t GetFirmwareTarget(bool fromsettings=false)
Definition: settings_esp3d.cpp:183
DEFAULT_IP_VALUE
const uint8_t DEFAULT_IP_VALUE[]
Definition: settings_esp3d.cpp:155
MAX_TELNET_PORT
#define MAX_TELNET_PORT
Definition: netconfig.h:28
DEFAULT_NOTIFICATION_SETTINGS
#define DEFAULT_NOTIFICATION_SETTINGS
Definition: settings_esp3d.cpp:112
ESP_DIRECT_SD_CHECK
#define ESP_DIRECT_SD_CHECK
Definition: settings_esp3d.h:81
ESP_NOTIFICATION_SETTINGS
#define ESP_NOTIFICATION_SETTINGS
Definition: settings_esp3d.h:83
MIN_HTTP_PORT
#define MIN_HTTP_PORT
Definition: netconfig.h:25
DEFAULT_ADDRESS_VALUE
const uint8_t DEFAULT_ADDRESS_VALUE[]
Definition: settings_esp3d.cpp:158
ESP_HTTP_ON
#define ESP_HTTP_ON
Definition: settings_esp3d.h:65
ESP_AP_SSID
#define ESP_AP_SSID
Definition: settings_esp3d.h:60
ESP_SD_SPEED_DIV
#define ESP_SD_SPEED_DIV
Definition: settings_esp3d.h:68
Settings_ESP3D::get_min_string_size
static uint8_t get_min_string_size(int pos)
Definition: settings_esp3d.cpp:668
ESP_FTP_ON
#define ESP_FTP_ON
Definition: settings_esp3d.h:94
ESP_CALIBRATION_1
#define ESP_CALIBRATION_1
Definition: settings_esp3d.h:84
ESP_STA_IP_VALUE
#define ESP_STA_IP_VALUE
Definition: settings_esp3d.h:43
Settings_ESP3D::begin
static bool begin()
Definition: settings_esp3d.cpp:171
MIN_CHANNEL
#define MIN_CHANNEL
Definition: wificonfig.h:24
Settings_ESP3D::GetFirmwareTargetShortName
static const char * GetFirmwareTargetShortName()
Definition: settings_esp3d.cpp:203
UNKNOWN_FW
#define UNKNOWN_FW
Definition: settings_esp3d.h:28
Settings_ESP3D::write_IP
static bool write_IP(int pos, const uint32_t value)
Definition: settings_esp3d.cpp:1008
ESP_TIMEZONE
#define ESP_TIMEZONE
Definition: settings_esp3d.h:73
MIN_LOCAL_PASSWORD_LENGTH
#define MIN_LOCAL_PASSWORD_LENGTH
Definition: settings_esp3d.cpp:52
DEFAULT_DHT_TYPE
#define DEFAULT_DHT_TYPE
Definition: settings_esp3d.cpp:103
ESP_FTP_CTRL_PORT
#define ESP_FTP_CTRL_PORT
Definition: settings_esp3d.h:91
Settings_ESP3D::~Settings_ESP3D
~Settings_ESP3D()
Definition: settings_esp3d.cpp:167
ESP_OUTPUT_FLAG
#define ESP_OUTPUT_FLAG
Definition: settings_esp3d.h:54
REPETIER
#define REPETIER
Definition: settings_esp3d.h:33
Settings_ESP3D::read_IP
static uint32_t read_IP(int pos, bool *haserror=NULL)
Definition: settings_esp3d.cpp:958
ESP_BUZZER
#define ESP_BUZZER
Definition: settings_esp3d.h:50
ESP_CALIBRATION_3
#define ESP_CALIBRATION_3
Definition: settings_esp3d.h:86
ESP_TIME_SERVER2
#define ESP_TIME_SERVER2
Definition: settings_esp3d.h:76
ESP_CALIBRATION_2
#define ESP_CALIBRATION_2
Definition: settings_esp3d.h:85
DEFAULT_GATEWAY_VALUE
#define DEFAULT_GATEWAY_VALUE
Definition: settings_esp3d.cpp:157
ESP_HOSTNAME
#define ESP_HOSTNAME
Definition: settings_esp3d.h:55
ESP_CALIBRATION_5
#define ESP_CALIBRATION_5
Definition: settings_esp3d.h:88
DEFAULT_FTP_CTRL_PORT
#define DEFAULT_FTP_CTRL_PORT
Definition: settings_esp3d.cpp:120
MAX_FTP_PORT
#define MAX_FTP_PORT
Definition: netconfig.h:26
ESP_CALIBRATION
#define ESP_CALIBRATION
Definition: settings_esp3d.h:48
DEFAULT_AUTO_NOTIFICATION_STATE
#define DEFAULT_AUTO_NOTIFICATION_STATE
Definition: settings_esp3d.cpp:113
MIN_SSID_LENGTH
#define MIN_SSID_LENGTH
Definition: wificonfig.h:23
ESP_SD_CHECK_UPDATE_AT_BOOT
#define ESP_SD_CHECK_UPDATE_AT_BOOT
Definition: settings_esp3d.h:82
DEFAULT_BAUD_RATE
#define DEFAULT_BAUD_RATE
Definition: settings_esp3d.cpp:118
MIN_PASSWORD_LENGTH
#define MIN_PASSWORD_LENGTH
Definition: wificonfig.h:29
DEFAULT_TIME_DST
#define DEFAULT_TIME_DST
Definition: settings_esp3d.cpp:99
DEFAULT_OUTPUT_FLAG
#define DEFAULT_OUTPUT_FLAG
Definition: settings_esp3d.cpp:95
DEFAULT_SDREADER_SPEED
#define DEFAULT_SDREADER_SPEED
Definition: settings_esp3d.cpp:96
ESP_WEBSOCKET_PORT
#define ESP_WEBSOCKET_PORT
Definition: settings_esp3d.h:64
Settings_ESP3D::get_min_int32_value
static uint32_t get_min_int32_value(int pos)
Definition: settings_esp3d.cpp:462
Settings_ESP3D::write_string
static bool write_string(int pos, const char *byte_buffer)
Definition: settings_esp3d.cpp:870
log_esp3d
#define log_esp3d(format,...)
Definition: debug_esp3d.h:29
DEFAULT_WEBSOCKET_ON
#define DEFAULT_WEBSOCKET_ON
Definition: settings_esp3d.cpp:108
MAX_VERSION_LENGTH
#define MAX_VERSION_LENGTH
Definition: settings_esp3d.cpp:53
DEFAULT_ESP_INT
#define DEFAULT_ESP_INT
Definition: settings_esp3d.cpp:117
Settings_ESP3D::get_max_byte
static uint8_t get_max_byte(int pos)
Definition: settings_esp3d.cpp:507
ESP_WEBSOCKET_ON
#define ESP_WEBSOCKET_ON
Definition: settings_esp3d.h:67
Settings_ESP3D::read_uint32
static uint32_t read_uint32(int pos, bool *haserror=NULL)
Definition: settings_esp3d.cpp:919
CURRENT_SETTINGS_VERSION
#define CURRENT_SETTINGS_VERSION
Definition: settings_esp3d.cpp:46
Settings_ESP3D::get_default_IP_value
static uint32_t get_default_IP_value(int pos)
Definition: settings_esp3d.cpp:548
Settings_ESP3D::reset
static bool reset()
Definition: settings_esp3d.cpp:1014
Settings_ESP3D::get_max_string_size
static uint8_t get_max_string_size(int pos)
Definition: settings_esp3d.cpp:617
MAX_SERVER_ADDRESS_LENGTH
#define MAX_SERVER_ADDRESS_LENGTH
Definition: settings_esp3d.cpp:60
ESP_TIME_IS_DST
#define ESP_TIME_IS_DST
Definition: settings_esp3d.h:74
MAX_DHT_INTERVAL
#define MAX_DHT_INTERVAL
Definition: settings_esp3d.cpp:49
Settings_ESP3D::TargetBoard
static const char * TargetBoard()
Definition: settings_esp3d.cpp:1226
DEFAULT_DIRECT_SD_CHECK
#define DEFAULT_DIRECT_SD_CHECK
Definition: settings_esp3d.cpp:101
DEFAULT_AP_SSID
const char DEFAULT_AP_SSID[]
Definition: settings_esp3d.cpp:133
DEFAULT_WEBSOCKET_PORT
#define DEFAULT_WEBSOCKET_PORT
Definition: settings_esp3d.cpp:123
ESP_NO_SD
#define ESP_NO_SD
Definition: defines.h:54
DEFAULT_TELNET_PORT
#define DEFAULT_TELNET_PORT
Definition: settings_esp3d.cpp:125
DEFAULT_NOTIFICATION_TOKEN1
#define DEFAULT_NOTIFICATION_TOKEN1
Definition: settings_esp3d.cpp:110
DEFAULT_ESP_RADIO_MODE
#define DEFAULT_ESP_RADIO_MODE
Definition: settings_esp3d.cpp:66
DEFAULT_FW
#define DEFAULT_FW
Definition: settings_esp3d.cpp:97
DEFAULT_FTP_PASSIVE_PORT
#define DEFAULT_FTP_PASSIVE_PORT
Definition: settings_esp3d.cpp:122
MIN_TELNET_PORT
#define MIN_TELNET_PORT
Definition: netconfig.h:29
ESP_STA_GATEWAY_VALUE
#define ESP_STA_GATEWAY_VALUE
Definition: settings_esp3d.h:45
Settings_ESP3D::read_byte
static uint8_t read_byte(int pos, bool *haserror=NULL)
Definition: settings_esp3d.cpp:715
Settings_ESP3D::write_IP_String
static bool write_IP_String(int pos, const char *value)
Definition: settings_esp3d.cpp:1202
DEFAULT_STA_PASSWORD
const char DEFAULT_STA_PASSWORD[]
Definition: settings_esp3d.cpp:136
MAX_WEBSOCKET_PORT
#define MAX_WEBSOCKET_PORT
Definition: netconfig.h:30
DEFAULT_HTTP_PORT
#define DEFAULT_HTTP_PORT
Definition: settings_esp3d.cpp:119
ESP_TIME_SERVER1
#define ESP_TIME_SERVER1
Definition: settings_esp3d.h:75
DEFAULT_AP_CHANNEL
#define DEFAULT_AP_CHANNEL
Definition: settings_esp3d.cpp:92
ESP_STA_MASK_VALUE
#define ESP_STA_MASK_VALUE
Definition: settings_esp3d.h:44
Settings_ESP3D::get_min_byte
static uint8_t get_min_byte(int pos)
Definition: settings_esp3d.cpp:527
MAX_LOCAL_PASSWORD_LENGTH
#define MAX_LOCAL_PASSWORD_LENGTH
Definition: settings_esp3d.cpp:51
ESP_BOOT_DELAY
#define ESP_BOOT_DELAY
Definition: settings_esp3d.h:63
ESP_SD_DEVICE_TYPE
#define ESP_SD_DEVICE_TYPE
Definition: settings_esp3d.h:78
MIN_DHT_INTERVAL
#define MIN_DHT_INTERVAL
Definition: settings_esp3d.cpp:50
DEFAULT_CALIBRATION_DONE
#define DEFAULT_CALIBRATION_DONE
Definition: settings_esp3d.cpp:129
DEFAULT_SD_DEVICE_TYPE
#define DEFAULT_SD_DEVICE_TYPE
Definition: settings_esp3d.cpp:104
Settings_ESP3D::IPtoString
static String IPtoString(uint32_t ip_int)
Definition: settings_esp3d.cpp:1219
ESP_FTP_DATA_PASSIVE_PORT
#define ESP_FTP_DATA_PASSIVE_PORT
Definition: settings_esp3d.h:93
MARLINKIMBRA
#define MARLINKIMBRA
Definition: settings_esp3d.h:31
esp3doutput.h
ESP_ADMIN_PWD
#define ESP_ADMIN_PWD
Definition: settings_esp3d.h:58
DEFAULT_SETTINGS_VERSION
const char DEFAULT_SETTINGS_VERSION[]
Definition: settings_esp3d.cpp:151
DEFAULT_CALIBRATION_VALUE
#define DEFAULT_CALIBRATION_VALUE
Definition: settings_esp3d.cpp:128
MAX_PASSWORD_LENGTH
#define MAX_PASSWORD_LENGTH
Definition: wificonfig.h:26
ESP_NOTIFICATION_TOKEN2
#define ESP_NOTIFICATION_TOKEN2
Definition: settings_esp3d.h:70
MIN_SERVER_ADDRESS_LENGTH
#define MIN_SERVER_ADDRESS_LENGTH
Definition: settings_esp3d.cpp:61
DEFAULT_DHT_INTERVAL
#define DEFAULT_DHT_INTERVAL
Definition: settings_esp3d.cpp:126
ESP_RADIO_MODE
#define ESP_RADIO_MODE
Definition: settings_esp3d.h:39
MIN_NOTIFICATION_SETTINGS_LENGTH
#define MIN_NOTIFICATION_SETTINGS_LENGTH
Definition: settings_esp3d.cpp:57
Settings_ESP3D::read_IP_String
static String read_IP_String(int pos, bool *haserror=NULL)
Definition: settings_esp3d.cpp:964
GRBL
#define GRBL
Definition: settings_esp3d.h:34
ESP_AP_CHANNEL
#define ESP_AP_CHANNEL
Definition: settings_esp3d.h:49
DEFAULT_NOTIFICATION_TOKEN2
#define DEFAULT_NOTIFICATION_TOKEN2
Definition: settings_esp3d.cpp:111
DEFAULT_FTP_ACTIVE_PORT
#define DEFAULT_FTP_ACTIVE_PORT
Definition: settings_esp3d.cpp:121
Settings_ESP3D::StringtoIP
static uint32_t StringtoIP(const char *s)
Definition: settings_esp3d.cpp:1208
MAX_NOTIFICATION_SETTINGS_LENGTH
#define MAX_NOTIFICATION_SETTINGS_LENGTH
Definition: settings_esp3d.cpp:59
MAX_BOOT_DELAY
#define MAX_BOOT_DELAY
Definition: settings_esp3d.cpp:54