Hola gente. Estoy intentando adaptar un código (que funciona perfectamente) como librería, más en concreto un código que conecta a la red mi arduino ethernet.
Este es el código de mi programa:
#include <ETHc.h>
byte macArduino[] = { 0x90, 0xA2, 0xDA, 0x0D, 0xD5, 0xAA };
int ipServer[] = { 192, 168, 0, 200};
void setup(){
ETHc newEthernetCon(macArduino,ipServer);
}
void loop(){
}
Y aquí os dejo el código de la librería que he intentado crear:
.h
#ifndef ETHc_h
#define ETHc_h
#include "Arduino.h"
class ETHc
{
public:
ETHc(byte *macArduino,int *ipServer);
private:
byte _macArduino[];
int _ipServer[];
};
#endif
.cpp
#include "Arduino.h"
#include "ETHc.h"
#include <Dhcp.h>
#include <Dns.h>
#include <Ethernet.h>
#include <EthernetClient.h>
#include <EthernetServer.h>
#include <EthernetUdp.h>
#include <util.h>
#include <SPI.h>
ETHc::ETHc(byte macArduino[] ,int ipServer[])
{
for(int i=0;i<sizeof(macArduino);i++){
_macArduino[i] = macArduino[i];
}
for(int i=0;i<sizeof(ipServer);i++){
_ipServer[i] = ipServer[i];
}
//CONNECTING
IPAddress server(_ipServer[0],_ipServer[1],_ipServer[2],_ipServer[3]);
EthernetClient client;
Serial.begin(9600);
Serial.println("Bienvenido!!!");
if (Ethernet.begin(_macArduino) == 0){
Serial.println("Fallo al configurar IP usando servidor DHCP");
}else{
Serial.print("My IP address: ");
for (byte thisByte = 0; thisByte < 4; thisByte++) {
// print the value of each byte of the IP address:
Serial.print(Ethernet.localIP()[thisByte], DEC);
Serial.print(".");
}
Serial.println("");
Serial.println("Listo");
}
}
Y este es el error:
C:\Users\user\Documents\Arduino\libraries\ETHc\ETHc.cpp: In constructor 'ETHc::ETHc(byte*, int*)':
C:\Users\user\Documents\Arduino\libraries\ETHc\ETHc.cpp:26: error: 'IPAddress' was not declared in this scope
C:\Users\user\Documents\Arduino\libraries\ETHc\ETHc.cpp:26: error: expected `;' before 'server'
C:\Users\user\Documents\Arduino\libraries\ETHc\ETHc.cpp:27: error: 'EthernetClient' was not declared in this scope
C:\Users\user\Documents\Arduino\libraries\ETHc\ETHc.cpp:27: error: expected `;' before 'client'
C:\Users\user\Documents\Arduino\libraries\ETHc\ETHc.cpp:33: error: 'Ethernet' was not declared in this scope
¿Puede ser que no esté cogiendo bien la librería Ethernet?
PD: Soy MUY novato con todo esto
MUCHÍSIMAS GRACIAS A TODOS