UDP csomag küldés Arduino - freetronics EtherMega

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Válasz küldése
villamosvilimos
Újonc
Újonc
Hozzászólások: 4
Csatlakozott: 2013. október 30. szerda, 8:03

UDP csomag küldés Arduino - freetronics EtherMega

Hozzászólás Szerző: villamosvilimos »

Sziasztok,

van egy freetronics EtherMega boardom, ami egy arduino 2560 klón. http://www.freetronics.com/products/eth ... nCvaBCHH3V

UDP csomagokat szeretnék küldeni.

Ha az Arduino hoz tartozó mintapéldát futtatom, UDPSendReceiveString_ino, akkor működik. Ebben a példában az arduinon fut egy udp szerver és a kliens program a pc fut. Kliens programból küldők egy sztringet amit a board sikeresen vesz és a serial ablakban kiír, majd a kliensnek visszaküld egy udp csomagot, "acknowledged" .

Ha viszont az Arduino honlapjáról származó példát próbálom, nem megy.

http://arduino.cc/de/Reference/EthernetUDPWrite

Ebben az Arduinon szintén egy szerver fut, kliens program a pc-n. Itt csak simán udp csomagot kellene küldenie, de a kliens oldalon nem érkezik meg semmi.

Van valakinek valami ötlete mi lehet a probléma?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: UDP csomag küldés Arduino - freetronics EtherMega

Hozzászólás Szerző: Robert »

Melyik minta fut?
Melyik arduino? Melyik mintája?

A keretrendszer 001...0023 és 1.0.0...1.0.5 és a beta 1.5.0...1.5.4r2 közt lehet....
Melyik panelra állítva?
villamosvilimos
Újonc
Újonc
Hozzászólások: 4
Csatlakozott: 2013. október 30. szerda, 8:03

Re: UDP csomag küldés Arduino - freetronics EtherMega

Hozzászólás Szerző: villamosvilimos »

Annyit sikerült kiderítenem, hogy a sima küldés csak akkor működik, ha az arduino vett egy udp csomagot. Na ezt eltudja valaki magyarázni, hogy miért???

Kód: Egész kijelölése


#include <SPI.h>        
#include <Ethernet.h>
#include <EthernetUdp.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 177);

unsigned int localPort = 8888;      // local port to listen on

// An EthernetUDP instance to let us send and receive packets over UDP
EthernetUDP Udp;

void setup() {
  // start the Ethernet and UDP:
  Ethernet.begin(mac,ip);
  Udp.begin(localPort);
}

void loop() {
  Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    Udp.write("hello");
    Udp.endPacket();
}
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: UDP csomag küldés Arduino - freetronics EtherMega

Hozzászólás Szerző: Robert »

Hol akad el? A setup végén?
Mert ott hallgatózna az első csomagért.... (tipp)
villamosvilimos
Újonc
Újonc
Hozzászólások: 4
Csatlakozott: 2013. október 30. szerda, 8:03

Re: UDP csomag küldés Arduino - freetronics EtherMega

Hozzászólás Szerző: villamosvilimos »

Igen ott, ..
Végső célom:

Adott egy "központi arduino" és több "végrehajtó arduino". A központi bizonyos esemény hatására küld UDP adatokat a végrehajtóknak. A megfelelő végrehajtó kezd vele valamit majd vissza küld egy üzenetet (ack - protokollomban van rögzítve). A végrehajtó oldali vétel és küldés megy, mivel ugye itt a beérkező csomag után válaszolok.

A problémám a központi oldalon van, mert hogy nem tudok várakozás nélkül csomagot küldeni. Létezik valami nem blokkoló megoldás?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: UDP csomag küldés Arduino - freetronics EtherMega

Hozzászólás Szerző: Robert »

Mintakódból ne a UDPservert, hanem az UDPklienst valósítsd meg.... :)
Másik mintakód nincs?:)


UDPNTPclient-et nézd meg.... Pont azt tudja...
Válasz küldése