Arduino Quick Ethernet library Reference Di Luca Panebianco per Automazione Open Source Versione 1.0 www.xploreautomation.com Pag 1
Indice dei contenuti 1 Classe Ethernet...3 2 Classe IPAddress...3 3 Classe Server...3 4 Classe Client...5 5 Classe EthernetUDP...8 La lista di delle classi e i metodi che compongono la libreria sono stati tratti dalla pagina: http://arduino.cc/it/reference/homepage Pag 2
1 Classe Ethernet La classe Ethernet inizializza la libreria e le impostazioni di rete begin(mac) begin(mac, ip) begin(mac, ip, gtway) begin(mac, ip, gtway,subnt) Inizializza la libreria Ethernet. La versione 1.0 della libreria consente il DHCP. mac: L'indirizzo MAC della scheda(si può trovare nel retro della stessa(array di 6 byte). Ip: L'indirizzo IP della scheda, con il DHCP non c'è bisogno di questo parametro(array di 4 byte) gtway: L'indirizzo IP del gateway(array di 4 byte) subnt: La subnet mask della rete(array di 4 byte) LocalIP() 2 Classe IPAddress IPAddress(address) 3 Classe Server Server(port) Ottiene l'indirizzo IP della shield. Utile se si è utilizzato il DHCP L'indirizzo IP(array di 4 byte) Definisce un indirizzo IP. Può essere utilizzato per definire sia l'ip locale che quello remoto(utilizzabile come parametro ip nel metodo begin() della classe Ethernet). address: quattro byte suddivisi da una virgola Definisce un server in ascolto ad una determinata porta. port: la porta alla quale mettersi in ascolto definito da un int EthernetServer(port) E' uguale a Server(port). Pag 3
begin() Dice al server che può iniziare a mettersi in ascolto. available() Ritorna un client che si è connesso alla porta del server e che ha dati pronti per essere letti. La connessione persiste finchè l'istanza di client sussiste e la sua connessione si può chiudere chiamando client.stop(). un oggetto di tipo client. Se nessun client ha dati disponibili alla lettura l'oggetto riportato varrà come una variabile booleana false. Write(data) Scrive dei dati ai client connessi al server data: i dati da dover scrivere(byte, char o string) print(data) print(data,base) Scrive i dati a tutti i client connessi al server. Scrive i numeri come sequenze di cifre, ognuno attraverso un carattere. data: i dati da dover scrivere(char, byte, int, long o string) base(opzionale): la base con la quale esprimere i numeri:bin per binario(base 2), DEC per decimale(base 10), OCT per ottale(base 8) o Hex per esadecimale(base 16). un valore che rappresenta il numero di byte scritti Pag 4
println() println(data) println(data, base) Scrive i dati come il metodo print(), seguiti da un carattere di a capo. Se lasciato senza parametri scriverà solo il carattere a capo. data(opzionale): i dati da dover scrivere(byte o char) base(opzionale): la base con la quale esprimere i numeri:bin per binario(base 2), DEC per decimale(base 10), OCT per ottale(base 8) o Hex per esadecimale(base 16). un valore che rappresenta il numero di byte scritti 4 Classe Client Questa classe gestisce un Client che si può connettere a dei Server per inviare e ricevere dati. Client(ip, port) Crea un Client con uno specifico IP e porta.e' il costruttore della classe. ip: l'indirizzo IP a cui connettersi(array di 4 byte) port: la porta alla quale connettersi(int) EthernetClient() Crea un client che si può connettere ad un certo IP e porta(che vengono definiti con il metodo connect(ip, port). E' consigliabile utilizzare il costruttore Client(ip, port). L'indirizzo IP dell' host remoto(array di 4 byte) connected() Notifica se un Client è connesso o meno. Da notare che un Client è considerato connesso anche la connessione è stata Pag 5
chiusa ma ci sono ancora dei dati nel buffer non letti. Un booleano nel quale true significa che il client è connesso, false viceversa. connect() Permette la connessione all'indirizzo IP e porta definito nel costruttore. La variabile di ritorno identifica il successo o il fallimento della connessione. un booleano che identifica la riuscita dell'operazione. write(data) Scrive dei dati al server al quale è connesso il client. data: i dati da dover scrivere(byte o char o string) print(data) print(data,base) Scrive i dati al server a cui è connesso. Scrive i numeri come sequenze di cifre, ognuno attraverso un carattere. data: i dati da dover scrivere(char, byte, int, long o string) base(opzionale): la base con la quale esprimere i numeri:bin per binario(base 2), DEC per decimale(base 10), OCT per ottale(base 8) o Hex per esadecimale(base 16). un valore che rappresenta il numero di byte scritti Pag 6
println() println(data) println(data, base) Scrive i dati come il metodo print(), seguiti da un carattere di a capo. Se lasciato senza parametri scriverà solo il carattere a capo. data(opzionale): i dati da dover scrivere(byte o char) base(opzionale): la base con la quale esprimere i numeri:bin per binario(base 2), DEC per decimale(base 10), OCT per ottale(base 8) o Hex per esadecimale(base 16). un valore che rappresenta il numero di byte scritti available() Ritorna il numero di byte disponibili alla lettura mandati dal server al quale il Client è connesso. Il numero di byte disponibili read() legge il prossimo dato ricevuto dal server al quale il client è connesso. Il prossimo byte(o char) disponibile. Ritorna -1 se non ci sono byte da leggere. flush() Scarta qualunque altro byte che è stato mandato dal server al client ma che non sono ancora stati letti. Pag 7
stop() Permette la disconnessione dal server. 5 Classe EthernetUDP Questa classe consente l'utilizzo del protocollo UDP per inviare e ricevere messaggi. Per utilizzare questi metodi bisogna creare un'istanza di EthernetUDP. begin(port) Inizializza la libreria UDP dell'ethernet Shield e le impostazioni di connessione. port: la porta locale che si utilizza. read() read(buf, maxsize) Legge dei dati nel protocollo UDP dal buffer. Se nessun parametro viene specificato legge un singolo carattere. Questo metodo può essere chiamato solo dopo aver chiamato parsepacket(). buf(opzionale): array di caratteri dove poter salvare i pacchetti da leggere. maxsize: lunghezza massima dell'array(int). write(ch) Scrive dei dati UDP. Questo metodo deve essere chiamato dopo beginpacket() e prima di endpacket() poiché il pacchetto di dati viene mandato solo quando viene chiamato Pag 8
endpacket(). ch: il messaggio da mandare(string, char). il numero di byte mandati beginpacket(remip, remport) Utilizza il protocollo UDP per inviare dei pacchetti ad un dato IP e porta. Con questo metodo si inizializza la spedizione. remip: l'indirizzo IP della connessione remota (4 byte) remport: la porta della connessione remota (int) endpacket() Viene chiamato dopo aver scritto i dati all'host remoto parsepacket() Controlla se è disponibile un pacchetto UDP nel buffer di lettura. Deve essere chiamato prima del metodo read() della classe UDP. La grandezza del pacchetto UDP ricevuto. available() Ritorna il numero di byte(caratteri) disponibili sul buffer di lettura. Per funzionare correttamente deve essere chiamato dopo il metodo parsepacket(). Pag 9
Il numero di byte disponibili da poter leggere. remoteip() Ritorna l'indirizzo IP della connessione remota. Deve essere chiamato dopo il metodo parsepacket() per funzionare correttamente. L'indirizzo IP dell' host remoto(array di 4 byte) remoteport() Ritorna la porta della connessione remota. Deve essere chiamato dopo il metodo parsepacket() per funzionare correttamente. La porta dell' host remoto(int) Pag 10