Skocz do zawartości
Wrona

Biblioteka FTP_Client.h dla ESP8266 - invalid conversion

Pomocna odpowiedź

9 minut temu, Wrona napisał:

strcpy(dane, wyniki.c_str()); 

 

A po jakiego schwantza tam tablica dane?

Przede wszystkim kompilator pruje się o strcpy (nic dziwnego, bo masz niezgodne typy), a nie o jakieś eftepy.

Dlaczego nie możesz po prostu napisać coś w stylu:

ftp.write(wyniki.c_str());

i wywalić te całe "dane" wraz z przyległościami w niebyt?

 

 

 

Ech... ja juz nie wiem co Ty chcesz od życia.

To co zamieściłeś bardzo zacnie się u mnie kompiluje.

Wersja bez zbędnej tablicy też się bardzo ładnie kompiluje:

void WyFTP()
{
	ftp.openConnection();
	ftp.changeWorkDir("/Pomiary/");
	String wyniki = "Zestaw wynikow:\n";                                   
	ftp.initFile(FTP_FileType_ASCII);
	ftp.appendFile("WynikiPomiarow.txt");
	ftp.writeData((const uint8_t *)wyniki.c_str(), wyniki.length());
	ftp.closeFile();
	ftp.closeConnection();
}

 

Udostępnij ten post


Link to post
Share on other sites

@ethanak 

23 minuty temu, ethanak napisał:

Ech... ja juz nie wiem co Ty chcesz od życia.

Tak, naprawdę to sułtańskiego haremu (w obiegowym tego słowa znaczeniu).

Natomiast wracając do potyczek z kodem. 

1. Kod od jakiego zacząłem jest taki a nie inny bo taki jest w przykładzie dołączonym do tej konkretnej biblioteki. Skopiowałem go by przetestować ale nie działa więc próbujemy dojść do tego dlaczego tak jest. W tym mi pomagasz i jestem wdzięczny.

2. To że się u Ciebie kompiluje to żaden argument bo zastanów się chwilkę. Po co miałbym Cię oszukiwać pisząc o błędach gdyby mi się kompilowało? Skąd wziąłbym opisy błędów kompilacji? Skoro ich nie rozumiem to raczej ich nie wymyśliłem. Po co miałbym robić to wszystko? Droczę się z Tobą? Podrywam Cię? To ważna informacja że u Ciebie się skompilowało ale to żaden argument za tym że u mnie też tak jest. Najwidoczniej gdzieś jest inny problem.

 

 

Udostępnij ten post


Link to post
Share on other sites

Aj waj, dopiero teraz zauważyłem...

U  Ciebie mamy:

C:\Users\Wrona\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0

Podczas gdy u mnie:

$ ls ~/.arduino15/packages/esp8266/hardware/esp8266/
2.7.1

Widzisz delikatną różnicę? Nie chodzi mi o slashe w drugą stronę...

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

@ethanak Jak chcesz to potrafisz być miły 🙂 Z tego co kojarzę czeka mnie aktualizacja oprogramowania ESP8266. Nie robiłem tego jeszcze ale chyba nadszedł ten dzień. O to chodzi?

Udostępnij ten post


Link to post
Share on other sites
1 minutę temu, Wrona napisał:

Jak chcesz to potrafisz być miły

Zawsze jestem miły tylko czasem ludzie tego nie doceniają 🙂

1 minutę temu, Wrona napisał:

O to chodzi?

Dokładnie. Zresztą wersja 2.3.0 była chyba najbardziej zabugowana i nic dziwnego, że coś może nie działać...

Zrób aktualizację i daj znać co wyszło.

 

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

@ethanak Z płytka sobie chyba poradziłem po wszystko poszło gładko. Jednak gdzie szukać przyczyny że nie mogę zainstalować paczki ESP8266 powyżej 2.3.0 czy ten adres jest nieaktualny http://arduino.esp8266.com/stable/package_esp8266com_index.json ?  Coś zrobić ręcznie? Na razie reinstaluje całe arduino IDE bo podjąłem tyle różnorodnych prób że sam nie wiem co pozamieniałem na co i gdzie.

EDIT: Reinstalacja całości pomogła i mam już najnowszą wersje paczki dla ESp8266

Edytowano przez Wrona

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Dzisiejszy dzień mogę uznać za zły. Co to znowu jest? Czym teraz musze się zająć by ugasić nowy pożar?

c:/users/wrona/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: libraries\FTP_Client-master\example.cpp.o:C:\Program Files (x86)\Arduino\libraries\FTP_Client-master/example.cpp:11: multiple definition of `ftp'; sketch\TEST.ino.cpp.o:C:\Users\wrona\Desktop\TEST/TEST.ino:24: first defined here
c:/users/wrona/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: libraries\FTP_Client-master\example.cpp.o:C:\Program Files (x86)\Arduino\libraries\FTP_Client-master/example.cpp:6: multiple definition of `ftp_server'; sketch\TEST.ino.cpp.o:C:\Users\wrona\Desktop\TEST/TEST.ino:15: first defined here
c:/users/wrona/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: libraries\FTP_Client-master\example.cpp.o:C:\Program Files (x86)\Arduino\libraries\FTP_Client-master/example.cpp:7: multiple definition of `ftp_user'; sketch\TEST.ino.cpp.o:C:\Users\wrona\Desktop\TEST/TEST.ino:16: first defined here
c:/users/wrona/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: libraries\FTP_Client-master\example.cpp.o:C:\Program Files (x86)\Arduino\libraries\FTP_Client-master/example.cpp:8: multiple definition of `ftp_pass'; sketch\TEST.ino.cpp.o:C:\Users\wrona\Desktop\TEST/TEST.ino:17: first defined here
c:/users/wrona/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: libraries\FTP_Client-master\example.cpp.o: in function `setup':
C:\Program Files (x86)\Arduino\libraries\FTP_Client-master/example.cpp:3247: multiple definition of `setup'; sketch\TEST.ino.cpp.o:C:\Users\wrona\Desktop\TEST/TEST.ino:30: first defined here
c:/users/wrona/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: libraries\FTP_Client-master\example.cpp.o: in function `loop':
C:\Program Files (x86)\Arduino\libraries\FTP_Client-master/example.cpp:3306: multiple definition of `loop'; sketch\TEST.ino.cpp.o:C:\Users\wrona\Desktop\TEST/TEST.ino:38: first defined here
collect2.exe: error: ld returned 1 exit status
exit status 1
Błąd kompilacji dla płytki NodeMCU 1.0 (ESP-12E Module).

Rozumiem że gdzieś jest podwójna definicja ustawień ftp oraz pętli loop i setup. Kod dla Arduino taki jak poprzednio, bibliotek ta sama. Gdzie "grzebać"?

EDIT: Wywaliłem example z biblioteki FTP_Client i błąd zniknął

Edytowano przez Wrona

Udostępnij ten post


Link to post
Share on other sites

Wywal plik FTP_Client-master/example.cpp - nie wiem co autorowi odbiło żeby go tam wsadzić...

 

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

@ethanak Oczywiście nie obyło się jeszcze bez kilku drobnych problemów i kilku na tyle poważnych że przeszło mi przez myśl by "dać se spokój" ale wytrwałem i oficjalnie przyznaje że biblioteka FTP_Client dla ESP8266 zadziałała i na serwer FTP wysyła dane pomiarowe. Przypuszczam że w tej bibliotece nie zadziała ftp.appendFile() bez wcześniejszego ftp.newFile() w setapie (co jest zbędne np. w bibliotece dla FTP_Client dla ESP32). Jednak nie sprawdzałem tego poprzez analizę kodu a jedynie empirycznie metodą prób i błędów. 

Dzięki @ethanak nauczyłem się dziś stosować mójstring.c_str() co jest wartością dodaną i upraszcza mój karkołomny kod. Za to i za resztę raz jeszcze Ci dziękuje. 

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...