Bonjour à tous,
Voila, je travaille actuellement sur la classe UDP, j'ai déjà fais quelques essais et maintenant, je prend tous mes croquis que j'assemble en plusieurs fonctions.
Là je veut vérifier ma compilation avec "Ctrl+R". C'est alors qu'une erreur survient: "La classe Udp a été renommée EthernetUdp." pourtant à la déclaration je met
EthernetUDP Udp;
Un bug du compilo? version 1.6.10. Jutilise win7
Je vous donne le setup de mon mon code:
#include <EEPROM.h>
//--------------------------------------------------------------------------
//Mémoire Flash
#include <avr/pgmspace.h>
//--------------------------------------------------------------------------
//Horloge
#include <Wire.h>
//--------------------------------------------------------------------------
//Bus SPI
#include <SPI.h>
//--------------------------------------------------------------------------
//Ethernet
#include <Ethernet.h>
#include <EthernetUdp.h>
//--------------------------------------------------------------------------
//SD Card
#include <SD.h>
//##########################################################################
// Setup
//##########################################################################
void setup() {
//------------------------------------------------------------------------
//initialisation des fonctions de communication
//-----------------------------------
Serial.begin(9600); // Communication série avec le moniteur
while (!Serial);
{}
//-----------------------------------
Wire.begin(); // Liaison i2c
//------------------------------------------------------------------------
//Inscription dans l'EEprom des parametres de la carte
if (EEPROM.read(0) != 1) // Si c'est le 1er démarage du Satellite
EEPROM.update(0, 0); // adresse 0= Initialisation 0
EEPROM.update(1, 1); // adresse 1= Type compris entre 0 et 2
//------------------------------------------------------------------------
// Ethernet
byte mac[] = {0xAE, 0xAD, 0xBE, 0xEF, 0xAE, 0xCB}; // L'adresse MAC du shield
IPAddress ip (190, 1, 10, 12); // L'adresse IP par defaut que prendra le shield
IPAddress my_dns ( 190, 1, 10, 1 );
IPAddress gateway ( 190, 1, 10, 1 );
IPAddress subnet ( 255, 255, 255, 0 );
IPAddress remoteIp (190, 1, 10, 1);
//------------------------------------------------------------------------
// Instance EthernetUDP pour nous envoyer et recevoir des paquets
EthernetUDP Udp; // Nom du serveur UDP
unsigned int localPort = 8889; // local port to listen on
Ethernet.begin(mac, ip, my_dns, gateway, subnet); // Démarre une instance Ethernet
Udp.begin(localPort); // Démarre une instance UDP
//------------------------------------------------------------------------
//########################################################################
// Boot
//########################################################################
//Verification de l'adresse ip
if (EEPROM.read(0) == 0) // Si le Satellite n'a jamais était parametré
{
write = "300000\t0"; // Prise de contact initial
UdpSend(); // Fait une demande
while (!UdpReceive()) // Tant qu'il n'y a pas de réponse
{}
Analyse(); // Regarde ce qui à était reçu et le stocke dans Recu[]
if (atoi(Recu[0]) == 310000) // Si une réponse à était reçu
{
EEPROM.update(2, (byte) atoi(Recu[1])); // Converti le char en int puis en byte et sauvegarde la valeur
}
}
ip[3] = ((int) EEPROM.read(1) * 100) + ((int) EEPROM.read(2)); // Création de la terminaison de l'adresse IP
Ethernet.begin(mac, ip, my_dns, gateway, subnet); // Attribution de l'adresse IP au satellite
Udp.begin(localPort); // Démarre l'écoute
Serial.print("Adresse IP du Satellite"); Serial.println(ip);
//------------------------------------------------------------------------
}