Arduino Ver 1.0 libraries udp ...

Hallo,
ich habe Probleme nach der Umstellung auf die Version 1.0 der IDE.
Ich verstehe die Releasenote nicht richtig.
Was muss ich ändern wenn ich Ehternet und UDP verwnden möchte.
Anbei ein Programm das mit der alten Verion ging.
Ich habe auch mal die udp.h in EthernetClient.h geändert, hatte aber weiterhin Fehler.
:drooling_face:

//Senden und epfangen von Daten per UDP

//Bibliothek LCD4Bit_mod.h einbinden
#include <LCD4Bit_mod.h>
//Neues Objekt vom Type LCD4Bit_mod erzeugen und Anzahl Zeilen übergeben
LCD4Bit_mod lcd = LCD4Bit_mod(2);

// Wird für Arduino version groesser 0018 gebraucht fuer Ethernet
#include <SPI.h> //Bibliothek SPI.h einbinden (Wird für Arduino version groesser 0018 gebraucht fuer Ethernet)
#include <Ethernet.h> //Bibliothek Ethernet.h einbinden fuer Netzwerk
#include <Udp.h> //Bibliothek Udp.h einbinden fuer UDP

int taste_enter=742; //Taste Enter vom LCD4Bit
int taste_links=504; //Taste Links vom LCD4Bit
int taste_rechts=0; //Taste Rechts vom LCD4Bit
int taste_oben=143; //Taste Oben vom LCD4Bit
int taste_unten=327; //Taste Unten vom LCD4Bit
int taste_nix=1023; //Keine Taste gedruckt vom LCD4Bit

int lcd_tastatureingabe; //Variable fuer die Tastatureingaben vom LCD4Bit
char lcd_tastatureingabe_text; //Variable fuer die Tastatureingaben vom LCD4Bit

//Arduino Netzwerkdaten
byte mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //Macadresse Arduino
byte ip = {192,168,112,177 };// IP-Adresse Arduino
unsigned int localPort = 8869; // Localer Port auf dem der Arduino auf Daten wartet

//Remotepc Daten
byte remoteIp[4]= {192,168,123,13 }; // IP-Adresse des Remotepc
unsigned int remotePort=8868; // Port an den Arduino Daten sendet (Remotepc)

// buffers for receiving and sending data
char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //Puffer fuer eingehende Pakete
char ReplyBuffer = “acknowledged”; // Ein Text zun zuruecksenden

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

Serial.begin(9600);
pinMode(13, OUTPUT); //Port 13 als Ausgang für Herzschlag
lcd.init(); //lcd initialisieren
lcd.clear(); //lcd loeschen
lcd.printIn(“Bereit”); //Bereit auf Display ausgeben
}

void loop() {
// Wenn Daten verfuegbar dann lesen
int packetSize = Udp.available(); // Daten mit UDP header
// Udp.sendPacket( “bereit”, remoteIp, remotePort);
//delay(10);
//Udp.sendPacket( “bereit 1”, remoteIp, remotePort);
//delay(10);
//Udp.sendPacket( “bereit 2”, remoteIp, remotePort);
//delay(10);
//Udp.sendPacket( “bereit 3”, remoteIp, remotePort);
//delay(10);
//Udp.sendPacket( “bereit 4”, remoteIp, remotePort);
//delay(10);
//Udp.sendPacket( “bereit 5”, remoteIp, remotePort);
//delay(10);
lcd_tastatureingabe = analogRead(0); // liest Eingaben von der LCD Tastatur

lcd.cursorTo(2, 0); //line=2, x=0

if (lcd_tastatureingabe==taste_enter){lcd_tastatureingabe_text=“enter”;Serial.println (“Enter”);lcd.printIn("Enter ");};
if (lcd_tastatureingabe==504) {lcd_tastatureingabe_text=“links”;Serial.println (“links”);lcd.printIn("links ");};
if (lcd_tastatureingabe==143) {lcd_tastatureingabe_text=“oben”;Serial.println (“oben”);lcd.printIn("oben ");};
if (lcd_tastatureingabe==327) {lcd_tastatureingabe_text=“unten”;Serial.println (“unten”);lcd.printIn("unten ");};
if (lcd_tastatureingabe==0) {lcd_tastatureingabe_text=“rechts”;Serial.println (“rechts”);lcd.printIn("rechts ");};
if (lcd_tastatureingabe==1023) {lcd_tastatureingabe_text=“nix”;Serial.println (“nix”);lcd.printIn("nix ");};
Udp.sendPacket( lcd_tastatureingabe_text, remoteIp, remotePort);
if(packetSize)
{
packetSize = packetSize - 8; // 8 byte header abziehen
Serial.print("Received packet of size ");
Serial.println(packetSize);

// read the packet into packetBufffer and get the senders IP addr and port number
Udp.readPacket(packetBuffer,UDP_TX_PACKET_MAX_SIZE, remoteIp, remotePort); //Liest Daten vom RemotePC in packetBuffer
Serial.println(packetBuffer); //Daten vom Remotepc ausgeben
lcd.cursorTo(2, 0); //line=2, x=0
lcd.printIn(packetBuffer); //Daten vom Remotepc auf LCD ausgeben
// Udp.sendPacket( “bereit”, remoteIp, remotePort);
Udp.sendPacket( ReplyBuffer, remoteIp, remotePort);
}
delay(10);
}

Folgende Fehlermeldungen erscheinen:

H_UDPSendReceiveString:33: error: ‘UDP_TX_PACKET_MAX_SIZE’ was not declared in this scope
H_UDPSendReceiveString.cpp: In function ‘void setup()’:
H_UDPSendReceiveString:40: error: ‘Udp’ was not declared in this scope

As of Arduino 1.0, the Udp class in the Ethernet library has been renamed to EthernetClient.

H_UDPSendReceiveString.cpp: In function ‘void loop()’:
H_UDPSendReceiveString:51: error: ‘Udp’ was not declared in this scope

As of Arduino 1.0, the Udp class in the Ethernet library has been renamed to EthernetClient.

H_UDPSendReceiveString:69: error: invalid conversion from ‘const char*’ to ‘char’
H_UDPSendReceiveString:70: error: invalid conversion from ‘const char*’ to ‘char’
H_UDPSendReceiveString:71: error: invalid conversion from ‘const char*’ to ‘char’
H_UDPSendReceiveString:72: error: invalid conversion from ‘const char*’ to ‘char’
H_UDPSendReceiveString:73: error: invalid conversion from ‘const char*’ to ‘char’
H_UDPSendReceiveString:74: error: invalid conversion from ‘const char*’ to ‘char’
H_UDPSendReceiveString:84: error: ‘packetBuffer’ was not declared in this scope
H_UDPSendReceiveString:84: error: ‘UDP_TX_PACKET_MAX_SIZE’ was not declared in this scope

Gruss userport

Hallo,
ich habe deinen Code mal “zerpflückt”.
Hier die Fehler:

a)#include <Udp.h>
ersetzen durch

#include <EthernetUdp.h>

b)Udp.sendpacket(...)
ersetzen durch

//Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    //Udp.write(<was immer auch für einen text>);
    //Udp.endPacket();

c)int packetSize = Udp.available();
ersetzen durch

int packetSize = Udp.parsePacket();

d)Udp.readPacket(packetBuffer,UDP_TX_PACKET_MAX_SIZE, remoteIp, remotePort);  //Liest Daten vom RemotePC in packetBuffer
ersetzen durch

Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);

Damit konnte ich es auf der 1.0 kompilieren. Da ich aber weder deine LCD library noch ein LCD besitze kann ich den code leider nicht testen.

Grüße
Anaximander