ESP 8266

Odpovědět
daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

ESP 8266

Příspěvek od daton »

Zdravím
Měl bych dotaz ohledně 8266. Mám s ním naprogramovaný server, který jsem naposledy přeprogramovával zhruba před rokem. Ted přišla doba na opravu kodu ale program který mi vždy šel zkompilovat najednou nejde. Dokonce ani vývojové verze co mi šli dříve tak nechodí a píše mi to různé chyby ale nejsou to chyby v kodu ale v kompilaci. Setkal jste se s tím už někdo? Jak jste to řešily???
U mě to píše tyto chyby

Kód: Vybrat vše

C:\Users\Jarmil\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:38:5: error: 'BearSSL::WiFiClientSecureCtx::~WiFiClientSecureCtx()' marked 'override', but does not override
   38 |     ~WiFiClientSecureCtx() override;
      |     ^
C:\Users\Jarmil\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:43:9: error: 'int BearSSL::WiFiClientSecureCtx::connect(const String&, uint16_t)' marked 'override', but does not override
   43 |     int connect(const String& host, uint16_t port) override;
      |         ^~~~~~~
C:\Users\Jarmil\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:48:12: error: 'size_t BearSSL::WiFiClientSecureCtx::write_P(const char*, size_t)' marked 'override', but does not override
   48 |     size_t write_P(PGM_P buf, size_t size) override;
      |            ^~~~~~~
C:\Users\Jarmil\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:55:12: error: 'size_t BearSSL::WiFiClientSecureCtx::peekBytes(uint8_t*, size_t)' marked 'override', but does not override
   55 |     size_t peekBytes(uint8_t *buffer, size_t length) override;
      |            ^~~~~~~~~
C:\Users\Jarmil\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:238:5: error: 'BearSSL::WiFiClientSecure::~WiFiClientSecure()' marked 'override', but does not override
  238 |     ~WiFiClientSecure() override { _ctx = nullptr; }
      |     ^
C:\Users\Jarmil\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:242:13: error: 'uint8_t BearSSL::WiFiClientSecure::status()' marked 'override', but does not override
  242 |     uint8_t status() override { return _ctx->status(); }
      |             ^~~~~~
C:\Users\Jarmil\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:244:9: error: 'int BearSSL::WiFiClientSecure::connect(const String&, uint16_t)' marked 'override', but does not override
  244 |     int connect(const String& host, uint16_t port) override { return _ctx->connect(host, port); }
      |         ^~~~~~~
C:\Users\Jarmil\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:249:12: error: 'size_t BearSSL::WiFiClientSecure::write_P(const char*, size_t)' marked 'override', but does not override
  249 |     size_t write_P(PGM_P buf, size_t size) override { return _ctx->write_P(buf, size); }
      |            ^~~~~~~
C:\Users\Jarmil\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:258:12: error: 'size_t BearSSL::WiFiClientSecure::peekBytes(uint8_t*, size_t)' marked 'override', but does not override
  258 |     size_t peekBytes(uint8_t *buffer, size_t length) override { return _ctx->peekBytes(buffer, length); }
      |            ^~~~~~~~~
C:\Users\Jarmil\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h: In constructor 'BearSSL::WiFiClientSecure::WiFiClientSecure()':
C:\Users\Jarmil\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:236:58: error: '_owned' was not declared in this scope
  236 |     WiFiClientSecure():_ctx(new WiFiClientSecureCtx()) { _owned = _ctx.get(); }
      |                                                          ^~~~~~
C:\Users\Jarmil\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h: In copy constructor 'BearSSL::WiFiClientSecure::WiFiClientSecure(const BearSSL::WiFiClientSecure&)':
C:\Users\Jarmil\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h:237:93: error: '_owned' was not declared in this scope
  237 |     WiFiClientSecure(const WiFiClientSecure &rhs): WiFiClient(), _ctx(rhs._ctx) { if (_ctx) _owned = _ctx.get(); }
Uživatelský avatar
gilhad
Příspěvky: 262
Registrován: 29 kvě 2015, 00:36
Kontaktovat uživatele:

Re: ESP 8266

Příspěvek od gilhad »

No nevím, ale kompilátor to hlásí jako chyby v kódu, konkrétně ve knihovně
C:\Users\Jarmil\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src/WiFiClientSecureBearSSL.h

a to dvou druhů,
  • "marked 'override', but does not override" čili, že ty funkce jsou označeny jako přepisující, ale nepřepisují
    a to na řádcích (řádek:pozice)
    38:5:
    43:9:
    48:12:
    55:12:
    238:5:
    242:13:
    244:9:
    249:12:
    258:12:
  • "'_owned' was not declared in this scope" čili, že owned není v daném místě deklarována, ale je použitá
    236:58:
    237:93:
Takže bych spíš řekl, že jsi nejspíš změnil tu knihovnu (možná nějakým updatem), nebo je to zavlečené z jiné knihovny, kterou jsi změnil, smazal, nebo přidal.

Taky teda přichází v úvahu změna parametrů překladače (třeba volba jiné desky, nebo nějaké jiné nastavení), nebo změna překladače, který teď hlásí jako chyby i věci, které dřív jako chyby nehlásil.

Ale pořád to vede spíš na tu chybu v kódu (nejspíš té knihovny), nikoli na chybu překladače.
daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

Re: ESP 8266

Příspěvek od daton »

Ahoj
díky za reakci, je to zajímavé protože s tím kodem ani knihovnami nikdy nebyy problémy. Měl jsem nainstalované IDE 1.8.5 a 1.8.7 v portable verzi a vše fungovalo. Pak jsem ale podlehl volání po aktualizaci a nechal to aktualizovat na verzi 1.8.9 která nebyla portable no a nastal problém. Ted jsem se vrátil k verzi 1.8.5 a už to jde alespoň zkompilovat bez chyb. Co přestalo chodit je získávání času z internetu (ani s tímto kodem jsem nic nedělal a před tím to chodilo). No zkusím ještě sehnat tu verzi 1.8.7 ve které jsem to programoval.
Přijde mi že to ide je ted nějak horší.
daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

Re: ESP 8266

Příspěvek od daton »

Tak už se mi to povedlo naprogramovat. Musel jsem použít stejnou portable verzi 1.8.7 jakou jsem měl dříve a natahat si tam knihovny některé šli nové některé o jednu pozici starší. Jediné co nechodilo byl čas z internetu. Ale i to se mi povedlo rozchodit, zde byl problém v proměnné která byla dříve definovaná ve stringu a nyní to chtělo jednoznačně int. Tu 1.8.9 smažu. Máte někdo vyzkoušnou novější verzi ide, která by byla s esp bezproblémová?
Uživatelský avatar
fulda
Příspěvky: 1359
Registrován: 04 led 2016, 17:18

Re: ESP 8266

Příspěvek od fulda »

Já mohu k tématu říci to, že mám celkem poslední verzi IDE a do ní čistě nainstalovanou ESP podporu a chodí to celkem normálně.
Tedy všechny nesrovnalosti se nakonec ukáží v mé části kódu.

Edit:
Arduino IDE: 1.8.16
esp8266: 3.0.2
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

Re: ESP 8266

Příspěvek od daton »

Dík vyzkouším :)
Odpovědět