Pages: [1]   Go Down
Author Topic: Mandare un pacchetto UDP  (Read 502 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Sr. Member
****
Karma: 0
Posts: 362
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho bisogno di mandare pacchetti UDP verso il PC.
Ho preso l' esempio UDPSendReceiveString e l' ho ripulito...
Non funziona, non invia nulla.

Se pero' rimetto la linea "Udp.parsePacket();" ed invio qualsiasi cosa dal PC all'Arduino, questo si mette a trasmettere !
Perche' ?

Arduino UNO R3 + EthernetShield R3 (Wiznet5100)

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


byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xE0};
IPAddress ip(192, 168, 90, 170);
IPAddress remote(192, 168, 90, 140);
int counter = 0;

EthernetUDP Udp;

void setup(){
  Ethernet.begin(mac,ip);
  Udp.begin(9000);
}


void loop() {
    Udp.parsePacket();
    Udp.beginPacket(Udp.remoteIP(), 9000);
    Udp.write(counter);
    Udp.endPacket();
    delay(1000);
    counter ++;
}


« Last Edit: April 07, 2013, 12:17:36 pm by acik » Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

spiega meglio il fatto dell'istruzione "Udp.parsePacket();", che succede se non lo metti e se lo metti
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
Sr. Member
****
Karma: 0
Posts: 362
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

spiega meglio il fatto dell'istruzione "Udp.parsePacket();", che succede se non lo metti e se lo metti

Dal Playground ufficiale leggo che Udp.parsePacket(); va a leggere il pacchetto ricevuto e ne restituisce la lunghezza (nel caso sia stato ricevuto un pacchetto)
E' scritto che bisogna usarlo (ovviamente) prima di ogni lettura (ricezione) di dati.

Da nessuna parte pero' c'e' scritto che bisogna usarlo prima di inviare dati.



Il fatto e' che se non ricevo dei dati, non posso inviarli. Sembrerebbe che la libreria sia fatta per poter RISPONDERE e non INVIARE. Ovvero si puo' solo inviare dei dati a chi te ne ha inviati in precedenza.
« Last Edit: April 08, 2013, 04:01:56 pm by acik » Logged

Pages: [1]   Go Up
Jump to: