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

Przesyłanie pliku przez udp-e

07 Lis 2019 18:31 219 7
  • Poziom 2  
    Cześć,

    Zacząłem zabawę z modułem. Napisałem program który poprawnie łączy się z moim domowym ruterem, skąd przez WLAN łączy się z serwerem.
    Mam jednak zagwozdkę... Jak przesłać plik na serwer?

    Na tą chwilę przesyłam komendę i otrzymuję odpowiedź:
    "425 No data connection"
    Co jest logiczne, bo mam otworzony tylko jeden port.

    Pozdrawiam.
  • PCBway
  • Poziom 35  
    Kronosss napisał:
    Zacząłem zabawę z modułem WiFi.

    Jakim konkretnie?

    Kronosss napisał:
    Napisałem program

    Chociaż fragment "problematycznego" kodu będzie mile widziany.
  • Poziom 2  
    Pracuję na najtańszym jaki znalazłem w sklepie.

    Problematycznego kodu jeszcze nie ma, bo przecież jak napisałem nie wiem jak to zrobić.
    Obecnie loguje się na serwer ftp komendami AT przez port 21:
    AT+CWMODE=1
    AT+CIPMUX=0
    AT+CIPMODE=1
    AT+CWJAP=...
  • PCBway
  • Pomocny post
    Poziom 35  
    Kronosss napisał:
    Ale w jaki sposób utworzyć jednocześnie drugie połączenie dla portu

    AT+CIPSEND: "This command can only be used in transparent transmission mode which requires single connection"
    Spróbuj z AT+CIPSENDEX. Poza tym, jeżeli ustawiłeś "AT+CIPMUX=0" to jest to "single connection mode"

    Dokumentacja: https://www.espressif.com/sites/default/files...entation/4a-esp8266_at_instruction_set_en.pdf
  • Poziom 2  
    OK, ale jak w "AT+CIPMUX=1" zamontować drugi port (data connection)?
    I jak się przełączać między tymi portami?
  • Poziom 2  
    Coś mi to nie działa. Wprowadzam komendy:
    AT+CWMODE=1
    AT+CIPMUX=1
    AT+CWJAP=logowanie do rutera
    AT+CIPSTART=...
    następnie próbuję zamontować drugi port i pojawia się komunikat:
    ERROR
    2,CLOSED

    Jak powinno się uruchamiać drugi port dla danych?
  • Poziom 35  
    Jeżeli chcesz wysyłać dane z ESP do serwera w trybie nieblokującym, powinieneś skorzystać z komendy AT+CIPSENDBUF. Określasz rozmiar tych danych, a następnie je wprowadzasz. Dane trafiają do bufora, z którego będą stopniowo wysyłane - na bieżąco możesz kontrolować stan wysłania tych danych komendą AT+CIPBUFSTATUS. W tym czasie możesz również wykonywać inne komendy AT, w tym uruchomić wysyłanie innych danych.

    W odróżnieniu od AT+CIPSENDBUF, komenda AT+CIPSENDEX jest funkcją blokująca. Nie będziesz mógł wykonać innych komend, dopóki nie zakończy się wysyłanie.

    W dla wielu połączeń TCP (AT+CIPMUX=1) należy użyć innej składni komendy AT+CIPSTART:
    Kod: bash
    Zaloguj się, aby zobaczyć kod

    gdzie link ID jest identyfikatorem danego połączenia i może następnie zostać użyty w komendach AT+CIPSEND, AT+CIPSENDEX lub AT+CIPSENDBUF

    Wszystko powyższe jest szczegółowo opisane w dokumentacji, do której link podałem w poście #4. Dodatkowo załączam dokument "ESP8266 AT Command Examples", gdzie jest wyjaśnione, jak tworzyć połączenia Single i Multiple dla TCP oraz UDP.