kompilacja GUI Generic pod Arduino IDE

User avatar
QLQ
Posts: 2279
Joined: Sun Sep 03, 2017 9:13 am
Location: Koszalin

Post

marek.rz@poczta.fm wrote: Sat Oct 16, 2021 10:48 am Dokładnie te biblioteki mam teraz zainstalowane. A czy jest możliwe, że ten przykładowy kod, utworzony w styczniu 2020 r., był na innych starszych bibliotekach i teraz prawie po dwóch latach one się zmieniły i dlatego kod się nie kompiluje?
Jak chcesz skompilować dokładnie ten kod pod Airly kolegi Duch_ to napisz na priv to podeślę Tobie te stare biblioteki.
jak coś nie działa to włącz zasilanie.....
marek.rz@poczta.fm
Posts: 16
Joined: Thu Sep 09, 2021 5:07 am

Post

Dzięki
marek.rz@poczta.fm
Posts: 16
Joined: Thu Sep 09, 2021 5:07 am

Post

Witam, właśnie podstawiłem przesłane przez kolegę QLQ starsze biblioteki SuplaDevice i niestety kod się nie skompilował.
"Błąd kompilacji dla płytki Generic ESP8266 Module."
Ten sam błąd wychodził mi wcześniej przy próbie kompilacji innych kodów.
Nie mam pojęcia co robię nie tak....
User avatar
klew
Posts: 8357
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Pokaż jaki masz błąd
Widzimy się na Supla Offline Party vol. 2 :!:
marek.rz@poczta.fm
Posts: 16
Joined: Thu Sep 09, 2021 5:07 am

Post

Cały skopiowany opis błędów nie mieści się w dopuszczalnej ilości znaków w poście. Wkleję więc fragment, nie wiem tylko czy dobry :o

Code: Select all

Arduino:1.8.16 (Windows 10), Płytka:"Generic ESP8266 Module, 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers
 (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, dtr (aka nodemcu), 26 MHz, 40MHz, 
 DOUT (compatible), 1MB (FS:64KB OTA:~470KB), 2, nonos-sdk 2.2.1+100 (190703), v2 Lower Memory, 
 Disabled, None, Only Sketch, 115200"

Code: Select all

C:\Users\marek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp: In member function 'void SuplaDeviceClass::iterate()':

C:\Users\marek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp:1327:60: error: call of overloaded 'abs(long unsigned int)' is ambiguous

 1327 |   unsigned long time_diff = abs(_millis - last_iterate_time);

      |                                                            ^

In file included from c:\users\marek\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0\cstdlib:75,

                 from c:\users\marek\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0\stdlib.h:36,

                 from C:\Users\marek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:27,

                 from C:\Users\marek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp:19:

c:\users\marek\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\stdlib.h:74:5: note: candidate: 'int abs(int)'

   74 | int abs (int);

      |     ^~~

In file included from c:\users\marek\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0\cstdlib:77,

                 from c:\users\marek\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0\stdlib.h:36,

                 from C:\Users\marek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:27,

                 from C:\Users\marek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp:19:

c:\users\marek\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0\bits\std_abs.h:79:3: note: candidate: 'constexpr long double std::abs(long double)'

   79 |   abs(long double __x)

      |   ^~~

c:\users\marek\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0\bits\std_abs.h:75:3: note: candidate: 'constexpr float std::abs(float)'

   75 |   abs(float __x)

      |   ^~~

c:\users\marek\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0\bits\std_abs.h:71:3: note: candidate: 'constexpr double std::abs(double)'

   71 |   abs(double __x)

      |   ^~~

c:\users\marek\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0\bits\std_abs.h:61:3: note: candidate: 'long long int std::abs(long long int)'

   61 |   abs(long long __x) { return __builtin_llabs (__x); }

      |   ^~~

c:\users\marek\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed\xtensa-lx106-elf\include\c++\10.3.0\bits\std_abs.h:56:3: note: candidate: 'long int std::abs(long int)'

   56 |   abs(long __i) { return __builtin_labs(__i); }

      |   ^~~

"C:\\Users\\marek\\AppData\\Local\\Arduino15\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\3.0.4-gcc10.3-1757bed/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE "-IC:\\Users\\marek\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/include" "-IC:\\Users\\marek\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/lwip2/include" "-IC:\\Users\\marek\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/libc/xtensa-lx106-elf/include" "-IC:\\Users\\marek\\AppData\\Local\\Temp\\arduino_build_702894/core" -c -w -Werror=return-type -Os -g -free -fipa-pta -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -MMD -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10816 -DARDUINO_ESP8266_GENERIC -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_GENERIC\"" -DLED_BUILTIN=2 -DFLASHMODE_DOUT -DESP8266 "-IC:\\Users\\marek\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\cores\\esp8266" "-IC:\\Users\\marek\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\variants\\generic" "-IC:\\Users\\marek\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\libraries\\SPI" "-IC:\\Users\\marek\\Documents\\Arduino\\libraries\\SuplaDevice" "-IC:\\Users\\marek\\Documents\\Arduino\\libraries\\ArduinoJson-6.14.0\\src" "-IC:\\Users\\marek\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\libraries\\EEPROM" "-IC:\\Users\\marek\\Documents\\Arduino\\libraries\\Adafruit_NeoPixel" "-IC:\\Users\\marek\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\libraries\\ESP8266WiFi\\src" "C:\\Users\\marek\\Documents\\Arduino\\libraries\\SuplaDevice\\network.cpp" -o "C:\\Users\\marek\\AppData\\Local\\Temp\\arduino_build_702894\\libraries\\SuplaDevice\\network.cpp.o"

Użycie biblioteki SPI w wersji 1.0 z folderu: C:\Users\marek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\SPI 

Użycie biblioteki SuplaDevice w wersji 2.3 z folderu: C:\Users\marek\Documents\Arduino\libraries\SuplaDevice 

Użycie biblioteki ArduinoJson-6.14.0 w wersji 6.14.0 z folderu: C:\Users\marek\Documents\Arduino\libraries\ArduinoJson-6.14.0 

Użycie biblioteki EEPROM w wersji 1.0 z folderu: C:\Users\marek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\EEPROM 

Użycie biblioteki Adafruit_NeoPixel w wersji 1.3.4 z folderu: C:\Users\marek\Documents\Arduino\libraries\Adafruit_NeoPixel 

Użycie biblioteki ESP8266WiFi w wersji 1.0 z folderu: C:\Users\marek\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi 

exit status 1

Błąd kompilacji dla płytki Generic ESP8266 Module.
krycha88
Posts: 5208
Joined: Fri Nov 16, 2018 7:25 am

Post

marek.rz@poczta.fm wrote: Sun Oct 17, 2021 8:31 am

Code: Select all

C:\Users\marek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp: In member function 'void SuplaDeviceClass::iterate()':
C:\Users\marek\Documents\Arduino\libraries\SuplaDevice\SuplaDevice.cpp:1327:60: error: call of overloaded 'abs(long unsigned int)' is ambiguous
Masz dwa wyjścia:
1. kompilowanie kodu w wersjach poniżej 3.0.0
2. lub usunięcie abs w SuplaDevice.cpp czyli:
zamieniasz:

Code: Select all

unsigned long time_diff = abs(_millis - last_iterate_time);
na

Code: Select all

unsigned long time_diff = _millis - last_iterate_time;
https://gui-generic-builder.supla.io/
marek.rz@poczta.fm
Posts: 16
Joined: Thu Sep 09, 2021 5:07 am

Post

Po stokroć dzięki koledze Krycha88!!!!. Człek siedzi godzinami i kombinuje a tu wystarczy trzy literki usunąć ;) . A tak przy okazji czy przez tą modyfikację ominie mnie jakaś funkcjonalność skompilowanego programu?
User avatar
lesny8
Posts: 2814
Joined: Mon Dec 11, 2017 9:43 pm

Post

Jak usunąłeś abs() to przy założeniu, że _millis będzie mniejsze od last_iterate_time, to dostaniesz wynik ujemny. Z abs() zawsze jest dodatni, nie ważne co od czego odejmujesz. Czy mniejsze od większego, czy większe od mniejszego :)
Czekam na kolejne Supla Offline Party 👍
User avatar
klew
Posts: 8357
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

lesny8 wrote: Sun Oct 17, 2021 9:51 pm Jak usunąłeś abs() to przy założeniu, że _millis będzie mniejsze od last_iterate_time, to dostaniesz wynik ujemny. Z abs() zawsze jest dodatni, nie ważne co od czego odejmujesz. Czy mniejsze od większego, czy większe od mniejszego :)
Jeśli oba odejmowane typy są "unsigned', to wynik odejmowania będzie zawsze dodani. Po zejściu poniżej 0, liczba się "przekręca".
Np.
unsigned char a = 0;
unsigned char b = 1;

unsigned char delta = a - b; // delta == 255
Widzimy się na Supla Offline Party vol. 2 :!:
User avatar
lesny8
Posts: 2814
Joined: Mon Dec 11, 2017 9:43 pm

Post

🤦‍ Unsigned
Czekam na kolejne Supla Offline Party 👍

Return to “GUI Generic”