Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[STM32F103][C][OpenOCD] - enc28j60+ftp - brak listy plików w trybie ascii

spanko 16 Lip 2015 09:44 678 0
  • #1
    spanko
    Poziom 11  
    Witam
    Jestem w trakcie walki z FTP , w zasadzie myślałem że już walkę wygrałem dopóki nie spróbowałem połączyć się z serwerem przez przeglądarkę. Klient co prawda połączył się z serwerem, transmisja podejrzana przez Wireshark nie wykazała żadnych błędów, ale lista plików nie została wyświetlona. Wcześniejsze próby przeprowadzałem na total commander i tam wszystko (no prawie ale o tym dalej) działało. I teraz moje pytanie co może być przyczyną takiego działania ? Z tego co wyczytałem to ważny jest koniec linii, w trybie ascii powinien być to znak CR LF i tak też wysyłam dane. Jako że przy zapytaniu przez klienta o rodzaj serwera wysyłam że jest to serwer typu unixowego to próbowałem też wariantu końca linii tak jak jest to pisane w systemie linux lecz bez skutku.

    Mam też inny problem związany z przesyłaniem pliku a nie chcę zakładać drugiego wątku żeby nie zaśmiecać forum. Otóż żeby zwiększyć prędkość transmisji wysyłam dwa pakiety danych jeden po drugim po czym oczekuję na potwierdzenie od klienta, i czasami jest tak że po przesłaniu kilku MB Wireshark pokazuje mi że drugi pakiet ma nie zmieniony nr SEQ po czym po przesłaniu kolejnych paru kB lub MB występuje błąd w obu pakietach dotyczący numeru SEQ i transmisja się zawiesza. Przypadek ten nie występuje zawsze czasami ściągnę kilka plików kilkunastu bajtowych bez żadnych problemów, a czasami jest tak że po włączeniu urządzenia lub po ponownym zalogowaniu na serwer nie mogę pobrać nawet jednego pliku.

    Dodam jeszcze że do obsługi ENC28j60 i Ethernetu używam lekko przeze mnie zmodyfikowanych bibliotek ze strony tuxgraphics.org

    Poniżej kawałek kodu odpowiedzialnego za wysyłanie pliku. Przepraszam że taki bałagan i tyle niepotrzebnych zmiennych i funkcji ale to kod testowy w i czasami piszę kod żeby wykluczyć jakieś rzeczy.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Proszę o jakieś wskazówki.
    Pozdrawiam
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.