Go Down

Topic: Ricevere bytes via UDP (Read 432 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy