Strona 2 z 2

Re: kompilacja GUI Generic pod Arduino IDE

: sob paź 16, 2021 11:13 am
autor: QLQ
marek.rz@poczta.fm pisze: sob paź 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.

Re: kompilacja GUI Generic pod Arduino IDE

: sob paź 16, 2021 6:37 pm
autor: marek.rz@poczta.fm
Dzięki

Re: kompilacja GUI Generic pod Arduino IDE

: ndz paź 17, 2021 6:59 am
autor: marek.rz@poczta.fm
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....

Re: kompilacja GUI Generic pod Arduino IDE

: ndz paź 17, 2021 7:36 am
autor: klew
Pokaż jaki masz błąd

Re: kompilacja GUI Generic pod Arduino IDE

: ndz paź 17, 2021 8:31 am
autor: marek.rz@poczta.fm
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

Kod: Zaznacz cały

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"

Kod: Zaznacz cały

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.

Re: kompilacja GUI Generic pod Arduino IDE

: ndz paź 17, 2021 8:52 am
autor: krycha88
marek.rz@poczta.fm pisze: ndz paź 17, 2021 8:31 am

Kod: Zaznacz cały

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:

Kod: Zaznacz cały

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

Kod: Zaznacz cały

unsigned long time_diff = _millis - last_iterate_time;

Re: kompilacja GUI Generic pod Arduino IDE

: ndz paź 17, 2021 10:53 am
autor: marek.rz@poczta.fm
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?

Re: kompilacja GUI Generic pod Arduino IDE

: ndz paź 17, 2021 9:51 pm
autor: lesny8
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 :)

Re: kompilacja GUI Generic pod Arduino IDE

: pn paź 18, 2021 7:36 am
autor: klew
lesny8 pisze: ndz paź 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

Re: kompilacja GUI Generic pod Arduino IDE

: pn paź 18, 2021 9:16 am
autor: lesny8
🤦‍ Unsigned