Pages: [1]   Go Down
Author Topic: Mandare un pacchetto UDP  (Read 666 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Sr. Member
****
Karma: 0
Posts: 361
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
Online Online
Shannon Member
****
Karma: 136
Posts: 10525
:(){:|:&};:
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

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
Sr. Member
****
Karma: 0
Posts: 361
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: