Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compilation error: expected nested-name-specifier #30

Open
chriskuku opened this issue Apr 18, 2024 · 18 comments
Open

Compilation error: expected nested-name-specifier #30

chriskuku opened this issue Apr 18, 2024 · 18 comments

Comments

@chriskuku
Copy link

chriskuku commented Apr 18, 2024

I'm trying to build Esp32_oscilloscope.ino using Arduino-IDE 2.3.2 and I'm getting somthing like this:
(output has scrolled out of the output window, so I cannot see where the error initially occurs.

 |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note: candidate: 'fsString<N>::fsString() [with unsigned int N = 300]'
   44 |             fsString () {}                                      // for declarations like fsString<15> a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note:   candidate expects 0 arguments, 2 provided

exit status 1

Compilation error: expected nested-name-specifier

@BojanJurca
Copy link
Owner

I have just tried compiling it with Arduino IDE 2.3.2 - with no problems. Which board did you choose?

@chriskuku
Copy link
Author

chriskuku commented Apr 19, 2024

I have just tried compiling it with Arduino IDE 2.3.2 - with no problems. Which board did you choose?

ESP32 Dev Module

I had to increase the output buffer of Arduino IDE. I freshly downloaded (git clone https://github.com/BojanJurca/Esp32_oscilloscope.git) into my home directory. Started Arduino IDE 2.3.2 and opened ~/Esp32_oscilloscope.ino.

Compiled it and got:

In file included from /Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:39,
                 from /Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiSTA.h:29,
                 from /Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFi.h:33,
                 from /Users/kuku/Esp32_oscilloscope/fileSystem.hpp:25,
                 from /Users/kuku/Esp32_oscilloscope/Esp32_oscilloscope.ino:116:
/Users/kuku/Esp32_oscilloscope/Network.h: In function 'void startWiFi()':
/Users/kuku/Esp32_oscilloscope/Network.h:274:7: error: 'WiFi' was not declared in this scope
  274 |       WiFi.mode (WIFI_OFF);
      |       ^~~~
In file included from /Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFi.h:32:
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiType.h:38:22: error: 'arduino_event_id_t' has not been declared
   38 | #define WiFiEvent_t  arduino_event_id_t
      |                      ^~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:575:25: note: in expansion of macro 'WiFiEvent_t'
  575 |       WiFi.onEvent ([] (WiFiEvent_t event, WiFiEventInfo_t info) {
      |                         ^~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiType.h:39:25: error: 'arduino_event_info_t' has not been declared
   39 | #define WiFiEventInfo_t arduino_event_info_t
      |                         ^~~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:575:44: note: in expansion of macro 'WiFiEventInfo_t'
  575 |       WiFi.onEvent ([] (WiFiEvent_t event, WiFiEventInfo_t info) {
      |                                            ^~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h: In lambda function:
/Users/kuku/Esp32_oscilloscope/Network.h:578:18: error: 'SYSTEM_EVENT_WIFI_READY' was not declared in this scope; did you mean 'WIFI_EVENT_WIFI_READY'?
  578 |             case SYSTEM_EVENT_WIFI_READY:           // do not report this event - it is too frequent
      |                  ^~~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_WIFI_READY
/Users/kuku/Esp32_oscilloscope/Network.h:580:18: error: 'SYSTEM_EVENT_SCAN_DONE' was not declared in this scope; did you mean 'SC_EVENT_SCAN_DONE'?
  580 |             case SYSTEM_EVENT_SCAN_DONE:            Serial.printf ("[%10lu] %s\r\n", millis (), "[network][STA] completed scan for access points");
      |                  ^~~~~~~~~~~~~~~~~~~~~~
      |                  SC_EVENT_SCAN_DONE
/Users/kuku/Esp32_oscilloscope/Network.h:582:18: error: 'SYSTEM_EVENT_STA_START' was not declared in this scope; did you mean 'WIFI_EVENT_STA_START'?
  582 |             case SYSTEM_EVENT_STA_START:            if (!staStarted) {
      |                  ^~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_STA_START
/Users/kuku/Esp32_oscilloscope/Network.h:587:18: error: 'SYSTEM_EVENT_STA_STOP' was not declared in this scope; did you mean 'WIFI_EVENT_STA_STOP'?
  587 |             case SYSTEM_EVENT_STA_STOP:             Serial.printf ("[%10lu] %s\r\n", millis (), "[network][STA] WiFi clients stopped");
      |                  ^~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_STA_STOP
/Users/kuku/Esp32_oscilloscope/Network.h:589:18: error: 'SYSTEM_EVENT_STA_CONNECTED' was not declared in this scope; did you mean 'WIFI_EVENT_STA_CONNECTED'?
  589 |             case SYSTEM_EVENT_STA_CONNECTED:        Serial.printf ("[%10lu] %s%s\r\n", millis (), "[network][STA] connected to WiFi ", (char *) WiFi.SSID ().c_str ());
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_STA_CONNECTED
/Users/kuku/Esp32_oscilloscope/Network.h:589:145: error: 'WiFi' is not captured
  589 |             case SYSTEM_EVENT_STA_CONNECTED:        Serial.printf ("[%10lu] %s%s\r\n", millis (), "[network][STA] connected to WiFi ", (char *) WiFi.SSID ().c_str ());
      |                                                                                                                                                 ^~~~
/Users/kuku/Esp32_oscilloscope/Network.h:575:22: note: the lambda has no capture-default
  575 |       WiFi.onEvent ([] (WiFiEvent_t event, WiFiEventInfo_t info) {
      |                      ^
/Users/kuku/Esp32_oscilloscope/Network.h:274:7: note: '<typeprefixerror>WiFi' declared here
  274 |       WiFi.mode (WIFI_OFF);
      |       ^~~~
/Users/kuku/Esp32_oscilloscope/Network.h:591:18: error: 'SYSTEM_EVENT_STA_DISCONNECTED' was not declared in this scope; did you mean 'WIFI_EVENT_STA_DISCONNECTED'?
  591 |             case SYSTEM_EVENT_STA_DISCONNECTED:     if (staStarted) {
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_STA_DISCONNECTED
/Users/kuku/Esp32_oscilloscope/Network.h:599:18: error: 'SYSTEM_EVENT_STA_AUTHMODE_CHANGE' was not declared in this scope; did you mean 'WIFI_EVENT_STA_AUTHMODE_CHANGE'?
  599 |             case SYSTEM_EVENT_STA_AUTHMODE_CHANGE:  Serial.printf ("[%10lu] %s\r\n", millis (), "[network][STA] authentication mode has changed");
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_STA_AUTHMODE_CHANGE
/Users/kuku/Esp32_oscilloscope/Network.h:601:18: error: 'SYSTEM_EVENT_STA_GOT_IP' was not declared in this scope; did you mean 'IP_EVENT_STA_GOT_IP'?
  601 |             case SYSTEM_EVENT_STA_GOT_IP:
      |                  ^~~~~~~~~~~~~~~~~~~~~~~
      |                  IP_EVENT_STA_GOT_IP
/Users/kuku/Esp32_oscilloscope/Network.h:605:143: error: 'WiFi' is not captured
  605 |                                                     Serial.printf ("[%10lu] %s%s\r\n", millis (), "[network][STA] got IP address: ", (char *) WiFi.localIP ().toString ().c_str ());
      |                                                                                                                                               ^~~~
/Users/kuku/Esp32_oscilloscope/Network.h:575:22: note: the lambda has no capture-default
  575 |       WiFi.onEvent ([] (WiFiEvent_t event, WiFiEventInfo_t info) {
      |                      ^
/Users/kuku/Esp32_oscilloscope/Network.h:274:7: note: '<typeprefixerror>WiFi' declared here
  274 |       WiFi.mode (WIFI_OFF);
      |       ^~~~
/Users/kuku/Esp32_oscilloscope/Network.h:607:18: error: 'SYSTEM_EVENT_STA_LOST_IP' was not declared in this scope; did you mean 'IP_EVENT_STA_LOST_IP'?
  607 |             case SYSTEM_EVENT_STA_LOST_IP:
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~
      |                  IP_EVENT_STA_LOST_IP
/Users/kuku/Esp32_oscilloscope/Network.h:613:18: error: 'SYSTEM_EVENT_STA_WPS_ER_SUCCESS' was not declared in this scope; did you mean 'WIFI_EVENT_STA_WPS_ER_SUCCESS'?
  613 |             case SYSTEM_EVENT_STA_WPS_ER_SUCCESS:   Serial.printf ("[%10lu] %s\r\n", millis (), "[network][STA] WiFi Protected Setup (WPS): succeeded in enrollee mode");
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_STA_WPS_ER_SUCCESS
/Users/kuku/Esp32_oscilloscope/Network.h:615:18: error: 'SYSTEM_EVENT_STA_WPS_ER_FAILED' was not declared in this scope; did you mean 'WIFI_EVENT_STA_WPS_ER_FAILED'?
  615 |             case SYSTEM_EVENT_STA_WPS_ER_FAILED:    Serial.printf ("[%10lu] %s\r\n", millis (), "[network][STA] WiFi Protected Setup (WPS): failed in enrollee mode");
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_STA_WPS_ER_FAILED
/Users/kuku/Esp32_oscilloscope/Network.h:617:18: error: 'SYSTEM_EVENT_STA_WPS_ER_TIMEOUT' was not declared in this scope; did you mean 'WIFI_EVENT_STA_WPS_ER_TIMEOUT'?
  617 |             case SYSTEM_EVENT_STA_WPS_ER_TIMEOUT:   Serial.printf ("[%10lu] %s\r\n", millis (), "[network][STA] WiFi Protected Setup (WPS): timeout in enrollee mode");
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_STA_WPS_ER_TIMEOUT
/Users/kuku/Esp32_oscilloscope/Network.h:619:18: error: 'SYSTEM_EVENT_STA_WPS_ER_PIN' was not declared in this scope; did you mean 'WIFI_EVENT_STA_WPS_ER_PIN'?
  619 |             case SYSTEM_EVENT_STA_WPS_ER_PIN:       Serial.printf ("[%10lu] %s\r\n", millis (), "[network][STA] WiFi Protected Setup (WPS): pin code in enrollee mode");
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_STA_WPS_ER_PIN
/Users/kuku/Esp32_oscilloscope/Network.h:621:18: error: 'SYSTEM_EVENT_AP_START' was not declared in this scope; did you mean 'WIFI_EVENT_AP_START'?
  621 |             case SYSTEM_EVENT_AP_START:
      |                  ^~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_AP_START
/Users/kuku/Esp32_oscilloscope/Network.h:628:99: error: 'TCPIP_ADAPTER_IF_AP' was not declared in this scope
  628 |                                                         esp_err_t e = tcpip_adapter_set_hostname (TCPIP_ADAPTER_IF_AP, HOSTNAME); // outdated, use: esp_netif_set_hostname
      |                                                                                                   ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:628:71: error: 'tcpip_adapter_set_hostname' was not declared in this scope
  628 |                                                         esp_err_t e = tcpip_adapter_set_hostname (TCPIP_ADAPTER_IF_AP, HOSTNAME); // outdated, use: esp_netif_set_hostname
      |                                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:637:18: error: 'SYSTEM_EVENT_AP_STOP' was not declared in this scope; did you mean 'WIFI_EVENT_AP_STOP'?
  637 |             case SYSTEM_EVENT_AP_STOP:
      |                  ^~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_AP_STOP
/Users/kuku/Esp32_oscilloscope/Network.h:643:18: error: 'SYSTEM_EVENT_AP_STACONNECTED' was not declared in this scope; did you mean 'WIFI_EVENT_AP_STACONNECTED'?
  643 |             case SYSTEM_EVENT_AP_STACONNECTED:      // do not report this event - it is too frequent
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_AP_STACONNECTED
/Users/kuku/Esp32_oscilloscope/Network.h:645:18: error: 'SYSTEM_EVENT_AP_STADISCONNECTED' was not declared in this scope; did you mean 'WIFI_EVENT_AP_STADISCONNECTED'?
  645 |             case SYSTEM_EVENT_AP_STADISCONNECTED:   // do not report this event - it is too frequent
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_AP_STADISCONNECTED
/Users/kuku/Esp32_oscilloscope/Network.h:647:18: error: 'SYSTEM_EVENT_AP_STAIPASSIGNED' was not declared in this scope; did you mean 'IP_EVENT_AP_STAIPASSIGNED'?
  647 |             case SYSTEM_EVENT_AP_STAIPASSIGNED:     // do not report this event - it is too frequent
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  IP_EVENT_AP_STAIPASSIGNED
/Users/kuku/Esp32_oscilloscope/Network.h:649:18: error: 'SYSTEM_EVENT_AP_PROBEREQRECVED' was not declared in this scope; did you mean 'WIFI_EVENT_AP_PROBEREQRECVED'?
  649 |             case SYSTEM_EVENT_AP_PROBEREQRECVED:    break;
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_AP_PROBEREQRECVED
/Users/kuku/Esp32_oscilloscope/Network.h:650:18: error: 'SYSTEM_EVENT_GOT_IP6' was not declared in this scope; did you mean 'IP_EVENT_GOT_IP6'?
  650 |             case SYSTEM_EVENT_GOT_IP6:              break;
      |                  ^~~~~~~~~~~~~~~~~~~~
      |                  IP_EVENT_GOT_IP6
/Users/kuku/Esp32_oscilloscope/Network.h:651:18: error: 'SYSTEM_EVENT_ETH_START' was not declared in this scope; did you mean 'WIFI_EVENT_STA_START'?
  651 |             case SYSTEM_EVENT_ETH_START:
      |                  ^~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_STA_START
/Users/kuku/Esp32_oscilloscope/Network.h:656:18: error: 'SYSTEM_EVENT_ETH_STOP' was not declared in this scope
  656 |             case SYSTEM_EVENT_ETH_STOP:
      |                  ^~~~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:661:18: error: 'SYSTEM_EVENT_ETH_CONNECTED' was not declared in this scope; did you mean 'WIFI_EVENT_STA_CONNECTED'?
  661 |             case SYSTEM_EVENT_ETH_CONNECTED:
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_STA_CONNECTED
/Users/kuku/Esp32_oscilloscope/Network.h:666:18: error: 'SYSTEM_EVENT_ETH_DISCONNECTED' was not declared in this scope; did you mean 'WIFI_EVENT_STA_DISCONNECTED'?
  666 |             case SYSTEM_EVENT_ETH_DISCONNECTED:
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  WIFI_EVENT_STA_DISCONNECTED
/Users/kuku/Esp32_oscilloscope/Network.h:671:18: error: 'SYSTEM_EVENT_ETH_GOT_IP' was not declared in this scope; did you mean 'IP_EVENT_ETH_GOT_IP'?
  671 |             case SYSTEM_EVENT_ETH_GOT_IP:
      |                  ^~~~~~~~~~~~~~~~~~~~~~~
      |                  IP_EVENT_ETH_GOT_IP
/Users/kuku/Esp32_oscilloscope/Network.h: In function 'void startWiFi()':
/Users/kuku/Esp32_oscilloscope/Network.h:744:45: error: 'TCPIP_ADAPTER_IF_AP' was not declared in this scope
  744 |             if (tcpip_adapter_set_hostname (TCPIP_ADAPTER_IF_AP, HOSTNAME) != ESP_OK) { // outdated, use: esp_netif_set_hostname
      |                                             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:744:17: error: 'tcpip_adapter_set_hostname' was not declared in this scope
  744 |             if (tcpip_adapter_set_hostname (TCPIP_ADAPTER_IF_AP, HOSTNAME) != ESP_OK) { // outdated, use: esp_netif_set_hostname
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:750:45: error: 'TCPIP_ADAPTER_IF_STA' was not declared in this scope
  750 |             if (tcpip_adapter_set_hostname (TCPIP_ADAPTER_IF_STA, HOSTNAME) != ESP_OK) { // outdated, use: esp_netif_set_hostname
      |                                             ^~~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:750:17: error: 'tcpip_adapter_set_hostname' was not declared in this scope
  750 |             if (tcpip_adapter_set_hostname (TCPIP_ADAPTER_IF_STA, HOSTNAME) != ESP_OK) { // outdated, use: esp_netif_set_hostname
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:760:45: error: 'TCPIP_ADAPTER_IF_STA' was not declared in this scope
  760 |             if (tcpip_adapter_set_hostname (TCPIP_ADAPTER_IF_STA, HOSTNAME) != ESP_OK) { // outdated, use: esp_netif_set_hostname
      |                                             ^~~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:760:17: error: 'tcpip_adapter_set_hostname' was not declared in this scope
  760 |             if (tcpip_adapter_set_hostname (TCPIP_ADAPTER_IF_STA, HOSTNAME) != ESP_OK) { // outdated, use: esp_netif_set_hostname
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:773:45: error: 'TCPIP_ADAPTER_IF_AP' was not declared in this scope
  773 |             if (tcpip_adapter_set_hostname (TCPIP_ADAPTER_IF_AP, HOSTNAME) != ESP_OK) { // outdated, use: esp_netif_set_hostname
      |                                             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:773:17: error: 'tcpip_adapter_set_hostname' was not declared in this scope
  773 |             if (tcpip_adapter_set_hostname (TCPIP_ADAPTER_IF_AP, HOSTNAME) != ESP_OK) { // outdated, use: esp_netif_set_hostname
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h: In function 'fsString<300> iw(int)':
/Users/kuku/Esp32_oscilloscope/Network.h:951:48: error: 'WiFi' was not declared in this scope
  951 |                 if (!strcmp (ip_addr, (char *) WiFi.localIP ().toString ().c_str ())) {
      |                                                ^~~~
/Users/kuku/Esp32_oscilloscope/Network.h:977:21: error: 'tcpip_adapter_sta_list_t' was not declared in this scope
  977 |                     tcpip_adapter_sta_list_t adapter_sta_list = {};
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:979:66: error: 'adapter_sta_list' was not declared in this scope
  979 |                     tcpip_adapter_get_sta_list (&wifi_sta_list, &adapter_sta_list);
      |                                                                  ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:979:21: error: 'tcpip_adapter_get_sta_list' was not declared in this scope
  979 |                     tcpip_adapter_get_sta_list (&wifi_sta_list, &adapter_sta_list);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/Network.h:989:29: error: 'tcpip_adapter_sta_info_t' was not declared in this scope
  989 |                             tcpip_adapter_sta_info_t station = adapter_sta_list.sta [i];
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/lwip/lwip/src/include/lwip/sockets.h:49,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/lwip/include/lwip/sockets.h:8,
                 from /Users/kuku/Esp32_oscilloscope/Network.h:29:
/Users/kuku/Esp32_oscilloscope/Network.h:990:61: error: 'station' was not declared in this scope; did you mean 'static'?
  990 |                             char ip_addr [46]; inet_ntoa_r (station.ip, ip_addr, sizeof (ip_addr));
      |                                                             ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/lwip/lwip/src/include/lwip/inet.h:142:77: note: in definition of macro 'inet_ntoa_r'
  142 | #define inet_ntoa_r(addr, buf, buflen)  ip4addr_ntoa_r((const ip4_addr_t*)&(addr), buf, buflen)
      |                                                                             ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h: At global scope:
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:44:25: error: 'network_event_handle_t' does not name a type; did you mean 'esp_event_handler_t'?
   44 | #define wifi_event_id_t network_event_handle_t
      |                         ^~~~~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:78:5: note: in expansion of macro 'wifi_event_id_t'
   78 |     wifi_event_id_t onEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
      |     ^~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:44:25: error: 'network_event_handle_t' does not name a type; did you mean 'esp_event_handler_t'?
   44 | #define wifi_event_id_t network_event_handle_t
      |                         ^~~~~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:79:5: note: in expansion of macro 'wifi_event_id_t'
   79 |     wifi_event_id_t onEvent(WiFiEventFuncCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
      |     ^~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:44:25: error: 'network_event_handle_t' does not name a type; did you mean 'esp_event_handler_t'?
   44 | #define wifi_event_id_t network_event_handle_t
      |                         ^~~~~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:80:5: note: in expansion of macro 'wifi_event_id_t'
   80 |     wifi_event_id_t onEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
      |     ^~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:41:21: error: 'NetworkEventCb' has not been declared
   41 | #define WiFiEventCb NetworkEventCb
      |                     ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:81:22: note: in expansion of macro 'WiFiEventCb'
   81 |     void removeEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
      |                      ^~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:81:43: error: 'arduino_event_id_t' has not been declared
   81 |     void removeEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
      |                                           ^~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:43:24: error: 'NetworkEventSysCb' has not been declared
   43 | #define WiFiEventSysCb NetworkEventSysCb
      |                        ^~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:82:22: note: in expansion of macro 'WiFiEventSysCb'
   82 |     void removeEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
      |                      ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:82:46: error: 'arduino_event_id_t' has not been declared
   82 |     void removeEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
      |                                              ^~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:82:10: error: 'void WiFiGenericClass::removeEvent(int, int)' cannot be overloaded with 'void WiFiGenericClass::removeEvent(int, int)'
   82 |     void removeEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
      |          ^~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:81:10: note: previous declaration 'void WiFiGenericClass::removeEvent(int, int)'
   81 |     void removeEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
      |          ^~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:44:25: error: 'network_event_handle_t' has not been declared
   44 | #define wifi_event_id_t network_event_handle_t
      |                         ^~~~~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:83:22: note: in expansion of macro 'wifi_event_id_t'
   83 |     void removeEvent(wifi_event_id_t id);
      |                      ^~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:125:28: error: 'arduino_event_id_t' has not been declared
  125 |     const char * eventName(arduino_event_id_t id);
      |                            ^~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:127:32: error: 'arduino_event_t' has not been declared
  127 |     static void _eventCallback(arduino_event_t *event);
      |                                ^~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:81:70: error: 'ARDUINO_EVENT_MAX' was not declared in this scope; did you mean 'WIFI_EVENT_MAX'?
   81 |     void removeEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
      |                                                                      ^~~~~~~~~~~~~~~~~
      |                                                                      WIFI_EVENT_MAX
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiGeneric.h:82:73: error: 'ARDUINO_EVENT_MAX' was not declared in this scope; did you mean 'WIFI_EVENT_MAX'?
   82 |     void removeEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
      |                                                                         ^~~~~~~~~~~~~~~~~
      |                                                                         WIFI_EVENT_MAX
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiSTA.h:45:41: error: expected class-name before '{' token
   45 | class STAClass: public NetworkInterface {
      |                                         ^
In file included from /Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFi.h:34:
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiAP.h:39:40: error: expected class-name before '{' token
   39 | class APClass: public NetworkInterface {
      |                                        ^
In file included from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/iosfwd:39,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/ios:38,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/ostream:38,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/unique_ptr.h:41,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/memory:76,
                 from /Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/Network/src/NetworkClient.h:25,
                 from /Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFiClient.h:2,
                 from /Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src/WiFi.h:38:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/stringfwd.h:77:39: error: invalid declarator before ';' token
   77 |   typedef basic_string<char>    string;
      |                                       ^
In file included from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/string:53,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_classes.h:40,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/ios_base.h:41,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/ios:42:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In function 'int std::__cxx11::stoi(const fsString<300>&, std::size_t*, int)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3972:74: error: passing 'const fsString<300>' as 'this' argument discards qualifiers [-fpermissive]
 3972 |   { return __gnu_cxx::__stoa<long, int>(&std::strtol, "stoi", __str.c_str(),
      |                                                               ~~~~~~~~~~~^~
In file included from /Users/kuku/Esp32_oscilloscope/Network.h:36:
/Users/kuku/Esp32_oscilloscope/fsString.h:348:26: note:   in call to 'char* fsString<N>::c_str() [with unsigned int N = 300]'
  348 |             inline char *c_str () __attribute__((always_inline)) { return __c_str__; } // not really needed, use char *() operator instead
      |                          ^~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In function 'long int std::__cxx11::stol(const fsString<300>&, std::size_t*, int)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3977:63: error: passing 'const fsString<300>' as 'this' argument discards qualifiers [-fpermissive]
 3977 |   { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(),
      |                                                    ~~~~~~~~~~~^~
/Users/kuku/Esp32_oscilloscope/fsString.h:348:26: note:   in call to 'char* fsString<N>::c_str() [with unsigned int N = 300]'
  348 |             inline char *c_str () __attribute__((always_inline)) { return __c_str__; } // not really needed, use char *() operator instead
      |                          ^~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In function 'long unsigned int std::__cxx11::stoul(const fsString<300>&, std::size_t*, int)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3982:65: error: passing 'const fsString<300>' as 'this' argument discards qualifiers [-fpermissive]
 3982 |   { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(),
      |                                                      ~~~~~~~~~~~^~
/Users/kuku/Esp32_oscilloscope/fsString.h:348:26: note:   in call to 'char* fsString<N>::c_str() [with unsigned int N = 300]'
  348 |             inline char *c_str () __attribute__((always_inline)) { return __c_str__; } // not really needed, use char *() operator instead
      |                          ^~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In function 'long long int std::__cxx11::stoll(const fsString<300>&, std::size_t*, int)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3987:65: error: passing 'const fsString<300>' as 'this' argument discards qualifiers [-fpermissive]
 3987 |   { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(),
      |                                                      ~~~~~~~~~~~^~
/Users/kuku/Esp32_oscilloscope/fsString.h:348:26: note:   in call to 'char* fsString<N>::c_str() [with unsigned int N = 300]'
  348 |             inline char *c_str () __attribute__((always_inline)) { return __c_str__; } // not really needed, use char *() operator instead
      |                          ^~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In function 'long long unsigned int std::__cxx11::stoull(const fsString<300>&, std::size_t*, int)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3992:67: error: passing 'const fsString<300>' as 'this' argument discards qualifiers [-fpermissive]
 3992 |   { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(),
      |                                                        ~~~~~~~~~~~^~
/Users/kuku/Esp32_oscilloscope/fsString.h:348:26: note:   in call to 'char* fsString<N>::c_str() [with unsigned int N = 300]'
  348 |             inline char *c_str () __attribute__((always_inline)) { return __c_str__; } // not really needed, use char *() operator instead
      |                          ^~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In function 'float std::__cxx11::stof(const fsString<300>&, std::size_t*)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3998:63: error: passing 'const fsString<300>' as 'this' argument discards qualifiers [-fpermissive]
 3998 |   { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); }
      |                                                    ~~~~~~~~~~~^~
/Users/kuku/Esp32_oscilloscope/fsString.h:348:26: note:   in call to 'char* fsString<N>::c_str() [with unsigned int N = 300]'
  348 |             inline char *c_str () __attribute__((always_inline)) { return __c_str__; } // not really needed, use char *() operator instead
      |                          ^~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In function 'double std::__cxx11::stod(const fsString<300>&, std::size_t*)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:4002:63: error: passing 'const fsString<300>' as 'this' argument discards qualifiers [-fpermissive]
 4002 |   { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); }
      |                                                    ~~~~~~~~~~~^~
/Users/kuku/Esp32_oscilloscope/fsString.h:348:26: note:   in call to 'char* fsString<N>::c_str() [with unsigned int N = 300]'
  348 |             inline char *c_str () __attribute__((always_inline)) { return __c_str__; } // not really needed, use char *() operator instead
      |                          ^~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In function 'long double std::__cxx11::stold(const fsString<300>&, std::size_t*)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:4006:65: error: passing 'const fsString<300>' as 'this' argument discards qualifiers [-fpermissive]
 4006 |   { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); }
      |                                                      ~~~~~~~~~~~^~
/Users/kuku/Esp32_oscilloscope/fsString.h:348:26: note:   in call to 'char* fsString<N>::c_str() [with unsigned int N = 300]'
  348 |             inline char *c_str () __attribute__((always_inline)) { return __c_str__; } // not really needed, use char *() operator instead
      |                          ^~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In function 'fsString<300> std::__cxx11::to_string(int)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:4020:36: error: no matching function for call to 'fsString<300>::fsString(unsigned int, char)'
 4020 |     string __str(__neg + __len, '-');
      |                                    ^
/Users/kuku/Esp32_oscilloscope/fsString.h:129:13: note: candidate: 'fsString<N>::fsString(long unsigned int) [with unsigned int N = 300]'
  129 |             fsString (unsigned long number) {                    // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:129:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:118:13: note: candidate: 'fsString<N>::fsString(long int) [with unsigned int N = 300]'
  118 |             fsString (long number) {                             // convert long to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:118:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:107:13: note: candidate: 'fsString<N>::fsString(unsigned int) [with unsigned int N = 300]'
  107 |             fsString (unsigned int number) {                    // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:107:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:95:13: note: candidate: 'fsString<N>::fsString(int) [with unsigned int N = 300]'
   95 |             fsString (int number) {                             // convert int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:95:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:84:13: note: candidate: 'fsString<N>::fsString(uint16_t) [with unsigned int N = 300; uint16_t = short unsigned int]'
   84 |             fsString (uint16_t number) {                        // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:84:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:73:13: note: candidate: 'fsString<N>::fsString(int16_t) [with unsigned int N = 300; int16_t = short int]'
   73 |             fsString (int16_t number) {                         // convert int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:73:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:65:13: note: candidate: 'fsString<N>::fsString(const char&) [with unsigned int N = 300]'
   65 |             fsString (const char& other) {                      // for declarations with initialization, like fsString<15> c = 'c';
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:65:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:57:13: note: candidate: 'fsString<N>::fsString(const fsString<N>&) [with unsigned int N = 300]'
   57 |             fsString (const fsString& other) {                  // for declarations with initialization, like fsString<15> b = a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:57:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note: candidate: 'fsString<N>::fsString(const char*) [with unsigned int N = 300]'
   46 |             fsString (const char *other) {                      // for declarations with initialization, like fsString<15> b = "abc";
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note: candidate: 'fsString<N>::fsString() [with unsigned int N = 300]'
   44 |             fsString () {}                                      // for declarations like fsString<15> a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note:   candidate expects 0 arguments, 2 provided
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In function 'fsString<300> std::__cxx11::to_string(unsigned int)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:4031:55: error: no matching function for call to 'fsString<300>::fsString(unsigned int, char)'
 4031 |     string __str(__detail::__to_chars_len(__val), '\0');
      |                                                       ^
/Users/kuku/Esp32_oscilloscope/fsString.h:129:13: note: candidate: 'fsString<N>::fsString(long unsigned int) [with unsigned int N = 300]'
  129 |             fsString (unsigned long number) {                    // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:129:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:118:13: note: candidate: 'fsString<N>::fsString(long int) [with unsigned int N = 300]'
  118 |             fsString (long number) {                             // convert long to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:118:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:107:13: note: candidate: 'fsString<N>::fsString(unsigned int) [with unsigned int N = 300]'
  107 |             fsString (unsigned int number) {                    // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:107:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:95:13: note: candidate: 'fsString<N>::fsString(int) [with unsigned int N = 300]'
   95 |             fsString (int number) {                             // convert int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:95:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:84:13: note: candidate: 'fsString<N>::fsString(uint16_t) [with unsigned int N = 300; uint16_t = short unsigned int]'
   84 |             fsString (uint16_t number) {                        // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:84:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:73:13: note: candidate: 'fsString<N>::fsString(int16_t) [with unsigned int N = 300; int16_t = short int]'
   73 |             fsString (int16_t number) {                         // convert int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:73:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:65:13: note: candidate: 'fsString<N>::fsString(const char&) [with unsigned int N = 300]'
   65 |             fsString (const char& other) {                      // for declarations with initialization, like fsString<15> c = 'c';
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:65:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:57:13: note: candidate: 'fsString<N>::fsString(const fsString<N>&) [with unsigned int N = 300]'
   57 |             fsString (const fsString& other) {                  // for declarations with initialization, like fsString<15> b = a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:57:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note: candidate: 'fsString<N>::fsString(const char*) [with unsigned int N = 300]'
   46 |             fsString (const char *other) {                      // for declarations with initialization, like fsString<15> b = "abc";
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note: candidate: 'fsString<N>::fsString() [with unsigned int N = 300]'
   44 |             fsString () {}                                      // for declarations like fsString<15> a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note:   candidate expects 0 arguments, 2 provided
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:4032:51: error: 'struct fsString<300>' has no member named 'size'
 4032 |     __detail::__to_chars_10_impl(&__str[0], __str.size(), __val);
      |                                                   ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In function 'fsString<300> std::__cxx11::to_string(long int)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:4045:36: error: no matching function for call to 'fsString<300>::fsString(unsigned int, char)'
 4045 |     string __str(__neg + __len, '-');
      |                                    ^
/Users/kuku/Esp32_oscilloscope/fsString.h:129:13: note: candidate: 'fsString<N>::fsString(long unsigned int) [with unsigned int N = 300]'
  129 |             fsString (unsigned long number) {                    // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:129:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:118:13: note: candidate: 'fsString<N>::fsString(long int) [with unsigned int N = 300]'
  118 |             fsString (long number) {                             // convert long to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:118:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:107:13: note: candidate: 'fsString<N>::fsString(unsigned int) [with unsigned int N = 300]'
  107 |             fsString (unsigned int number) {                    // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:107:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:95:13: note: candidate: 'fsString<N>::fsString(int) [with unsigned int N = 300]'
   95 |             fsString (int number) {                             // convert int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:95:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:84:13: note: candidate: 'fsString<N>::fsString(uint16_t) [with unsigned int N = 300; uint16_t = short unsigned int]'
   84 |             fsString (uint16_t number) {                        // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:84:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:73:13: note: candidate: 'fsString<N>::fsString(int16_t) [with unsigned int N = 300; int16_t = short int]'
   73 |             fsString (int16_t number) {                         // convert int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:73:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:65:13: note: candidate: 'fsString<N>::fsString(const char&) [with unsigned int N = 300]'
   65 |             fsString (const char& other) {                      // for declarations with initialization, like fsString<15> c = 'c';
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:65:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:57:13: note: candidate: 'fsString<N>::fsString(const fsString<N>&) [with unsigned int N = 300]'
   57 |             fsString (const fsString& other) {                  // for declarations with initialization, like fsString<15> b = a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:57:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note: candidate: 'fsString<N>::fsString(const char*) [with unsigned int N = 300]'
   46 |             fsString (const char *other) {                      // for declarations with initialization, like fsString<15> b = "abc";
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note: candidate: 'fsString<N>::fsString() [with unsigned int N = 300]'
   44 |             fsString () {}                                      // for declarations like fsString<15> a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note:   candidate expects 0 arguments, 2 provided
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In function 'fsString<300> std::__cxx11::to_string(long unsigned int)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:4056:55: error: no matching function for call to 'fsString<300>::fsString(unsigned int, char)'
 4056 |     string __str(__detail::__to_chars_len(__val), '\0');
      |                                                       ^
/Users/kuku/Esp32_oscilloscope/fsString.h:129:13: note: candidate: 'fsString<N>::fsString(long unsigned int) [with unsigned int N = 300]'
  129 |             fsString (unsigned long number) {                    // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:129:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:118:13: note: candidate: 'fsString<N>::fsString(long int) [with unsigned int N = 300]'
  118 |             fsString (long number) {                             // convert long to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:118:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:107:13: note: candidate: 'fsString<N>::fsString(unsigned int) [with unsigned int N = 300]'
  107 |             fsString (unsigned int number) {                    // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:107:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:95:13: note: candidate: 'fsString<N>::fsString(int) [with unsigned int N = 300]'
   95 |             fsString (int number) {                             // convert int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:95:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:84:13: note: candidate: 'fsString<N>::fsString(uint16_t) [with unsigned int N = 300; uint16_t = short unsigned int]'
   84 |             fsString (uint16_t number) {                        // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:84:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:73:13: note: candidate: 'fsString<N>::fsString(int16_t) [with unsigned int N = 300; int16_t = short int]'
   73 |             fsString (int16_t number) {                         // convert int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:73:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:65:13: note: candidate: 'fsString<N>::fsString(const char&) [with unsigned int N = 300]'
   65 |             fsString (const char& other) {                      // for declarations with initialization, like fsString<15> c = 'c';
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:65:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:57:13: note: candidate: 'fsString<N>::fsString(const fsString<N>&) [with unsigned int N = 300]'
   57 |             fsString (const fsString& other) {                  // for declarations with initialization, like fsString<15> b = a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:57:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note: candidate: 'fsString<N>::fsString(const char*) [with unsigned int N = 300]'
   46 |             fsString (const char *other) {                      // for declarations with initialization, like fsString<15> b = "abc";
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note: candidate: 'fsString<N>::fsString() [with unsigned int N = 300]'
   44 |             fsString () {}                                      // for declarations like fsString<15> a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note:   candidate expects 0 arguments, 2 provided
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:4057:51: error: 'struct fsString<300>' has no member named 'size'
 4057 |     __detail::__to_chars_10_impl(&__str[0], __str.size(), __val);
      |                                                   ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In function 'fsString<300> std::__cxx11::to_string(long long int)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:4068:36: error: no matching function for call to 'fsString<300>::fsString(unsigned int, char)'
 4068 |     string __str(__neg + __len, '-');
      |                                    ^
/Users/kuku/Esp32_oscilloscope/fsString.h:129:13: note: candidate: 'fsString<N>::fsString(long unsigned int) [with unsigned int N = 300]'
  129 |             fsString (unsigned long number) {                    // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:129:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:118:13: note: candidate: 'fsString<N>::fsString(long int) [with unsigned int N = 300]'
  118 |             fsString (long number) {                             // convert long to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:118:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:107:13: note: candidate: 'fsString<N>::fsString(unsigned int) [with unsigned int N = 300]'
  107 |             fsString (unsigned int number) {                    // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:107:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:95:13: note: candidate: 'fsString<N>::fsString(int) [with unsigned int N = 300]'
   95 |             fsString (int number) {                             // convert int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:95:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:84:13: note: candidate: 'fsString<N>::fsString(uint16_t) [with unsigned int N = 300; uint16_t = short unsigned int]'
   84 |             fsString (uint16_t number) {                        // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:84:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:73:13: note: candidate: 'fsString<N>::fsString(int16_t) [with unsigned int N = 300; int16_t = short int]'
   73 |             fsString (int16_t number) {                         // convert int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:73:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:65:13: note: candidate: 'fsString<N>::fsString(const char&) [with unsigned int N = 300]'
   65 |             fsString (const char& other) {                      // for declarations with initialization, like fsString<15> c = 'c';
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:65:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:57:13: note: candidate: 'fsString<N>::fsString(const fsString<N>&) [with unsigned int N = 300]'
   57 |             fsString (const fsString& other) {                  // for declarations with initialization, like fsString<15> b = a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:57:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note: candidate: 'fsString<N>::fsString(const char*) [with unsigned int N = 300]'
   46 |             fsString (const char *other) {                      // for declarations with initialization, like fsString<15> b = "abc";
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note: candidate: 'fsString<N>::fsString() [with unsigned int N = 300]'
   44 |             fsString () {}                                      // for declarations like fsString<15> a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note:   candidate expects 0 arguments, 2 provided
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In function 'fsString<300> std::__cxx11::to_string(long long unsigned int)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:4076:55: error: no matching function for call to 'fsString<300>::fsString(unsigned int, char)'
 4076 |     string __str(__detail::__to_chars_len(__val), '\0');
      |                                                       ^
/Users/kuku/Esp32_oscilloscope/fsString.h:129:13: note: candidate: 'fsString<N>::fsString(long unsigned int) [with unsigned int N = 300]'
  129 |             fsString (unsigned long number) {                    // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:129:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:118:13: note: candidate: 'fsString<N>::fsString(long int) [with unsigned int N = 300]'
  118 |             fsString (long number) {                             // convert long to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:118:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:107:13: note: candidate: 'fsString<N>::fsString(unsigned int) [with unsigned int N = 300]'
  107 |             fsString (unsigned int number) {                    // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:107:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:95:13: note: candidate: 'fsString<N>::fsString(int) [with unsigned int N = 300]'
   95 |             fsString (int number) {                             // convert int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:95:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:84:13: note: candidate: 'fsString<N>::fsString(uint16_t) [with unsigned int N = 300; uint16_t = short unsigned int]'
   84 |             fsString (uint16_t number) {                        // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:84:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:73:13: note: candidate: 'fsString<N>::fsString(int16_t) [with unsigned int N = 300; int16_t = short int]'
   73 |             fsString (int16_t number) {                         // convert int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:73:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:65:13: note: candidate: 'fsString<N>::fsString(const char&) [with unsigned int N = 300]'
   65 |             fsString (const char& other) {                      // for declarations with initialization, like fsString<15> c = 'c';
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:65:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:57:13: note: candidate: 'fsString<N>::fsString(const fsString<N>&) [with unsigned int N = 300]'
   57 |             fsString (const fsString& other) {                  // for declarations with initialization, like fsString<15> b = a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:57:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note: candidate: 'fsString<N>::fsString(const char*) [with unsigned int N = 300]'
   46 |             fsString (const char *other) {                      // for declarations with initialization, like fsString<15> b = "abc";
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note: candidate: 'fsString<N>::fsString() [with unsigned int N = 300]'
   44 |             fsString () {}                                      // for declarations like fsString<15> a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note:   candidate expects 0 arguments, 2 provided
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:4077:51: error: 'struct fsString<300>' has no member named 'size'
 4077 |     __detail::__to_chars_10_impl(&__str[0], __str.size(), __val);
      |                                                   ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h: In member function 'std::size_t std::hash<fsString<300> >::operator()(const fsString<300>&) const':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:4240:42: error: 'const struct fsString<300>' has no member named 'data'
 4240 |       { return std::_Hash_impl::hash(__s.data(), __s.length()); }
      |                                          ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:4240:60: error: passing 'const fsString<300>' as 'this' argument discards qualifiers [-fpermissive]
 4240 |       { return std::_Hash_impl::hash(__s.data(), __s.length()); }
      |                                                  ~~~~~~~~~~^~
/Users/kuku/Esp32_oscilloscope/fsString.h:350:27: note:   in call to 'size_t fsString<N>::length() [with unsigned int N = 300; size_t = unsigned int]'
  350 |             inline size_t length () __attribute__((always_inline)) { return strlen (__c_str__); }
      |                           ^~~~~~
In file included from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/string:54:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc: At global scope:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:1092:5: error: template-id 'operator>><>' for 'std::basic_istream<char>& std::operator>>(basic_istream<char>&, fsString<300>&)' does not match any template declaration
 1092 |     operator>>(basic_istream<char>&, string&);
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:940:5: note: candidate is: 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
  940 |     operator>>(basic_istream<_CharT, _Traits>& __in,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:1095:5: error: template-id 'operator<< <>' for 'std::basic_ostream<char>& std::operator<<(basic_ostream<char>&, const fsString<300>&)' does not match any template declaration
 1095 |     operator<<(basic_ostream<char>&, const string&);
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3883:5: note: candidates are: 'template<class _CharT, class _Traits, class _Alloc> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3883 |     operator<<(basic_ostream<_CharT, _Traits>& __os,
      |     ^~~~~~~~
In file included from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:47:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/string_view:672:5: note:                 'template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(basic_ostream<_CharT, _Traits>&, basic_string_view<_CharT, _Traits>)'
  672 |     operator<<(basic_ostream<_CharT, _Traits>& __os,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:1098:5: error: template-id 'getline<>' for 'std::basic_istream<char>& std::getline(basic_istream<char>&, fsString<300>&, char)' does not match any template declaration
 1098 |     getline(basic_istream<char>&, string&, char);
      |     ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3938:5: note: candidates are: 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::getline(basic_istream<_CharT, _Traits>&&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3938 |     getline(basic_istream<_CharT, _Traits>&& __is,
      |     ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3931:5: note:                 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::getline(basic_istream<_CharT, _Traits>&&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&, _CharT)'
 3931 |     getline(basic_istream<_CharT, _Traits>&& __is,
      |     ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3923:5: note:                 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::getline(basic_istream<_CharT, _Traits>&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3923 |     getline(basic_istream<_CharT, _Traits>& __is,
      |     ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:1012:5: note:                 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::getline(basic_istream<_CharT, _Traits>&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&, _CharT)'
 1012 |     getline(basic_istream<_CharT, _Traits>& __in,
      |     ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:1101:5: error: template-id 'getline<>' for 'std::basic_istream<char>& std::getline(basic_istream<char>&, fsString<300>&)' does not match any template declaration
 1101 |     getline(basic_istream<char>&, string&);
      |     ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3938:5: note: candidates are: 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::getline(basic_istream<_CharT, _Traits>&&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3938 |     getline(basic_istream<_CharT, _Traits>&& __is,
      |     ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3931:5: note:                 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::getline(basic_istream<_CharT, _Traits>&&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&, _CharT)'
 3931 |     getline(basic_istream<_CharT, _Traits>&& __is,
      |     ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3923:5: note:                 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::getline(basic_istream<_CharT, _Traits>&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3923 |     getline(basic_istream<_CharT, _Traits>& __is,
      |     ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:1012:5: note:                 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::getline(basic_istream<_CharT, _Traits>&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&, _CharT)'
 1012 |     getline(basic_istream<_CharT, _Traits>& __in,
      |     ^~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:15:20: error: expected nested-name-specifier
   15 |     #define string fsString<300>
      |                    ^~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:15:20: error: 'fsString' is not a member of 'std::pmr'; did you mean 'wstring'?
   15 |     #define string fsString<300>
      |                    ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:15:32: error: template argument 1 is invalid
   15 |     #define string fsString<300>
      |                                ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/string:84:28: error: expected unqualified-id before '>' token
   84 |     struct hash<pmr::string>
      |                            ^
/Users/kuku/Esp32_oscilloscope/fsString.h:15:20: error: 'fsString' in namespace 'std' does not name a template type; did you mean 'wstring'?
   15 |     #define string fsString<300>
      |                    ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:15:28: error: expected ',' or '...' before '<' token
   15 |     #define string fsString<300>
      |                            ^
/Users/kuku/Esp32_oscilloscope/fsString.h:15:20: error: 'fsString' in namespace 'std' does not name a template type; did you mean 'wstring'?
   15 |     #define string fsString<300>
      |                    ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:15:28: error: expected ',' or '...' before '<' token
   15 |     #define string fsString<300>
      |                            ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_classes.h: In constructor 'std::locale::locale(int)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_classes.h:163:45: error: '__s' was not declared in this scope
  163 |     locale(const std::string& __s) : locale(__s.c_str()) { }
      |                                             ^~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_classes.h: In constructor 'std::locale::locale(const std::locale&, int)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_classes.h:178:22: error: '__s' was not declared in this scope
  178 |     : locale(__base, __s.c_str(), __cat) { }
      |                      ^~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_classes.h:178:35: error: '__cat' was not declared in this scope
  178 |     : locale(__base, __s.c_str(), __cat) { }
      |                                   ^~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_classes.h: In constructor 'std::__cxx11::collate_byname<_CharT>::collate_byname(const fsString<300>&, std::size_t)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_classes.h:846:24: error: cannot convert 'const fsString<300>*' to 'fsString<300>*'
  846 |       : collate_byname(__s.c_str(), __refs) { }
      |                        ^~~
      |                        |
      |                        const fsString<300>*
/Users/kuku/Esp32_oscilloscope/fsString.h:348:26: note:   initializing argument 'this' of 'char* fsString<N>::c_str() [with unsigned int N = 300]'
  348 |             inline char *c_str () __attribute__((always_inline)) { return __c_str__; } // not really needed, use char *() operator instead
      |                          ^~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/stdexcept: At global scope:
/Users/kuku/Esp32_oscilloscope/fsString.h:15:20: error: 'fsString' in namespace 'std' does not name a template type; did you mean 'wstring'?
   15 |     #define string fsString<300>
      |                    ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:15:28: error: expected ',' or '...' before '<' token
   15 |     #define string fsString<300>
      |                            ^
In file included from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/ios_base.h:46:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error: In constructor 'std::system_error::system_error(std::error_code, const fsString<300>&)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:28: error: no match for 'operator+' (operand types are 'const fsString<300>' and 'const char [3]')
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                     ~~~~~~ ^ ~~~~
      |                     |        |
      |                     |        const char [3]
      |                     const fsString<300>
/Users/kuku/Esp32_oscilloscope/fsString.h:315:22: note: candidate: 'fsString<N> fsString<N>::operator+(const char&) [with unsigned int N = 300]' (near match)
  315 |             fsString operator + (const char& other) {           // for adding a charactr to fsString, like: a + 'b';
      |                      ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:315:22: note:   conversion of argument 1 would be ill-formed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: error: invalid conversion from 'const char*' to 'char' [-fpermissive]
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
      |                              |
      |                              const char*
/Users/kuku/Esp32_oscilloscope/fsString.h:303:22: note: candidate: 'fsString<N> fsString<N>::operator+(const fsString<N>&) [with unsigned int N = 300]' (near match)
  303 |             fsString operator + (const fsString& other) {       // for concatenating one fsString with anoterh, like: a + b;
      |                      ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:303:22: note:   passing 'const fsString<300>*' as 'this' argument discards qualifiers
/Users/kuku/Esp32_oscilloscope/fsString.h:291:22: note: candidate: 'fsString<N> fsString<N>::operator+(const char*) [with unsigned int N = 300]' (near match)
  291 |             fsString operator + (const char *other) {           // for adding C string to fsString, like: a + "abc";
      |                      ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:291:22: note:   passing 'const fsString<300>*' as 'this' argument discards qualifiers
In file included from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_algobase.h:67,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/specfun.h:45,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/cmath:1935,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/math.h:36,
                 from /Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/cores/esp32/esp32-hal.h:30,
                 from /Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/cores/esp32/Arduino.h:36,
                 from /private/var/folders/kc/5p61t70n0llbn05934gj4r_w0000gn/T/arduino/sketches/0AA80E68A376A30A41A1AF276D65A32F/sketch/Esp32_oscilloscope.ino.cpp:1:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_iterator.h:630:5: note: candidate: 'template<class _Iterator> constexpr std::reverse_iterator<_IteratorL> std::operator+(typename reverse_iterator<_IteratorL>::difference_type, const reverse_iterator<_IteratorL>&)'
  630 |     operator+(typename reverse_iterator<_Iterator>::difference_type __n,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_iterator.h:630:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: note:   mismatched types 'const std::reverse_iterator<_IteratorL>' and 'const char [3]'
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_iterator.h:1786:5: note: candidate: 'template<class _Iterator> constexpr std::move_iterator<_IteratorL> std::operator+(typename move_iterator<_IteratorL>::difference_type, const move_iterator<_IteratorL>&)'
 1786 |     operator+(typename move_iterator<_Iterator>::difference_type __n,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_iterator.h:1786:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: note:   mismatched types 'const std::move_iterator<_IteratorL>' and 'const char [3]'
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3432:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3432 |     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3432:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: note:   'const fsString<300>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:606:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const _CharT*, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
  606 |     operator+(const _CharT* __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:606:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: note:   mismatched types 'const _CharT*' and 'fsString<300>'
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:627:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(_CharT, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
  627 |     operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:627:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: note:   mismatched types 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const char [3]'
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3472:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, const _CharT*)'
 3472 |     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3472:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: note:   'const fsString<300>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3489:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, _CharT)'
 3489 |     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3489:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: note:   'const fsString<300>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3502:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3502 |     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3502:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: note:   types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const fsString<300>' have incompatible cv-qualifiers
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3509:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&)'
 3509 |     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3509:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: note:   'const fsString<300>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3516:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&)'
 3516 |     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3516:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: note:   types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const fsString<300>' have incompatible cv-qualifiers
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3539:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const _CharT*, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&)'
 3539 |     operator+(const _CharT* __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3539:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: note:   mismatched types 'const _CharT*' and 'fsString<300>'
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3546:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(_CharT, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&)'
 3546 |     operator+(_CharT __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3546:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: note:   mismatched types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const char [3]'
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3553:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, const _CharT*)'
 3553 |     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3553:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: note:   types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const fsString<300>' have incompatible cv-qualifiers
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3560:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, _CharT)'
 3560 |     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3560:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:456:30: note:   types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const fsString<300>' have incompatible cv-qualifiers
  456 |     : runtime_error(__what + ": " + __ec.message()), _M_code(__ec) { }
      |                              ^~~~
In file included from /Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/cores/esp32/Arduino.h:189:
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/cores/esp32/WString.h:397:26: note: candidate: 'StringSumHelper& operator+(const StringSumHelper&, const __FlashStringHelper*)'
  397 | inline StringSumHelper & operator +(const StringSumHelper &lhs, const __FlashStringHelper *rhs) {
      |                          ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/cores/esp32/WString.h:397:60: note:   no known conversion for argument 1 from 'const fsString<300>' to 'const StringSumHelper&'
  397 | inline StringSumHelper & operator +(const StringSumHelper &lhs, const __FlashStringHelper *rhs) {
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~^~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error: In constructor 'std::system_error::system_error(std::error_code, const char*)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:36: error: no match for 'operator+' (operand types are 'const char [3]' and 'fsString<300>')
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                               ~~~~ ^ ~~~~~~~~~~~~~~
      |                               |                  |
      |                               const char [3]     fsString<300>
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_iterator.h:630:5: note: candidate: 'template<class _Iterator> constexpr std::reverse_iterator<_IteratorL> std::operator+(typename reverse_iterator<_IteratorL>::difference_type, const reverse_iterator<_IteratorL>&)'
  630 |     operator+(typename reverse_iterator<_Iterator>::difference_type __n,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_iterator.h:630:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:51: note:   'fsString<300>' is not derived from 'const std::reverse_iterator<_IteratorL>'
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                                                   ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_iterator.h:1786:5: note: candidate: 'template<class _Iterator> constexpr std::move_iterator<_IteratorL> std::operator+(typename move_iterator<_IteratorL>::difference_type, const move_iterator<_IteratorL>&)'
 1786 |     operator+(typename move_iterator<_Iterator>::difference_type __n,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_iterator.h:1786:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:51: note:   'fsString<300>' is not derived from 'const std::move_iterator<_IteratorL>'
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                                                   ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3432:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3432 |     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3432:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:51: note:   mismatched types 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const char [3]'
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                                                   ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:606:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const _CharT*, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
  606 |     operator+(const _CharT* __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:606:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:51: note:   'fsString<300>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                                                   ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:627:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(_CharT, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
  627 |     operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:627:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:51: note:   'fsString<300>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                                                   ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3472:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, const _CharT*)'
 3472 |     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3472:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:51: note:   mismatched types 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const char [3]'
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                                                   ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3489:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, _CharT)'
 3489 |     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3489:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:51: note:   mismatched types 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const char [3]'
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                                                   ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3502:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3502 |     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3502:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:51: note:   mismatched types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const char [3]'
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                                                   ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3509:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&)'
 3509 |     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3509:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:51: note:   mismatched types 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const char [3]'
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                                                   ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3516:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&)'
 3516 |     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3516:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:51: note:   mismatched types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const char [3]'
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                                                   ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3539:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const _CharT*, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&)'
 3539 |     operator+(const _CharT* __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3539:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:51: note:   'fsString<300>' is not derived from 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                                                   ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3546:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(_CharT, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&)'
 3546 |     operator+(_CharT __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3546:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:51: note:   'fsString<300>' is not derived from 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                                                   ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3553:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, const _CharT*)'
 3553 |     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3553:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:51: note:   mismatched types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const char [3]'
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                                                   ^
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3560:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, _CharT)'
 3560 |     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3560:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:459:51: note:   mismatched types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const char [3]'
  459 |     : runtime_error(__what + (": " + __ec.message())), _M_code(__ec) { }
      |                                                   ^
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/cores/esp32/WString.h:397:26: note: candidate: 'StringSumHelper& operator+(const StringSumHelper&, const __FlashStringHelper*)'
  397 | inline StringSumHelper & operator +(const StringSumHelper &lhs, const __FlashStringHelper *rhs) {
      |                          ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/cores/esp32/WString.h:397:92: note:   no known conversion for argument 2 from 'fsString<300>' to 'const __FlashStringHelper*'
  397 | inline StringSumHelper & operator +(const StringSumHelper &lhs, const __FlashStringHelper *rhs) {
      |                                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error: In constructor 'std::system_error::system_error(int, const std::_V2::error_category&, const fsString<300>&)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:28: error: no match for 'operator+' (operand types are 'const fsString<300>' and 'const char [3]')
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                     ~~~~~~ ^ ~~~~
      |                     |        |
      |                     |        const char [3]
      |                     const fsString<300>
/Users/kuku/Esp32_oscilloscope/fsString.h:315:22: note: candidate: 'fsString<N> fsString<N>::operator+(const char&) [with unsigned int N = 300]' (near match)
  315 |             fsString operator + (const char& other) {           // for adding a charactr to fsString, like: a + 'b';
      |                      ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:315:22: note:   conversion of argument 1 would be ill-formed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: error: invalid conversion from 'const char*' to 'char' [-fpermissive]
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
      |                              |
      |                              const char*
/Users/kuku/Esp32_oscilloscope/fsString.h:303:22: note: candidate: 'fsString<N> fsString<N>::operator+(const fsString<N>&) [with unsigned int N = 300]' (near match)
  303 |             fsString operator + (const fsString& other) {       // for concatenating one fsString with anoterh, like: a + b;
      |                      ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:303:22: note:   passing 'const fsString<300>*' as 'this' argument discards qualifiers
/Users/kuku/Esp32_oscilloscope/fsString.h:291:22: note: candidate: 'fsString<N> fsString<N>::operator+(const char*) [with unsigned int N = 300]' (near match)
  291 |             fsString operator + (const char *other) {           // for adding C string to fsString, like: a + "abc";
      |                      ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:291:22: note:   passing 'const fsString<300>*' as 'this' argument discards qualifiers
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_iterator.h:630:5: note: candidate: 'template<class _Iterator> constexpr std::reverse_iterator<_IteratorL> std::operator+(typename reverse_iterator<_IteratorL>::difference_type, const reverse_iterator<_IteratorL>&)'
  630 |     operator+(typename reverse_iterator<_Iterator>::difference_type __n,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_iterator.h:630:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: note:   mismatched types 'const std::reverse_iterator<_IteratorL>' and 'const char [3]'
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_iterator.h:1786:5: note: candidate: 'template<class _Iterator> constexpr std::move_iterator<_IteratorL> std::operator+(typename move_iterator<_IteratorL>::difference_type, const move_iterator<_IteratorL>&)'
 1786 |     operator+(typename move_iterator<_Iterator>::difference_type __n,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/stl_iterator.h:1786:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: note:   mismatched types 'const std::move_iterator<_IteratorL>' and 'const char [3]'
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3432:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3432 |     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3432:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: note:   'const fsString<300>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:606:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const _CharT*, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
  606 |     operator+(const _CharT* __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:606:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: note:   mismatched types 'const _CharT*' and 'fsString<300>'
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:627:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(_CharT, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
  627 |     operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.tcc:627:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: note:   mismatched types 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const char [3]'
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3472:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, const _CharT*)'
 3472 |     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3472:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: note:   'const fsString<300>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3489:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, _CharT)'
 3489 |     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3489:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: note:   'const fsString<300>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3502:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 3502 |     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3502:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: note:   types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const fsString<300>' have incompatible cv-qualifiers
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3509:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const __cxx11::basic_string<_CharT, _Traits, _Allocator>&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&)'
 3509 |     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3509:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: note:   'const fsString<300>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3516:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&)'
 3516 |     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3516:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: note:   types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const fsString<300>' have incompatible cv-qualifiers
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3539:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const _CharT*, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&)'
 3539 |     operator+(const _CharT* __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3539:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: note:   mismatched types 'const _CharT*' and 'fsString<300>'
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3546:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(_CharT, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&)'
 3546 |     operator+(_CharT __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3546:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: note:   mismatched types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const char [3]'
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3553:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, const _CharT*)'
 3553 |     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3553:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: note:   types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const fsString<300>' have incompatible cv-qualifiers
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3560:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, _CharT)'
 3560 |     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
      |     ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3560:5: note:   template argument deduction/substitution failed:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/system_error:469:30: note:   types 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' and 'const fsString<300>' have incompatible cv-qualifiers
  469 |     : runtime_error(__what + ": " + error_code(__v, __ecat).message()),
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/cores/esp32/WString.h:397:26: note: candidate: 'StringSumHelper& operator+(const StringSumHelper&, const __FlashStringHelper*)'
  397 | inline StringSumHelper & operator +(const StringSumHelper &lhs, const __FlashStringHelper *rhs) {
      |                          ^~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/cores/esp32/WString.h:397:60: note:   no known conversion for argument 1 from 'const fsString<300>' to 'const StringSumHelper&'
  397 | inline StringSumHelper & operator +(const StringSumHelper &lhs, const __FlashStringHelper *rhs) {
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~^~~
In file included from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_ios.h:37,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/ios:44:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.h: In constructor 'std::ctype_byname<_CharT>::ctype_byname(const fsString<300>&, std::size_t)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.h:1497:22: error: cannot convert 'const fsString<300>*' to 'fsString<300>*'
 1497 |       : ctype_byname(__s.c_str(), __refs) { }
      |                      ^~~
      |                      |
      |                      const fsString<300>*
/Users/kuku/Esp32_oscilloscope/fsString.h:348:26: note:   initializing argument 'this' of 'char* fsString<N>::c_str() [with unsigned int N = 300]'
  348 |             inline char *c_str () __attribute__((always_inline)) { return __c_str__; } // not really needed, use char *() operator instead
      |                          ^~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.h: In constructor 'std::__cxx11::numpunct_byname<_CharT>::numpunct_byname(const fsString<300>&, std::size_t)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.h:1934:25: error: cannot convert 'const fsString<300>*' to 'fsString<300>*'
 1934 |       : numpunct_byname(__s.c_str(), __refs) { }
      |                         ^~~
      |                         |
      |                         const fsString<300>*
/Users/kuku/Esp32_oscilloscope/fsString.h:348:26: note:   initializing argument 'this' of 'char* fsString<N>::c_str() [with unsigned int N = 300]'
  348 |             inline char *c_str () __attribute__((always_inline)) { return __c_str__; } // not really needed, use char *() operator instead
      |                          ^~~~~
In file included from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.h:2687:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc: In member function 'void std::__numpunct_cache<_CharT>::_M_cache(const std::locale&)':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc:88:34: error: 'const struct fsString<300>' has no member named 'size'
   88 |           _M_grouping_size = __g.size();
      |                                  ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc:90:15: error: 'const struct fsString<300>' has no member named 'copy'
   90 |           __g.copy(__grouping, _M_grouping_size);
      |               ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc: In member function '_InIter std::num_get<_CharT, _InIter>::_M_extract_float(_InIter, _InIter, std::ios_base&, std::ios_base::iostate&, fsString<300>&) const':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc:211:26: error: 'struct fsString<300>' has no member named 'reserve'
  211 |         __found_grouping.reserve(32);
      |                          ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc:282:32: error: 'struct fsString<300>' has no member named 'clear'
  282 |                         __xtrc.clear();
      |                                ^~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc:296:42: error: 'struct fsString<300>' has no member named 'size'
  296 |                     if (__found_grouping.size())
      |                                          ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc:319:42: error: 'struct fsString<300>' has no member named 'size'
  319 |                     if (__found_grouping.size() && !__found_dec)
      |                                          ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc:355:28: error: 'struct fsString<300>' has no member named 'size'
  355 |       if (__found_grouping.size())
      |                            ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc: In member function '_InIter std::num_get<_CharT, _InIter>::_M_extract_int(_InIter, _InIter, std::ios_base&, std::ios_base::iostate&, _ValueT&) const':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc:469:28: error: 'struct fsString<300>' has no member named 'reserve'
  469 |           __found_grouping.reserve(32);
      |                            ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc:555:30: error: 'struct fsString<300>' has no member named 'size'
  555 |         if (__found_grouping.size())
      |                              ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc:568:63: error: 'struct fsString<300>' has no member named 'size'
  568 |         if ((!__sep_pos && !__found_zero && !__found_grouping.size())
      |                                                               ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc: In member function 'virtual _InIter std::num_get<_CharT, _InIter>::do_get(iter_type, iter_type, std::ios_base&, std::ios_base::iostate&, float&) const':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc:695:14: error: 'struct fsString<300>' has no member named 'reserve'
  695 |       __xtrc.reserve(32);
      |              ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc: In member function 'virtual _InIter std::num_get<_CharT, _InIter>::do_get(iter_type, iter_type, std::ios_base&, std::ios_base::iostate&, double&) const':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc:710:14: error: 'struct fsString<300>' has no member named 'reserve'
  710 |       __xtrc.reserve(32);
      |              ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc: In member function 'virtual _InIter std::num_get<_CharT, _InIter>::do_get(iter_type, iter_type, std::ios_base&, std::ios_base::iostate&, long double&) const':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/locale_facets.tcc:742:14: error: 'struct fsString<300>' has no member named 'reserve'
  742 |       __xtrc.reserve(32);
      |              ^~~~~~~
In file included from /Users/kuku/Esp32_oscilloscope/Esp32_oscilloscope.ino:130:
/Users/kuku/Esp32_oscilloscope/oscilloscope.h: At global scope:
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:58:25: note: '#pragma message: Oscilloscope will use I2S interface (for monitoring a single analog signal) and adc1_get_raw (for monitoring double analog signals).'
   58 |         #pragma message "Oscilloscope will use I2S interface (for monitoring a single analog signal) and adc1_get_raw (for monitoring double analog signals)."
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/esp_common/include/esp_macros.h:13,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:76,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/freertos/FreeRTOS-Kernel/include/freertos/portable.h:59,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/freertos/FreeRTOS-Kernel/include/freertos/FreeRTOS.h:71,
                 from /Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/cores/esp32/Arduino.h:33:
/Users/kuku/Esp32_oscilloscope/oscilloscope.h: In function 'void oscReader_millis(void*)':
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:208:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  208 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/esp_common/include/esp_assert.h:24:38: note: in definition of macro 'TRY_STATIC_ASSERT'
   24 |             if (__builtin_constant_p(CONDITION) && !(CONDITION)) {          \
      |                                      ^~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:125:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  125 |             ASSERT_IF_DPORT_REG((reg), SET_PERI_REG_MASK);                                                             \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:208:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  208 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                              ^~~~~~~~~~~~~~~~
In file included from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/sys-include/sys/reent.h:503,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/newlib/platform_include/sys/reent.h:9,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/sys-include/stdio.h:60,
                 from /Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/cores/esp32/Arduino.h:27:
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:208:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  208 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:38: note: in expansion of macro 'TRY_STATIC_ASSERT'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                      ^~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:125:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  125 |             ASSERT_IF_DPORT_REG((reg), SET_PERI_REG_MASK);                                                             \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:208:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  208 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:208:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  208 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/esp_common/include/esp_assert.h:24:38: note: in definition of macro 'TRY_STATIC_ASSERT'
   24 |             if (__builtin_constant_p(CONDITION) && !(CONDITION)) {          \
      |                                      ^~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:113:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  113 |             ASSERT_IF_DPORT_REG((addr), WRITE_PERI_REG);                                                               \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:208:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  208 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:208:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  208 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:38: note: in expansion of macro 'TRY_STATIC_ASSERT'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                      ^~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:113:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  113 |             ASSERT_IF_DPORT_REG((addr), WRITE_PERI_REG);                                                               \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:208:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  208 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                              ^~~~~~~~~~~~~~~~
In file included from /Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/esp_hw_support/include/esp_memory_utils.h:12,
                 from /Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:79:
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:208:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  208 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:25:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
   25 | #define ETS_UNCACHED_ADDR(addr) (addr)
      |                                  ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:208:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  208 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:54: error: invalid operands of types 'void' and 'long unsigned int' to binary 'operator|'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |                                                      ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:114:76: note: in definition of macro 'WRITE_PERI_REG'
  114 |             (*((volatile uint32_t *)ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val);                                       \
      |                                                                            ^~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:208:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  208 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:209:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  209 |             if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/esp_common/include/esp_assert.h:24:38: note: in definition of macro 'TRY_STATIC_ASSERT'
   24 |             if (__builtin_constant_p(CONDITION) && !(CONDITION)) {          \
      |                                      ^~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:125:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  125 |             ASSERT_IF_DPORT_REG((reg), SET_PERI_REG_MASK);                                                             \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:209:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  209 |             if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:209:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  209 |             if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:38: note: in expansion of macro 'TRY_STATIC_ASSERT'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                      ^~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:125:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  125 |             ASSERT_IF_DPORT_REG((reg), SET_PERI_REG_MASK);                                                             \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:209:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  209 |             if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:209:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  209 |             if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/esp_common/include/esp_assert.h:24:38: note: in definition of macro 'TRY_STATIC_ASSERT'
   24 |             if (__builtin_constant_p(CONDITION) && !(CONDITION)) {          \
      |                                      ^~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:113:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  113 |             ASSERT_IF_DPORT_REG((addr), WRITE_PERI_REG);                                                               \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:209:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  209 |             if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:209:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  209 |             if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:38: note: in expansion of macro 'TRY_STATIC_ASSERT'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                      ^~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:113:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  113 |             ASSERT_IF_DPORT_REG((addr), WRITE_PERI_REG);                                                               \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:209:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  209 |             if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:209:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  209 |             if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:25:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
   25 | #define ETS_UNCACHED_ADDR(addr) (addr)
      |                                  ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:209:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  209 |             if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:54: error: invalid operands of types 'void' and 'long unsigned int' to binary 'operator|'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |                                                      ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:114:76: note: in definition of macro 'WRITE_PERI_REG'
  114 |             (*((volatile uint32_t *)ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val);                                       \
      |                                                                            ^~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:209:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  209 |             if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h: In function 'void oscReader_digital(void*)':
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:413:44: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  413 |         if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                            ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/esp_common/include/esp_assert.h:24:38: note: in definition of macro 'TRY_STATIC_ASSERT'
   24 |             if (__builtin_constant_p(CONDITION) && !(CONDITION)) {          \
      |                                      ^~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:125:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  125 |             ASSERT_IF_DPORT_REG((reg), SET_PERI_REG_MASK);                                                             \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:413:26: note: in expansion of macro 'PIN_INPUT_ENABLE'
  413 |         if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                          ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:413:44: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  413 |         if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                            ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:38: note: in expansion of macro 'TRY_STATIC_ASSERT'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                      ^~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:125:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  125 |             ASSERT_IF_DPORT_REG((reg), SET_PERI_REG_MASK);                                                             \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:413:26: note: in expansion of macro 'PIN_INPUT_ENABLE'
  413 |         if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                          ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:413:44: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  413 |         if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                            ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/esp_common/include/esp_assert.h:24:38: note: in definition of macro 'TRY_STATIC_ASSERT'
   24 |             if (__builtin_constant_p(CONDITION) && !(CONDITION)) {          \
      |                                      ^~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:113:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  113 |             ASSERT_IF_DPORT_REG((addr), WRITE_PERI_REG);                                                               \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:413:26: note: in expansion of macro 'PIN_INPUT_ENABLE'
  413 |         if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                          ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:413:44: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  413 |         if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                            ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:38: note: in expansion of macro 'TRY_STATIC_ASSERT'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                      ^~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:113:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  113 |             ASSERT_IF_DPORT_REG((addr), WRITE_PERI_REG);                                                               \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:413:26: note: in expansion of macro 'PIN_INPUT_ENABLE'
  413 |         if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                          ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:413:44: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  413 |         if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                            ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:25:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
   25 | #define ETS_UNCACHED_ADDR(addr) (addr)
      |                                  ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:413:26: note: in expansion of macro 'PIN_INPUT_ENABLE'
  413 |         if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                          ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:54: error: invalid operands of types 'void' and 'long unsigned int' to binary 'operator|'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |                                                      ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:114:76: note: in definition of macro 'WRITE_PERI_REG'
  114 |             (*((volatile uint32_t *)ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val);                                       \
      |                                                                            ^~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:413:26: note: in expansion of macro 'PIN_INPUT_ENABLE'
  413 |         if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                          ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:414:44: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  414 |         if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                                            ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/esp_common/include/esp_assert.h:24:38: note: in definition of macro 'TRY_STATIC_ASSERT'
   24 |             if (__builtin_constant_p(CONDITION) && !(CONDITION)) {          \
      |                                      ^~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:125:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  125 |             ASSERT_IF_DPORT_REG((reg), SET_PERI_REG_MASK);                                                             \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:414:26: note: in expansion of macro 'PIN_INPUT_ENABLE'
  414 |         if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                          ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:414:44: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  414 |         if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                                            ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:38: note: in expansion of macro 'TRY_STATIC_ASSERT'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                      ^~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:125:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  125 |             ASSERT_IF_DPORT_REG((reg), SET_PERI_REG_MASK);                                                             \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:414:26: note: in expansion of macro 'PIN_INPUT_ENABLE'
  414 |         if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                          ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:414:44: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  414 |         if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                                            ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/esp_common/include/esp_assert.h:24:38: note: in definition of macro 'TRY_STATIC_ASSERT'
   24 |             if (__builtin_constant_p(CONDITION) && !(CONDITION)) {          \
      |                                      ^~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:113:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  113 |             ASSERT_IF_DPORT_REG((addr), WRITE_PERI_REG);                                                               \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:414:26: note: in expansion of macro 'PIN_INPUT_ENABLE'
  414 |         if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                          ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:414:44: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  414 |         if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                                            ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:38: note: in expansion of macro 'TRY_STATIC_ASSERT'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                      ^~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:113:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  113 |             ASSERT_IF_DPORT_REG((addr), WRITE_PERI_REG);                                                               \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:414:26: note: in expansion of macro 'PIN_INPUT_ENABLE'
  414 |         if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                          ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:414:44: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  414 |         if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                                            ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:25:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
   25 | #define ETS_UNCACHED_ADDR(addr) (addr)
      |                                  ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:414:26: note: in expansion of macro 'PIN_INPUT_ENABLE'
  414 |         if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                          ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:54: error: invalid operands of types 'void' and 'long unsigned int' to binary 'operator|'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |                                                      ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:114:76: note: in definition of macro 'WRITE_PERI_REG'
  114 |             (*((volatile uint32_t *)ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val);                                       \
      |                                                                            ^~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:414:26: note: in expansion of macro 'PIN_INPUT_ENABLE'
  414 |         if (gpio2 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio2]);
      |                          ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h: In function 'void oscReader_analog_1_signal_i2s(void*)':
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:807:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  807 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/esp_common/include/esp_assert.h:24:38: note: in definition of macro 'TRY_STATIC_ASSERT'
   24 |             if (__builtin_constant_p(CONDITION) && !(CONDITION)) {          \
      |                                      ^~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:125:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  125 |             ASSERT_IF_DPORT_REG((reg), SET_PERI_REG_MASK);                                                             \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:807:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  807 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:807:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  807 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:38: note: in expansion of macro 'TRY_STATIC_ASSERT'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                      ^~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:125:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  125 |             ASSERT_IF_DPORT_REG((reg), SET_PERI_REG_MASK);                                                             \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:807:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  807 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:807:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  807 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/esp_common/include/esp_assert.h:24:38: note: in definition of macro 'TRY_STATIC_ASSERT'
   24 |             if (__builtin_constant_p(CONDITION) && !(CONDITION)) {          \
      |                                      ^~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:113:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  113 |             ASSERT_IF_DPORT_REG((addr), WRITE_PERI_REG);                                                               \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:807:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  807 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:807:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  807 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:38: note: in expansion of macro 'TRY_STATIC_ASSERT'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                      ^~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:34:57: note: in expansion of macro 'IS_DPORT_REG'
   34 | #define ASSERT_IF_DPORT_REG(_r, OP)  TRY_STATIC_ASSERT(!IS_DPORT_REG(_r), (Cannot use OP for DPORT registers use DPORT_##OP));
      |                                                         ^~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:113:13: note: in expansion of macro 'ASSERT_IF_DPORT_REG'
  113 |             ASSERT_IF_DPORT_REG((addr), WRITE_PERI_REG);                                                               \
      |             ^~~~~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:807:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  807 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:807:48: error: 'GPIO_PIN_MUX_REG' was not declared in this scope; did you mean 'GPIO_PIN19_REG'?
  807 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                                                ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:25:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
   25 | #define ETS_UNCACHED_ADDR(addr) (addr)
      |                                  ^~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:13: note: in expansion of macro 'WRITE_PERI_REG'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |             ^~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:807:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  807 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                              ^~~~~~~~~~~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:126:54: error: invalid operands of types 'void' and 'long unsigned int' to binary 'operator|'
  126 |             WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)));                                                        \
      |                                                      ^~~~~~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/soc.h:114:76: note: in definition of macro 'WRITE_PERI_REG'
  114 |             (*((volatile uint32_t *)ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val);                                       \
      |                                                                            ^~~
/Users/kuku/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.1-3662303f312/esp32/include/soc/esp32/include/soc/io_mux_reg.h:79:50: note: in expansion of macro 'SET_PERI_REG_MASK'
   79 | #define PIN_INPUT_ENABLE(PIN_NAME)               SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
      |                                                  ^~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:807:30: note: in expansion of macro 'PIN_INPUT_ENABLE'
  807 |             if (gpio1 <= 39) PIN_INPUT_ENABLE (GPIO_PIN_MUX_REG [gpio1]);
      |                              ^~~~~~~~~~~~~~~~
In file included from /Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:3960:
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/ext/string_conversions.h: In instantiation of '_String __gnu_cxx::__to_xstring(int (*)(_CharT*, std::size_t, const _CharT*, __va_list_tag), std::size_t, const _CharT*, ...) [with _String = fsString<300>; _CharT = char; std::size_t = unsigned int]':
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/bits/basic_string.h:4089:43:   required from here
/Users/kuku/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-12.2.0_20230208/xtensa-esp32-elf/include/c++/12.2.0/ext/string_conversions.h:115:14: error: no matching function for call to 'fsString<300>::fsString(char*&, char*)'
  115 |       return _String(__s, __s + __len);
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:129:13: note: candidate: 'fsString<N>::fsString(long unsigned int) [with unsigned int N = 300]'
  129 |             fsString (unsigned long number) {                    // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:129:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:118:13: note: candidate: 'fsString<N>::fsString(long int) [with unsigned int N = 300]'
  118 |             fsString (long number) {                             // convert long to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:118:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:107:13: note: candidate: 'fsString<N>::fsString(unsigned int) [with unsigned int N = 300]'
  107 |             fsString (unsigned int number) {                    // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:107:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:95:13: note: candidate: 'fsString<N>::fsString(int) [with unsigned int N = 300]'
   95 |             fsString (int number) {                             // convert int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:95:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:84:13: note: candidate: 'fsString<N>::fsString(uint16_t) [with unsigned int N = 300; uint16_t = short unsigned int]'
   84 |             fsString (uint16_t number) {                        // convert unsigned int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:84:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:73:13: note: candidate: 'fsString<N>::fsString(int16_t) [with unsigned int N = 300; int16_t = short int]'
   73 |             fsString (int16_t number) {                         // convert int to fsString
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:73:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:65:13: note: candidate: 'fsString<N>::fsString(const char&) [with unsigned int N = 300]'
   65 |             fsString (const char& other) {                      // for declarations with initialization, like fsString<15> c = 'c';
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:65:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:57:13: note: candidate: 'fsString<N>::fsString(const fsString<N>&) [with unsigned int N = 300]'
   57 |             fsString (const fsString& other) {                  // for declarations with initialization, like fsString<15> b = a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:57:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note: candidate: 'fsString<N>::fsString(const char*) [with unsigned int N = 300]'
   46 |             fsString (const char *other) {                      // for declarations with initialization, like fsString<15> b = "abc";
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:46:13: note:   candidate expects 1 argument, 2 provided
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note: candidate: 'fsString<N>::fsString() [with unsigned int N = 300]'
   44 |             fsString () {}                                      // for declarations like fsString<15> a;
      |             ^~~~~~~~
/Users/kuku/Esp32_oscilloscope/fsString.h:44:13: note:   candidate expects 0 arguments, 2 provided

exit status 1

Compilation error: expected nested-name-specifier

@chriskuku
Copy link
Author

NB: I have undef'd filesystem (FWIW):

    // COMMENT THIS DEFINITION OUT IF YOUR ESP32 DOES NOT HAVE A FLASH DISK
  //  #define FILE_SYSTEM    FILE_SYSTEM_LITTLEFS // FILE_SYSTEM_FAT  // the file system must correspond to Tools | Partition scheme setting: FILE_SYSTEM_FAT (for FAT partition scheme), FILE_SYSTEM_LITTLEFS (for SPIFFS partition scheme) or FILE_SYSTEM_SD_CARD (if SC card is attached)
                                                // FAT file system can be bitwise combined with FILE_SYSTEM_SD_CARD, like #define FILE_SYSTEM (FILE_SYSTEM_FAT | FILE_SYSTEM_SD_CARD)

@BojanJurca
Copy link
Owner

ESP32 Dev Module has a built-in flash disk, so the sketch can be compiled with file system enabled, perhaps you can try this option?

Although it shouldn't be a problem compiling it without the file system as well. I'll take a look at it in the evening.

@BojanJurca
Copy link
Owner

BojanJurca commented Apr 19, 2024 via email

@chriskuku
Copy link
Author

chriskuku commented Apr 19, 2024

ESP32 Dev Module has a built-in flash disk, so the sketch can be compiled with file system enabled, perhaps you can try this option?

Although it shouldn't be a problem compiling it without the file system as well. I'll take a look at it in the evening.

OK, but ESP32 Dev was only chosen by me since I didn't know what else I should choose. Actually I have a CYD2USB which has a socket for an SD card. Will get me a card anyway later today to become "fully featured" :)

I'm not sure which WiFi.h is taken but I find one in

$ ls
AP.cpp		WiFi.cpp	WiFiAP.cpp	WiFiClient.h	WiFiGeneric.h	WiFiMulti.h	WiFiSTA.h	WiFiScan.h	WiFiType.h
STA.cpp		WiFi.h		WiFiAP.h	WiFiGeneric.cpp	WiFiMulti.cpp	WiFiSTA.cpp	WiFiScan.cpp	WiFiServer.h	WiFiUdp.h
$ pwd
/Users/kuku/Library/Arduino15/packages/esp32/hardware/esp32/3.0.0-rc1/libraries/WiFi/src
$ 

@chriskuku
Copy link
Author

chriskuku commented Apr 19, 2024

Update: I removed ESP32 3.0.0-rc and installed ESP32 2.0.11 and compilation ran through.
Despite from this message :

In file included from /Users/kuku/Esp32_oscilloscope/Esp32_oscilloscope.ino:130:
/Users/kuku/Esp32_oscilloscope/oscilloscope.h:58:25: note: #pragma message: Oscilloscope will use I2S interface (for monitoring a single analog signal) and adc1_get_raw (for monitoring double analog signals).
         #pragma message "Oscilloscope will use I2S interface (for monitoring a single analog signal) and adc1_get_raw (for monitoring double analog signals)."
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sketch uses 847605 bytes (64%) of program storage space. Maximum is 1310720 bytes.
Global variables use 55424 bytes (16%) of dynamic memory, leaving 272256 bytes for local variables. Maximum is 327680 bytes.
esptool.py v4.5.1
Serial port /dev/cu.usbserial-14120
Connecting.....
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 08:b6:1f:b8:5f:b0
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00005fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x000e0fff...
Compressed 18992 bytes to 13112...
Writing at 0x00001000... (100 %)
Wrote 18992 bytes (13112 compressed) at 0x00001000 in 0.6 seconds (effective 257.5 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.1 seconds (effective 448.3 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 656.9 kbit/s)...
Hash of data verified.
Compressed 853360 bytes to 529675...
Writing at 0x00010000... (3 %)
Writing at 0x0001c9fe... (6 %)
Writing at 0x00029ef2... (9 %)
Writing at 0x000340b2... (12 %)
Writing at 0x0004191d... (15 %)
Writing at 0x00046c0a... (18 %)
Writing at 0x0004c0c8... (21 %)
Writing at 0x00051814... (24 %)
Writing at 0x000571ec... (27 %)
Writing at 0x0005c33f... (30 %)
Writing at 0x000615d7... (33 %)
Writing at 0x000668a5... (36 %)
Writing at 0x0006bc92... (39 %)
Writing at 0x00070f02... (42 %)
Writing at 0x00076309... (45 %)
Writing at 0x0007b536... (48 %)
Writing at 0x000810b4... (51 %)
Writing at 0x00086825... (54 %)
Writing at 0x0008bab4... (57 %)
Writing at 0x00091049... (60 %)
Writing at 0x0009629b... (63 %)
Writing at 0x0009b9ad... (66 %)
Writing at 0x000a10fa... (69 %)
Writing at 0x000a6b0a... (72 %)
Writing at 0x000ac840... (75 %)
Writing at 0x000b1e29... (78 %)
Writing at 0x000b9eef... (81 %)
Writing at 0x000c12b2... (84 %)
Writing at 0x000c89a8... (87 %)
Writing at 0x000cdd1d... (90 %)
Writing at 0x000d374c... (93 %)
Writing at 0x000d8dfe... (96 %)
Writing at 0x000de6f6... (100 %)
Wrote 853360 bytes (529675 compressed) at 0x00010000 in 13.5 seconds (effective 503.8 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

I was able to upload it to the device (CYD). The screen remains black which may be normal if it runs over the net.

So the above error (reason of my post) is due to some quirks in ESP32 3.0.0-rc

Got to the point where I can ftp upload the png files.

@BojanJurca
Copy link
Owner

I'm sorry, I can not replicate your error. The code compiles right away with or without a file system.

Perhaps you can try installing the Arduino IDE from scratch and download ESP_oscillocsope again?

@chriskuku
Copy link
Author

I'm sorry, I can not replicate your error. The code compiles right away with or without a file system.

Perhaps you can try installing the Arduino IDE from scratch and download ESP_oscillocsope again?

Thanks for doing the test. Did you try ESP32-3.0.0-rc?
That’s the configuration that triggers the error.

@BojanJurca
Copy link
Owner

BojanJurca commented Apr 19, 2024 via email

@Tozzi89
Copy link

Tozzi89 commented May 28, 2024

I get the same issue. Also have ESP32-3.0.0 (Final, not RC). Using ESP32 C3 Super Mini with chipset fn4p3m4490.
Installing ESP32-2.0.17 I get new error:

oscilloscope.h:860:23: note: suggested alternative: 'i2s_set_clk'
err = i2s_set_adc_mode (ADC_UNIT_1, adcchannel1);
^~~~~~~~~~~~~~~~
i2s_set_clk

exit status 1

Compilation error: 'I2S_MODE_ADC_BUILT_IN' was not declared in this scope

@BojanJurca
Copy link
Owner

Thank you for letting me know.

Unfortunately I'm away now and will try to reproduce the error as soon as I come back. 

@BojanJurca
Copy link
Owner

Compile-time errors are caused by migration from IDF 4.4 to 5.0. I'm currently working on this but can't really predict when it will be completed.

@ria8651
Copy link

ria8651 commented Jun 12, 2024

Downgrading to 2.0.17 worked for me.

Compilation error: 'I2S_MODE_ADC_BUILT_IN' was not declared in this scope

I had this issue too and just had to comment out #define USE_I2S_INTERFACE as my board doesn't have one. It'd probably be a good idea to use MACHINETYPE to disable USE_I2S_INTERFACE based on this.

@BojanJurca
Copy link
Owner

Thank you for your suggestion. I'll take a look at it to see what I can do.

@BojanJurca
Copy link
Owner

I have just uploaded updated files that work with IDF 5.x. I think this will resolve your problem.

@Tozzi89
Copy link

Tozzi89 commented Jun 16, 2024

Awesome, I will try it out in a few days!

@ria8651
Copy link

ria8651 commented Jun 18, 2024

Works perfectly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants