Go Down

Topic: Ricevere bytes via UDP (Read 404 times) previous topic - next topic

_Matt_

Sep 22, 2012, 03:41 pm Last Edit: Sep 22, 2012, 03:43 pm by _Matt_ Reason: 1
Ciao a tutti, ho scritto un piccolo codice (sull'Arduino Ethernet) che assomiglia molto a quello presente nel tutorial. Posto lo sketch di seguito:
Code: [Select]
#include <SPI.h>
#include <Ethernet.h>
#include <EthernetUdp.h>

#define localPort 7400                            
#define PACKET_SIZE 384

byte mac[] = {0x90, 0xA2, 0xDA, 0x0D, 0xE5};      
IPAddress ip(192, 168, 1, 177);                    

EthernetUDP Udp;                                  

char packetBuffer[PACKET_SIZE];                    

void setup()                                      
{
 Serial.begin(9600);
 Ethernet.begin(mac, ip);
 Udp.begin(localPort);
}

void loop()
{
 int packetSize = Udp.parsePacket();              
 if (packetSize)                                  
 {
   Serial.print("The incoming packet is ");        
   Serial.print(packetSize);
   Serial.println(" bytes long");
   
   Serial.println("It contains the following characters:");
   Udp.read(packetBuffer, PACKET_SIZE);
   
   Serial.println(packetBuffer);
 }
}


Per la comunicazione uso MAX/MSP. Non ho alcun problema a parte il fatto che se al posto di inviare una stringa di caratteri cerco di inviare un numero (intero) ottengo il seguente messaggio nella finestra "serial": It contains the following characters: int

Devo modificare il programma in MAX oppure l'Arduino ha un limite e devo usare altre funzioni/strategemmi per poter ricevere correttamente i dati "non-string"?
*PS: piĆ¹ che altro sono interessato alla ricezione di bytes

Grazie per gli aiuti!

_Matt_

UP era molto semplice, basta dichiarare all'inizio l'array packetBuffer di tipo BYTE invece che CHAR

Go Up