Ciao a tutti, come da titolo ho qualche problema nell'istanziare un array di byte! Vi incollo il codice per chiarezza :
INTERFACCIA
#ifndef __MYETHERNET__
#define __MYETHERNET__
#include <Arduino.h>
#include <Ethernet.h>
/*Interfaccia che definisce le funzionalita
del ethernet Shield.*/
class MyEthernet {
public:
MyEthernet();
void connect(); // Metodo che inizializza la connessione dello shield alla rete
void sendEmail(); // Metodo per inviare le email ai destinatari prestabiliti.
private:
void getResponse(); // Riceve il messaggio dal server di posta SMTP.
void sendMsg(String m); // Invia il messaggio al server di posta SMTP.
byte mac[6] ; // Indirizzo MAC dello Shield.
byte ip[4]; // Indirizzo IP assegnato allo Shield.
byte server[4];// IP del server SMTP di Alice( out.alice.it ).
String serverName;// Nome dell'host SMTP di alice.
String sender; // Mittente della email
String recipient[]; // Destinatari a cui recapitare la mail.
String mailObject; // Oggetto della email
String bodyMsg; // Corpo del messaggio della mail.
String ServerResponse; // Risposta del server
EthernetClient client; // Oggetto della classe EthernetClient (libreria di Arduino)
};
#endif
CLASSE CHE IMPL. L'INTERFACCIA
#include "Ethernet.h"
#include <SPI.h>
#include "MyEthernet.h"
MyEthernet::MyEthernet(){
this->mac[6] = { 0x90, 0xA2, 0xDA, 0x00, 0x23, 0x5D };
this->ip[4] = {192, 168, 1, 15 };
this->server[4] = {82, 57, 200, 132};
this->serverName = "out.alice.it";
this->sender = "funduino@uno.it";
this->recipient[2] = "baldmarc@alice.it", "emanuele.bondi2@yahoo.it";
this->mailObject = "Movimento rilevato";
this->bodyMsg = "Ciao sono Funduino";
}
void MyEthernet::connect() {
Serial.begin(9600);
Ethernet.begin(mac, ip);
}
void MyEthernet::sendEmail() {
Serial.println("sendEmail");
for(int i = 0; i < 6; i++)
Serial.print(mac[i]);
Serial.println();
for(int i = 0; i < 4; i++)
Serial.print(ip[i]);
Serial.println();
for(int i = 0; i < 4; i++)
Serial.print(server[i]);
Serial.println();
this->bodyMsg = "ciao";
if (client.connect(server, 25)) {
this->sendMsg("EHLO " + this->serverName);
this->sendMsg("MAIL From:<" + this->sender + ">");
this->sendMsg("RCPT To:<" + this->recipient[0] + ">");
this->sendMsg("DATA");
this->sendMsg("To: " + this->recipient[0]);
this->sendMsg("From: " + this->sender);
this->sendMsg("Subject: " + this->mailObject);
this->sendMsg("");
this->sendMsg(this->bodyMsg);
this->sendMsg("");
this->sendMsg(".");
this->sendMsg("QUIT");
client.println();
}
else {
Serial.println("connection failed");
}
}
void MyEthernet::getResponse() {
if (client.available()) {
char c = client.read();
while (client.available()) { // Store command char by char.
ServerResponse += c;
c = client.read();
}
Serial.println("<<<" + ServerResponse);
ServerResponse = "";
}
}
void MyEthernet::sendMsg(String m) {
client.println(m);
Serial.println(">>>" + m);
delay(1000);
this->getResponse();
};
Se c'è un linguaggio di programmazione che non sò, quello è il C++ quindi scusatemi se vedete delle eresie!