2012-06-06 11:28:21 +02:00
|
|
|
#ifndef WiFi_h
|
|
|
|
#define WiFi_h
|
|
|
|
|
|
|
|
#include <inttypes.h>
|
|
|
|
|
|
|
|
extern "C" {
|
|
|
|
#include "utility/wl_definitions.h"
|
|
|
|
#include "utility/wl_types.h"
|
|
|
|
}
|
|
|
|
|
|
|
|
#include "IPAddress.h"
|
|
|
|
#include "WiFiClient.h"
|
|
|
|
#include "WiFiServer.h"
|
|
|
|
|
|
|
|
class WiFiClass
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
|
|
|
|
static void init();
|
|
|
|
public:
|
|
|
|
static int16_t _state[MAX_SOCK_NUM];
|
|
|
|
static uint16_t _server_port[MAX_SOCK_NUM];
|
|
|
|
|
|
|
|
WiFiClass();
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Get the first socket available
|
|
|
|
*/
|
|
|
|
static uint8_t getSocket();
|
|
|
|
|
2012-06-08 18:56:47 +02:00
|
|
|
/*
|
|
|
|
* Get firmware version
|
|
|
|
*/
|
|
|
|
static char* firmwareVersion();
|
|
|
|
|
|
|
|
|
2012-06-06 11:28:21 +02:00
|
|
|
/* Start Wifi connection for OPEN networks
|
|
|
|
*
|
|
|
|
* param ssid: Pointer to the SSID string.
|
|
|
|
*/
|
|
|
|
int begin(char* ssid);
|
|
|
|
|
|
|
|
/* Start Wifi connection with WEP encryption.
|
|
|
|
* Configure a key into the device. The key type (WEP-40, WEP-104)
|
|
|
|
* is determined by the size of the key (5 bytes for WEP-40, 13 bytes for WEP-104).
|
|
|
|
*
|
|
|
|
* param ssid: Pointer to the SSID string.
|
|
|
|
* param key_idx: The key index to set. Valid values are 0-3.
|
|
|
|
* param key: Key input buffer.
|
|
|
|
*/
|
|
|
|
int begin(char* ssid, uint8_t key_idx, const char* key);
|
|
|
|
|
|
|
|
/* Start Wifi connection with passphrase
|
|
|
|
* the most secure supported mode will be automatically selected
|
|
|
|
*
|
|
|
|
* param ssid: Pointer to the SSID string.
|
|
|
|
* param passphrase: Passphrase. Valid characters in a passphrase
|
|
|
|
* must be between ASCII 32-126 (decimal).
|
|
|
|
*/
|
|
|
|
int begin(char* ssid, const char *passphrase);
|
|
|
|
|
2013-03-21 09:24:07 +01:00
|
|
|
/* Change Ip configuration settings disabling the dhcp client
|
|
|
|
*
|
|
|
|
* param local_ip: Static ip configuration
|
|
|
|
*/
|
|
|
|
void config(IPAddress local_ip);
|
|
|
|
|
|
|
|
/* Change Ip configuration settings disabling the dhcp client
|
|
|
|
*
|
|
|
|
* param local_ip: Static ip configuration
|
2013-03-28 12:56:57 +01:00
|
|
|
* param dns_server: IP configuration for DNS server 1
|
|
|
|
*/
|
|
|
|
void config(IPAddress local_ip, IPAddress dns_server);
|
|
|
|
|
|
|
|
/* Change Ip configuration settings disabling the dhcp client
|
|
|
|
*
|
|
|
|
* param local_ip: Static ip configuration
|
|
|
|
* param dns_server: IP configuration for DNS server 1
|
2013-03-26 22:25:55 +01:00
|
|
|
* param gateway : Static gateway configuration
|
2013-03-21 09:24:07 +01:00
|
|
|
*/
|
2013-03-28 12:56:57 +01:00
|
|
|
void config(IPAddress local_ip, IPAddress dns_server, IPAddress gateway);
|
2013-03-21 09:24:07 +01:00
|
|
|
|
|
|
|
/* Change Ip configuration settings disabling the dhcp client
|
|
|
|
*
|
|
|
|
* param local_ip: Static ip configuration
|
2013-03-28 12:56:57 +01:00
|
|
|
* param dns_server: IP configuration for DNS server 1
|
2013-03-21 09:24:07 +01:00
|
|
|
* param gateway: Static gateway configuration
|
2013-03-26 22:25:55 +01:00
|
|
|
* param subnet: Static Subnet mask
|
2013-03-21 09:24:07 +01:00
|
|
|
*/
|
2013-03-28 12:56:57 +01:00
|
|
|
void config(IPAddress local_ip, IPAddress dns_server, IPAddress gateway, IPAddress subnet);
|
2013-03-21 09:24:07 +01:00
|
|
|
|
|
|
|
/* Change DNS Ip configuration
|
|
|
|
*
|
|
|
|
* param dns_server1: ip configuration for DNS server 1
|
|
|
|
*/
|
|
|
|
void setDNS(IPAddress dns_server1);
|
|
|
|
|
|
|
|
/* Change DNS Ip configuration
|
|
|
|
*
|
|
|
|
* param dns_server1: ip configuration for DNS server 1
|
|
|
|
* param dns_server2: ip configuration for DNS server 2
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
void setDNS(IPAddress dns_server1, IPAddress dns_server2);
|
|
|
|
|
2012-06-06 11:28:21 +02:00
|
|
|
/*
|
|
|
|
* Disconnect from the network
|
|
|
|
*
|
|
|
|
* return: one value of wl_status_t enum
|
|
|
|
*/
|
|
|
|
int disconnect(void);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Get the interface MAC address.
|
|
|
|
*
|
|
|
|
* return: pointer to uint8_t array with length WL_MAC_ADDR_LENGTH
|
|
|
|
*/
|
|
|
|
uint8_t* macAddress(uint8_t* mac);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Get the interface IP address.
|
|
|
|
*
|
|
|
|
* return: Ip address value
|
|
|
|
*/
|
|
|
|
IPAddress localIP();
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Get the interface subnet mask address.
|
|
|
|
*
|
|
|
|
* return: subnet mask address value
|
|
|
|
*/
|
|
|
|
IPAddress subnetMask();
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Get the gateway ip address.
|
|
|
|
*
|
|
|
|
* return: gateway ip address value
|
|
|
|
*/
|
|
|
|
IPAddress gatewayIP();
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Return the current SSID associated with the network
|
|
|
|
*
|
|
|
|
* return: ssid string
|
|
|
|
*/
|
|
|
|
char* SSID();
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Return the current BSSID associated with the network.
|
|
|
|
* It is the MAC address of the Access Point
|
|
|
|
*
|
|
|
|
* return: pointer to uint8_t array with length WL_MAC_ADDR_LENGTH
|
|
|
|
*/
|
|
|
|
uint8_t* BSSID(uint8_t* bssid);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Return the current RSSI /Received Signal Strength in dBm)
|
|
|
|
* associated with the network
|
|
|
|
*
|
|
|
|
* return: signed value
|
|
|
|
*/
|
|
|
|
int32_t RSSI();
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Return the Encryption Type associated with the network
|
|
|
|
*
|
|
|
|
* return: one value of wl_enc_type enum
|
|
|
|
*/
|
|
|
|
uint8_t encryptionType();
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Start scan WiFi networks available
|
|
|
|
*
|
|
|
|
* return: Number of discovered networks
|
|
|
|
*/
|
|
|
|
int8_t scanNetworks();
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Return the SSID discovered during the network scan.
|
|
|
|
*
|
|
|
|
* param networkItem: specify from which network item want to get the information
|
|
|
|
*
|
|
|
|
* return: ssid string of the specified item on the networks scanned list
|
|
|
|
*/
|
|
|
|
char* SSID(uint8_t networkItem);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Return the encryption type of the networks discovered during the scanNetworks
|
|
|
|
*
|
|
|
|
* param networkItem: specify from which network item want to get the information
|
|
|
|
*
|
|
|
|
* return: encryption type (enum wl_enc_type) of the specified item on the networks scanned list
|
|
|
|
*/
|
|
|
|
uint8_t encryptionType(uint8_t networkItem);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Return the RSSI of the networks discovered during the scanNetworks
|
|
|
|
*
|
|
|
|
* param networkItem: specify from which network item want to get the information
|
|
|
|
*
|
|
|
|
* return: signed value of RSSI of the specified item on the networks scanned list
|
|
|
|
*/
|
|
|
|
int32_t RSSI(uint8_t networkItem);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Return Connection status.
|
|
|
|
*
|
|
|
|
* return: one of the value defined in wl_status_t
|
|
|
|
*/
|
|
|
|
uint8_t status();
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Resolve the given hostname to an IP address.
|
|
|
|
* param aHostname: Name to be resolved
|
|
|
|
* param aResult: IPAddress structure to store the returned IP address
|
|
|
|
* result: 1 if aIPAddrString was successfully converted to an IP address,
|
|
|
|
* else error code
|
|
|
|
*/
|
|
|
|
int hostByName(const char* aHostname, IPAddress& aResult);
|
|
|
|
|
|
|
|
friend class WiFiClient;
|
|
|
|
friend class WiFiServer;
|
|
|
|
};
|
|
|
|
|
|
|
|
extern WiFiClass WiFi;
|
|
|
|
|
|
|
|
#endif
|