aboutsummaryrefslogtreecommitdiff
path: root/libraries/WiFi
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/WiFi')
-rw-r--r--libraries/WiFi/WiFi.cpp231
-rw-r--r--libraries/WiFi/WiFi.h227
-rw-r--r--libraries/WiFi/WiFiClient.cpp179
-rw-r--r--libraries/WiFi/WiFiClient.h40
-rw-r--r--libraries/WiFi/WiFiServer.cpp89
-rw-r--r--libraries/WiFi/WiFiServer.h27
-rw-r--r--libraries/WiFi/WiFiUdp.cpp163
-rw-r--r--libraries/WiFi/WiFiUdp.h61
-rw-r--r--libraries/WiFi/examples/ConnectNoEncryption/ConnectNoEncryption.ino121
-rw-r--r--libraries/WiFi/examples/ConnectWithWEP/ConnectWithWEP.ino126
-rw-r--r--libraries/WiFi/examples/ConnectWithWPA/ConnectWithWPA.ino116
-rw-r--r--libraries/WiFi/examples/ScanNetworks/ScanNetworks.ino119
-rw-r--r--libraries/WiFi/examples/SimpleWebServerWiFi/SimpleWebServerWiFi.ino129
-rw-r--r--libraries/WiFi/examples/WiFiChatServer/WiFiChatServer.ino111
-rw-r--r--libraries/WiFi/examples/WiFiPachubeClient/WiFiPachubeClient.ino190
-rw-r--r--libraries/WiFi/examples/WiFiPachubeClientString/WiFiPachubeClientString.ino177
-rw-r--r--libraries/WiFi/examples/WiFiTwitterClient/WiFiTwitterClient.ino163
-rw-r--r--libraries/WiFi/examples/WiFiUdpNtpClient/WiFiUdpNtpClient.ino182
-rw-r--r--libraries/WiFi/examples/WiFiUdpSendReceiveString/WiFiUdpSendReceiveString.ino112
-rw-r--r--libraries/WiFi/examples/WiFiWebClient/WiFiWebClient.ino121
-rw-r--r--libraries/WiFi/examples/WiFiWebClientRepeating/WiFiWebClientRepeating.ino138
-rw-r--r--libraries/WiFi/examples/WiFiWebServer/WiFiWebServer.ino134
-rw-r--r--libraries/WiFi/keywords.txt51
-rw-r--r--libraries/WiFi/utility/debug.h77
-rw-r--r--libraries/WiFi/utility/server_drv.cpp308
-rw-r--r--libraries/WiFi/utility/server_drv.h41
-rw-r--r--libraries/WiFi/utility/socket.c20
-rw-r--r--libraries/WiFi/utility/socket.h87
-rw-r--r--libraries/WiFi/utility/spi_drv.cpp506
-rw-r--r--libraries/WiFi/utility/spi_drv.h83
-rw-r--r--libraries/WiFi/utility/wifi_drv.cpp560
-rw-r--r--libraries/WiFi/utility/wifi_drv.h248
-rw-r--r--libraries/WiFi/utility/wifi_spi.h153
-rw-r--r--libraries/WiFi/utility/wl_definitions.h52
-rw-r--r--libraries/WiFi/utility/wl_types.h31
35 files changed, 0 insertions, 5173 deletions
diff --git a/libraries/WiFi/WiFi.cpp b/libraries/WiFi/WiFi.cpp
deleted file mode 100644
index f209280..0000000
--- a/libraries/WiFi/WiFi.cpp
+++ /dev/null
@@ -1,231 +0,0 @@
-#include "wifi_drv.h"
-#include "WiFi.h"
-
-extern "C" {
- #include "utility/wl_definitions.h"
- #include "utility/wl_types.h"
- #include "debug.h"
-}
-
-// XXX: don't make assumptions about the value of MAX_SOCK_NUM.
-int16_t WiFiClass::_state[MAX_SOCK_NUM] = { NA_STATE, NA_STATE, NA_STATE, NA_STATE };
-uint16_t WiFiClass::_server_port[MAX_SOCK_NUM] = { 0, 0, 0, 0 };
-
-WiFiClass::WiFiClass()
-{
- // Driver initialization
- init();
-}
-
-void WiFiClass::init()
-{
- WiFiDrv::wifiDriverInit();
-}
-
-uint8_t WiFiClass::getSocket()
-{
- for (uint8_t i = 0; i < MAX_SOCK_NUM; ++i)
- {
- if (WiFiClass::_server_port[i] == 0)
- {
- return i;
- }
- }
- return NO_SOCKET_AVAIL;
-}
-
-char* WiFiClass::firmwareVersion()
-{
- return WiFiDrv::getFwVersion();
-}
-
-int WiFiClass::begin(char* ssid)
-{
- uint8_t status = WL_IDLE_STATUS;
- uint8_t attempts = WL_MAX_ATTEMPT_CONNECTION;
-
- if (WiFiDrv::wifiSetNetwork(ssid, strlen(ssid)) != WL_FAILURE)
- {
- do
- {
- delay(WL_DELAY_START_CONNECTION);
- status = WiFiDrv::getConnectionStatus();
- }
- while ((( status == WL_IDLE_STATUS)||(status == WL_SCAN_COMPLETED))&&(--attempts>0));
- }else
- {
- status = WL_CONNECT_FAILED;
- }
- return status;
-}
-
-int WiFiClass::begin(char* ssid, uint8_t key_idx, const char *key)
-{
- uint8_t status = WL_IDLE_STATUS;
- uint8_t attempts = WL_MAX_ATTEMPT_CONNECTION;
-
- // set encryption key
- if (WiFiDrv::wifiSetKey(ssid, strlen(ssid), key_idx, key, strlen(key)) != WL_FAILURE)
- {
- do
- {
- delay(WL_DELAY_START_CONNECTION);
- status = WiFiDrv::getConnectionStatus();
- }while ((( status == WL_IDLE_STATUS)||(status == WL_SCAN_COMPLETED))&&(--attempts>0));
- }else{
- status = WL_CONNECT_FAILED;
- }
- return status;
-}
-
-int WiFiClass::begin(char* ssid, const char *passphrase)
-{
- uint8_t status = WL_IDLE_STATUS;
- uint8_t attempts = WL_MAX_ATTEMPT_CONNECTION;
-
- // set passphrase
- if (WiFiDrv::wifiSetPassphrase(ssid, strlen(ssid), passphrase, strlen(passphrase))!= WL_FAILURE)
- {
- do
- {
- delay(WL_DELAY_START_CONNECTION);
- status = WiFiDrv::getConnectionStatus();
- }
- while ((( status == WL_IDLE_STATUS)||(status == WL_SCAN_COMPLETED))&&(--attempts>0));
- }else{
- status = WL_CONNECT_FAILED;
- }
- return status;
-}
-
-void WiFiClass::config(IPAddress local_ip)
-{
- WiFiDrv::config(1, (uint32_t)local_ip, 0, 0);
-}
-
-void WiFiClass::config(IPAddress local_ip, IPAddress dns_server)
-{
- WiFiDrv::config(1, (uint32_t)local_ip, 0, 0);
- WiFiDrv::setDNS(1, (uint32_t)dns_server, 0);
-}
-
-void WiFiClass::config(IPAddress local_ip, IPAddress dns_server, IPAddress gateway)
-{
- WiFiDrv::config(2, (uint32_t)local_ip, (uint32_t)gateway, 0);
- WiFiDrv::setDNS(1, (uint32_t)dns_server, 0);
-}
-
-void WiFiClass::config(IPAddress local_ip, IPAddress dns_server, IPAddress gateway, IPAddress subnet)
-{
- WiFiDrv::config(3, (uint32_t)local_ip, (uint32_t)gateway, (uint32_t)subnet);
- WiFiDrv::setDNS(1, (uint32_t)dns_server, 0);
-}
-
-void WiFiClass::setDNS(IPAddress dns_server1)
-{
- WiFiDrv::setDNS(1, (uint32_t)dns_server1, 0);
-}
-
-void WiFiClass::setDNS(IPAddress dns_server1, IPAddress dns_server2)
-{
- WiFiDrv::setDNS(2, (uint32_t)dns_server1, (uint32_t)dns_server2);
-}
-
-int WiFiClass::disconnect()
-{
- return WiFiDrv::disconnect();
-}
-
-uint8_t* WiFiClass::macAddress(uint8_t* mac)
-{
- uint8_t* _mac = WiFiDrv::getMacAddress();
- memcpy(mac, _mac, WL_MAC_ADDR_LENGTH);
- return mac;
-}
-
-IPAddress WiFiClass::localIP()
-{
- IPAddress ret;
- WiFiDrv::getIpAddress(ret);
- return ret;
-}
-
-IPAddress WiFiClass::subnetMask()
-{
- IPAddress ret;
- WiFiDrv::getSubnetMask(ret);
- return ret;
-}
-
-IPAddress WiFiClass::gatewayIP()
-{
- IPAddress ret;
- WiFiDrv::getGatewayIP(ret);
- return ret;
-}
-
-char* WiFiClass::SSID()
-{
- return WiFiDrv::getCurrentSSID();
-}
-
-uint8_t* WiFiClass::BSSID(uint8_t* bssid)
-{
- uint8_t* _bssid = WiFiDrv::getCurrentBSSID();
- memcpy(bssid, _bssid, WL_MAC_ADDR_LENGTH);
- return bssid;
-}
-
-int32_t WiFiClass::RSSI()
-{
- return WiFiDrv::getCurrentRSSI();
-}
-
-uint8_t WiFiClass::encryptionType()
-{
- return WiFiDrv::getCurrentEncryptionType();
-}
-
-
-int8_t WiFiClass::scanNetworks()
-{
- uint8_t attempts = 10;
- uint8_t numOfNetworks = 0;
-
- if (WiFiDrv::startScanNetworks() == WL_FAILURE)
- return WL_FAILURE;
- do
- {
- delay(2000);
- numOfNetworks = WiFiDrv::getScanNetworks();
- }
- while (( numOfNetworks == 0)&&(--attempts>0));
- return numOfNetworks;
-}
-
-char* WiFiClass::SSID(uint8_t networkItem)
-{
- return WiFiDrv::getSSIDNetoworks(networkItem);
-}
-
-int32_t WiFiClass::RSSI(uint8_t networkItem)
-{
- return WiFiDrv::getRSSINetoworks(networkItem);
-}
-
-uint8_t WiFiClass::encryptionType(uint8_t networkItem)
-{
- return WiFiDrv::getEncTypeNetowrks(networkItem);
-}
-
-uint8_t WiFiClass::status()
-{
- return WiFiDrv::getConnectionStatus();
-}
-
-int WiFiClass::hostByName(const char* aHostname, IPAddress& aResult)
-{
- return WiFiDrv::getHostByName(aHostname, aResult);
-}
-
-WiFiClass WiFi;
diff --git a/libraries/WiFi/WiFi.h b/libraries/WiFi/WiFi.h
deleted file mode 100644
index ef36a84..0000000
--- a/libraries/WiFi/WiFi.h
+++ /dev/null
@@ -1,227 +0,0 @@
-#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();
-
- /*
- * Get firmware version
- */
- static char* firmwareVersion();
-
-
- /* 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);
-
- /* 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
- * 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
- * param gateway : Static gateway configuration
- */
- void config(IPAddress local_ip, IPAddress dns_server, IPAddress gateway);
-
- /* Change Ip configuration settings disabling the dhcp client
- *
- * param local_ip: Static ip configuration
- * param dns_server: IP configuration for DNS server 1
- * param gateway: Static gateway configuration
- * param subnet: Static Subnet mask
- */
- void config(IPAddress local_ip, IPAddress dns_server, IPAddress gateway, IPAddress subnet);
-
- /* 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);
-
- /*
- * 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
diff --git a/libraries/WiFi/WiFiClient.cpp b/libraries/WiFi/WiFiClient.cpp
deleted file mode 100644
index 0b4b6dc..0000000
--- a/libraries/WiFi/WiFiClient.cpp
+++ /dev/null
@@ -1,179 +0,0 @@
-extern "C" {
- #include "utility/wl_definitions.h"
- #include "utility/wl_types.h"
- #include "socket.h"
- #include "string.h"
- #include "utility/debug.h"
-}
-
-#include "WiFi.h"
-#include "WiFiClient.h"
-#include "WiFiServer.h"
-#include "server_drv.h"
-
-
-uint16_t WiFiClient::_srcport = 1024;
-
-WiFiClient::WiFiClient() : _sock(MAX_SOCK_NUM) {
-}
-
-WiFiClient::WiFiClient(uint8_t sock) : _sock(sock) {
-}
-
-int WiFiClient::connect(const char* host, uint16_t port) {
- IPAddress remote_addr;
- if (WiFi.hostByName(host, remote_addr))
- {
- return connect(remote_addr, port);
- }
- return 0;
-}
-
-int WiFiClient::connect(IPAddress ip, uint16_t port) {
- _sock = getFirstSocket();
- if (_sock != NO_SOCKET_AVAIL)
- {
- ServerDrv::startClient(uint32_t(ip), port, _sock);
- WiFiClass::_state[_sock] = _sock;
-
- unsigned long start = millis();
-
- // wait 4 second for the connection to close
- while (!connected() && millis() - start < 10000)
- delay(1);
-
- if (!connected())
- {
- return 0;
- }
- }else{
- Serial.println("No Socket available");
- return 0;
- }
- return 1;
-}
-
-size_t WiFiClient::write(uint8_t b) {
- return write(&b, 1);
-}
-
-size_t WiFiClient::write(const uint8_t *buf, size_t size) {
- if (_sock >= MAX_SOCK_NUM)
- {
- setWriteError();
- return 0;
- }
- if (size==0)
- {
- setWriteError();
- return 0;
- }
-
-
- if (!ServerDrv::sendData(_sock, buf, size))
- {
- setWriteError();
- return 0;
- }
- if (!ServerDrv::checkDataSent(_sock))
- {
- setWriteError();
- return 0;
- }
-
- return size;
-}
-
-int WiFiClient::available() {
- if (_sock != 255)
- {
- return ServerDrv::availData(_sock);
- }
-
- return 0;
-}
-
-int WiFiClient::read() {
- uint8_t b;
- if (!available())
- return -1;
-
- ServerDrv::getData(_sock, &b);
- return b;
-}
-
-
-int WiFiClient::read(uint8_t* buf, size_t size) {
- if (!ServerDrv::getDataBuf(_sock, buf, &size))
- return -1;
- return 0;
-}
-
-int WiFiClient::peek() {
- uint8_t b;
- if (!available())
- return -1;
-
- ServerDrv::getData(_sock, &b, 1);
- return b;
-}
-
-void WiFiClient::flush() {
- while (available())
- read();
-}
-
-void WiFiClient::stop() {
-
- if (_sock == 255)
- return;
-
- ServerDrv::stopClient(_sock);
- WiFiClass::_state[_sock] = NA_STATE;
-
- int count = 0;
- // wait maximum 5 secs for the connection to close
- while (status() != CLOSED && ++count < 50)
- delay(100);
-
- _sock = 255;
-}
-
-uint8_t WiFiClient::connected() {
-
- if (_sock == 255) {
- return 0;
- } else {
- uint8_t s = status();
-
- return !(s == LISTEN || s == CLOSED || s == FIN_WAIT_1 ||
- s == FIN_WAIT_2 || s == TIME_WAIT ||
- s == SYN_SENT || s== SYN_RCVD ||
- (s == CLOSE_WAIT));
- }
-}
-
-uint8_t WiFiClient::status() {
- if (_sock == 255) {
- return CLOSED;
- } else {
- return ServerDrv::getClientState(_sock);
- }
-}
-
-WiFiClient::operator bool() {
- return _sock != 255;
-}
-
-// Private Methods
-uint8_t WiFiClient::getFirstSocket()
-{
- for (int i = 0; i < MAX_SOCK_NUM; i++) {
- if (WiFiClass::_state[i] == NA_STATE)
- {
- return i;
- }
- }
- return SOCK_NOT_AVAIL;
-}
-
diff --git a/libraries/WiFi/WiFiClient.h b/libraries/WiFi/WiFiClient.h
deleted file mode 100644
index 5a7f0f3..0000000
--- a/libraries/WiFi/WiFiClient.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef wificlient_h
-#define wificlient_h
-#include "Arduino.h"
-#include "Print.h"
-#include "Client.h"
-#include "IPAddress.h"
-
-class WiFiClient : public Client {
-
-public:
- WiFiClient();
- WiFiClient(uint8_t sock);
-
- uint8_t status();
- virtual int connect(IPAddress ip, uint16_t port);
- virtual int connect(const char *host, uint16_t port);
- virtual size_t write(uint8_t);
- virtual size_t write(const uint8_t *buf, size_t size);
- virtual int available();
- virtual int read();
- virtual int read(uint8_t *buf, size_t size);
- virtual int peek();
- virtual void flush();
- virtual void stop();
- virtual uint8_t connected();
- virtual operator bool();
-
- friend class WiFiServer;
-
- using Print::write;
-
-private:
- static uint16_t _srcport;
- uint8_t _sock; //not used
- uint16_t _socket;
-
- uint8_t getFirstSocket();
-};
-
-#endif
diff --git a/libraries/WiFi/WiFiServer.cpp b/libraries/WiFi/WiFiServer.cpp
deleted file mode 100644
index 2f03bc1..0000000
--- a/libraries/WiFi/WiFiServer.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-#include <string.h>
-#include "server_drv.h"
-
-extern "C" {
- #include "utility/debug.h"
-}
-
-#include "WiFi.h"
-#include "WiFiClient.h"
-#include "WiFiServer.h"
-
-WiFiServer::WiFiServer(uint16_t port)
-{
- _port = port;
-}
-
-void WiFiServer::begin()
-{
- uint8_t _sock = WiFiClass::getSocket();
- if (_sock != NO_SOCKET_AVAIL)
- {
- ServerDrv::startServer(_port, _sock);
- WiFiClass::_server_port[_sock] = _port;
- WiFiClass::_state[_sock] = _sock;
- }
-}
-
-WiFiClient WiFiServer::available(byte* status)
-{
- static int cycle_server_down = 0;
- const int TH_SERVER_DOWN = 50;
-
- for (int sock = 0; sock < MAX_SOCK_NUM; sock++)
- {
- if (WiFiClass::_server_port[sock] == _port)
- {
- WiFiClient client(sock);
- uint8_t _status = client.status();
- uint8_t _ser_status = this->status();
-
- if (status != NULL)
- *status = _status;
-
- //server not in listen state, restart it
- if ((_ser_status == 0)&&(cycle_server_down++ > TH_SERVER_DOWN))
- {
- ServerDrv::startServer(_port, sock);
- cycle_server_down = 0;
- }
-
- if (_status == ESTABLISHED)
- {
- return client; //TODO
- }
- }
- }
-
- return WiFiClient(255);
-}
-
-uint8_t WiFiServer::status() {
- return ServerDrv::getServerState(0);
-}
-
-
-size_t WiFiServer::write(uint8_t b)
-{
- return write(&b, 1);
-}
-
-size_t WiFiServer::write(const uint8_t *buffer, size_t size)
-{
- size_t n = 0;
-
- for (int sock = 0; sock < MAX_SOCK_NUM; sock++)
- {
- if (WiFiClass::_server_port[sock] != 0)
- {
- WiFiClient client(sock);
-
- if (WiFiClass::_server_port[sock] == _port &&
- client.status() == ESTABLISHED)
- {
- n+=client.write(buffer, size);
- }
- }
- }
- return n;
-}
diff --git a/libraries/WiFi/WiFiServer.h b/libraries/WiFi/WiFiServer.h
deleted file mode 100644
index 68b574c..0000000
--- a/libraries/WiFi/WiFiServer.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef wifiserver_h
-#define wifiserver_h
-
-extern "C" {
- #include "utility/wl_definitions.h"
-}
-
-#include "Server.h"
-
-class WiFiClient;
-
-class WiFiServer : public Server {
-private:
- uint16_t _port;
- void* pcb;
-public:
- WiFiServer(uint16_t);
- WiFiClient available(uint8_t* status = NULL);
- void begin();
- virtual size_t write(uint8_t);
- virtual size_t write(const uint8_t *buf, size_t size);
- uint8_t status();
-
- using Print::write;
-};
-
-#endif
diff --git a/libraries/WiFi/WiFiUdp.cpp b/libraries/WiFi/WiFiUdp.cpp
deleted file mode 100644
index 7020df8..0000000
--- a/libraries/WiFi/WiFiUdp.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-
-extern "C" {
- #include "utility/debug.h"
- #include "utility/wifi_spi.h"
-}
-#include <string.h>
-#include "server_drv.h"
-#include "wifi_drv.h"
-
-#include "WiFi.h"
-#include "WiFiUdp.h"
-#include "WiFiClient.h"
-#include "WiFiServer.h"
-
-
-/* Constructor */
-WiFiUDP::WiFiUDP() : _sock(NO_SOCKET_AVAIL) {}
-
-/* Start WiFiUDP socket, listening at local port PORT */
-uint8_t WiFiUDP::begin(uint16_t port) {
-
- uint8_t sock = WiFiClass::getSocket();
- if (sock != NO_SOCKET_AVAIL)
- {
- ServerDrv::startServer(port, sock, UDP_MODE);
- WiFiClass::_server_port[sock] = port;
- _sock = sock;
- _port = port;
- return 1;
- }
- return 0;
-
-}
-
-/* return number of bytes available in the current packet,
- will return zero if parsePacket hasn't been called yet */
-int WiFiUDP::available() {
- if (_sock != NO_SOCKET_AVAIL)
- {
- return ServerDrv::availData(_sock);
- }
- return 0;
-}
-
-/* Release any resources being used by this WiFiUDP instance */
-void WiFiUDP::stop()
-{
- if (_sock == NO_SOCKET_AVAIL)
- return;
-
- ServerDrv::stopClient(_sock);
-
- _sock = NO_SOCKET_AVAIL;
-}
-
-int WiFiUDP::beginPacket(const char *host, uint16_t port)
-{
- // Look up the host first
- int ret = 0;
- IPAddress remote_addr;
- if (WiFi.hostByName(host, remote_addr))
- {
- return beginPacket(remote_addr, port);
- }
- return ret;
-}
-
-int WiFiUDP::beginPacket(IPAddress ip, uint16_t port)
-{
- if (_sock == NO_SOCKET_AVAIL)
- _sock = WiFiClass::getSocket();
- if (_sock != NO_SOCKET_AVAIL)
- {
- ServerDrv::startClient(uint32_t(ip), port, _sock, UDP_MODE);
- WiFiClass::_state[_sock] = _sock;
- return 1;
- }
- return 0;
-}
-
-int WiFiUDP::endPacket()
-{
- return ServerDrv::sendUdpData(_sock);
-}
-
-size_t WiFiUDP::write(uint8_t byte)
-{
- return write(&byte, 1);
-}
-
-size_t WiFiUDP::write(const uint8_t *buffer, size_t size)
-{
- ServerDrv::insertDataBuf(_sock, buffer, size);
- return size;
-}
-
-int WiFiUDP::parsePacket()
-{
- return available();
-}
-
-int WiFiUDP::read()
-{
- uint8_t b;
- if (available())
- {
- ServerDrv::getData(_sock, &b);
- return b;
- }else{
- return -1;
- }
-}
-
-int WiFiUDP::read(unsigned char* buffer, size_t len)
-{
- if (available())
- {
- size_t size = 0;
- if (!ServerDrv::getDataBuf(_sock, buffer, &size))
- return -1;
- // TODO check if the buffer is too smal respect to buffer size
- return size;
- }else{
- return -1;
- }
-}
-
-int WiFiUDP::peek()
-{
- uint8_t b;
- if (!available())
- return -1;
-
- ServerDrv::getData(_sock, &b, 1);
- return b;
-}
-
-void WiFiUDP::flush()
-{
- while (available())
- read();
-}
-
-IPAddress WiFiUDP::remoteIP()
-{
- uint8_t _remoteIp[4] = {0};
- uint8_t _remotePort[2] = {0};
-
- WiFiDrv::getRemoteData(_sock, _remoteIp, _remotePort);
- IPAddress ip(_remoteIp);
- return ip;
-}
-
-uint16_t WiFiUDP::remotePort()
-{
- uint8_t _remoteIp[4] = {0};
- uint8_t _remotePort[2] = {0};
-
- WiFiDrv::getRemoteData(_sock, _remoteIp, _remotePort);
- uint16_t port = (_remotePort[0]<<8)+_remotePort[1];
- return port;
-}
-
diff --git a/libraries/WiFi/WiFiUdp.h b/libraries/WiFi/WiFiUdp.h
deleted file mode 100644
index 1b31693..0000000
--- a/libraries/WiFi/WiFiUdp.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef wifiudp_h
-#define wifiudp_h
-
-#include <Udp.h>
-
-#define UDP_TX_PACKET_MAX_SIZE 24
-
-class WiFiUDP : public UDP {
-private:
- uint8_t _sock; // socket ID for Wiz5100
- uint16_t _port; // local port to listen on
-
-public:
- WiFiUDP(); // Constructor
- virtual uint8_t begin(uint16_t); // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use
- virtual void stop(); // Finish with the UDP socket
-
- // Sending UDP packets
-
- // Start building up a packet to send to the remote host specific in ip and port
- // Returns 1 if successful, 0 if there was a problem with the supplied IP address or port
- virtual int beginPacket(IPAddress ip, uint16_t port);
- // Start building up a packet to send to the remote host specific in host and port
- // Returns 1 if successful, 0 if there was a problem resolving the hostname or port
- virtual int beginPacket(const char *host, uint16_t port);
- // Finish off this packet and send it
- // Returns 1 if the packet was sent successfully, 0 if there was an error
- virtual int endPacket();
- // Write a single byte into the packet
- virtual size_t write(uint8_t);
- // Write size bytes from buffer into the packet
- virtual size_t write(const uint8_t *buffer, size_t size);
-
- using Print::write;
-
- // Start processing the next available incoming packet
- // Returns the size of the packet in bytes, or 0 if no packets are available
- virtual int parsePacket();
- // Number of bytes remaining in the current packet
- virtual int available();
- // Read a single byte from the current packet
- virtual int read();
- // Read up to len bytes from the current packet and place them into buffer
- // Returns the number of bytes read, or 0 if none are available
- virtual int read(unsigned char* buffer, size_t len);
- // Read up to len characters from the current packet and place them into buffer
- // Returns the number of characters read, or 0 if none are available
- virtual int read(char* buffer, size_t len) { return read((unsigned char*)buffer, len); };
- // Return the next byte from the current packet without moving on to the next byte
- virtual int peek();
- virtual void flush(); // Finish reading the current packet
-
- // Return the IP address of the host who sent the current incoming packet
- virtual IPAddress remoteIP();
- // Return the port of the host who sent the current incoming packet
- virtual uint16_t remotePort();
-
- friend class WiFiDrv;
-};
-
-#endif
diff --git a/libraries/WiFi/examples/ConnectNoEncryption/ConnectNoEncryption.ino b/libraries/WiFi/examples/ConnectNoEncryption/ConnectNoEncryption.ino
deleted file mode 100644
index f42a7f3..0000000
--- a/libraries/WiFi/examples/ConnectNoEncryption/ConnectNoEncryption.ino
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
-
- This example connects to an unencrypted Wifi network.
- Then it prints the MAC address of the Wifi shield,
- the IP address obtained, and other network details.
-
- Circuit:
- * WiFi shield attached
-
- created 13 July 2010
- by dlf (Metodo2 srl)
- modified 31 May 2012
- by Tom Igoe
- */
- #include <WiFi.h>
-
-char ssid[] = "yourNetwork"; // the name of your network
-int status = WL_IDLE_STATUS; // the Wifi radio's status
-
-void setup() {
- //Initialize serial and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
-
- // check for the presence of the shield:
- if (WiFi.status() == WL_NO_SHIELD) {
- Serial.println("WiFi shield not present");
- // don't continue:
- while(true);
- }
-
- // attempt to connect to Wifi network:
- while ( status != WL_CONNECTED) {
- Serial.print("Attempting to connect to open SSID: ");
- Serial.println(ssid);
- status = WiFi.begin(ssid);
-
- // wait 10 seconds for connection:
- delay(10000);
- }
-
- // you're connected now, so print out the data:
- Serial.print("You're connected to the network");
- printCurrentNet();
- printWifiData();
-}
-
-void loop() {
- // check the network connection once every 10 seconds:
- delay(10000);
- printCurrentNet();
-}
-
-void printWifiData() {
- // print your WiFi shield's IP address:
- IPAddress ip = WiFi.localIP();
- Serial.print("IP Address: ");
- Serial.println(ip);
- Serial.println(ip);
-
- // print your MAC address:
- byte mac[6];
- WiFi.macAddress(mac);
- Serial.print("MAC address: ");
- Serial.print(mac[5],HEX);
- Serial.print(":");
- Serial.print(mac[4],HEX);
- Serial.print(":");
- Serial.print(mac[3],HEX);
- Serial.print(":");
- Serial.print(mac[2],HEX);
- Serial.print(":");
- Serial.print(mac[1],HEX);
- Serial.print(":");
- Serial.println(mac[0],HEX);
-
- // print your subnet mask:
- IPAddress subnet = WiFi.subnetMask();
- Serial.print("NetMask: ");
- Serial.println(subnet);
-
- // print your gateway address:
- IPAddress gateway = WiFi.gatewayIP();
- Serial.print("Gateway: ");
- Serial.println(gateway);
-}
-
-void printCurrentNet() {
- // print the SSID of the network you're attached to:
- Serial.print("SSID: ");
- Serial.println(WiFi.SSID());
-
- // print the MAC address of the router you're attached to:
- byte bssid[6];
- WiFi.BSSID(bssid);
- Serial.print("BSSID: ");
- Serial.print(bssid[5],HEX);
- Serial.print(":");
- Serial.print(bssid[4],HEX);
- Serial.print(":");
- Serial.print(bssid[3],HEX);
- Serial.print(":");
- Serial.print(bssid[2],HEX);
- Serial.print(":");
- Serial.print(bssid[1],HEX);
- Serial.print(":");
- Serial.println(bssid[0],HEX);
-
- // print the received signal strength:
- long rssi = WiFi.RSSI();
- Serial.print("signal strength (RSSI):");
- Serial.println(rssi);
-
- // print the encryption type:
- byte encryption = WiFi.encryptionType();
- Serial.print("Encryption Type:");
- Serial.println(encryption,HEX);
-}
-
diff --git a/libraries/WiFi/examples/ConnectWithWEP/ConnectWithWEP.ino b/libraries/WiFi/examples/ConnectWithWEP/ConnectWithWEP.ino
deleted file mode 100644
index 19736b5..0000000
--- a/libraries/WiFi/examples/ConnectWithWEP/ConnectWithWEP.ino
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
-
- This example connects to a WEP-encrypted Wifi network.
- Then it prints the MAC address of the Wifi shield,
- the IP address obtained, and other network details.
-
- If you use 40-bit WEP, you need a key that is 10 characters long,
- and the characters must be hexadecimal (0-9 or A-F).
- e.g. for 40-bit, ABBADEAF01 will work, but ABBADEAF won't work
- (too short) and ABBAISDEAF won't work (I and S are not
- hexadecimal characters).
-
- For 128-bit, you need a string that is 26 characters long.
- D0D0DEADF00DABBADEAFBEADED will work because it's 26 characters,
- all in the 0-9, A-F range.
-
- Circuit:
- * WiFi shield attached
-
- created 13 July 2010
- by dlf (Metodo2 srl)
- modified 31 May 2012
- by Tom Igoe
- */
-#include <WiFi.h>
-
-char ssid[] = "yourNetwork"; // your network SSID (name)
-char key[] = "D0D0DEADF00DABBADEAFBEADED"; // your network key
-int keyIndex = 0; // your network key Index number
-int status = WL_IDLE_STATUS; // the Wifi radio's status
-
-void setup() {
- //Initialize serial and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
-
- // check for the presence of the shield:
- if (WiFi.status() == WL_NO_SHIELD) {
- Serial.println("WiFi shield not present");
- // don't continue:
- while(true);
- }
-
- // attempt to connect to Wifi network:
- while ( status != WL_CONNECTED) {
- Serial.print("Attempting to connect to WEP network, SSID: ");
- Serial.println(ssid);
- status = WiFi.begin(ssid, keyIndex, key);
-
- // wait 10 seconds for connection:
- delay(10000);
- }
-
- // once you are connected :
- Serial.print("You're connected to the network");
- printCurrentNet();
- printWifiData();
-}
-
-void loop() {
- // check the network connection once every 10 seconds:
- delay(10000);
- printCurrentNet();
-}
-
-void printWifiData() {
- // print your WiFi shield's IP address:
- IPAddress ip = WiFi.localIP();
- Serial.print("IP Address: ");
- Serial.println(ip);
- Serial.println(ip);
-
- // print your MAC address:
- byte mac[6];
- WiFi.macAddress(mac);
- Serial.print("MAC address: ");
- Serial.print(mac[5],HEX);
- Serial.print(":");
- Serial.print(mac[4],HEX);
- Serial.print(":");
- Serial.print(mac[3],HEX);
- Serial.print(":");
- Serial.print(mac[2],HEX);
- Serial.print(":");
- Serial.print(mac[1],HEX);
- Serial.print(":");
- Serial.println(mac[0],HEX);
-}
-
-void printCurrentNet() {
- // print the SSID of the network you're attached to:
- Serial.print("SSID: ");
- Serial.println(WiFi.SSID());
-
- // print the MAC address of the router you're attached to:
- byte bssid[6];
- WiFi.BSSID(bssid);
- Serial.print("BSSID: ");
- Serial.print(bssid[5],HEX);
- Serial.print(":");
- Serial.print(bssid[4],HEX);
- Serial.print(":");
- Serial.print(bssid[3],HEX);
- Serial.print(":");
- Serial.print(bssid[2],HEX);
- Serial.print(":");
- Serial.print(bssid[1],HEX);
- Serial.print(":");
- Serial.println(bssid[0],HEX);
-
- // print the received signal strength:
- long rssi = WiFi.RSSI();
- Serial.print("signal strength (RSSI):");
- Serial.println(rssi);
-
- // print the encryption type:
- byte encryption = WiFi.encryptionType();
- Serial.print("Encryption Type:");
- Serial.println(encryption,HEX);
- Serial.println();
-}
-
-
-
diff --git a/libraries/WiFi/examples/ConnectWithWPA/ConnectWithWPA.ino b/libraries/WiFi/examples/ConnectWithWPA/ConnectWithWPA.ino
deleted file mode 100644
index fcc33ec..0000000
--- a/libraries/WiFi/examples/ConnectWithWPA/ConnectWithWPA.ino
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
-
- This example connects to an unencrypted Wifi network.
- Then it prints the MAC address of the Wifi shield,
- the IP address obtained, and other network details.
-
- Circuit:
- * WiFi shield attached
-
- created 13 July 2010
- by dlf (Metodo2 srl)
- modified 31 May 2012
- by Tom Igoe
- */
- #include <WiFi.h>
-
-char ssid[] = "yourNetwork"; // your network SSID (name)
-char pass[] = "secretPassword"; // your network password
-int status = WL_IDLE_STATUS; // the Wifi radio's status
-
-void setup() {
- //Initialize serial and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
-
- // check for the presence of the shield:
- if (WiFi.status() == WL_NO_SHIELD) {
- Serial.println("WiFi shield not present");
- // don't continue:
- while(true);
- }
-
- // attempt to connect to Wifi network:
- while ( status != WL_CONNECTED) {
- Serial.print("Attempting to connect to WPA SSID: ");
- Serial.println(ssid);
- // Connect to WPA/WPA2 network:
- status = WiFi.begin(ssid, pass);
-
- // wait 10 seconds for connection:
- delay(10000);
- }
-
- // you're connected now, so print out the data:
- Serial.print("You're connected to the network");
- printCurrentNet();
- printWifiData();
-
-}
-
-void loop() {
- // check the network connection once every 10 seconds:
- delay(10000);
- printCurrentNet();
-}
-
-void printWifiData() {
- // print your WiFi shield's IP address:
- IPAddress ip = WiFi.localIP();
- Serial.print("IP Address: ");
- Serial.println(ip);
- Serial.println(ip);
-
- // print your MAC address:
- byte mac[6];
- WiFi.macAddress(mac);
- Serial.print("MAC address: ");
- Serial.print(mac[5],HEX);
- Serial.print(":");
- Serial.print(mac[4],HEX);
- Serial.print(":");
- Serial.print(mac[3],HEX);
- Serial.print(":");
- Serial.print(mac[2],HEX);
- Serial.print(":");
- Serial.print(mac[1],HEX);
- Serial.print(":");
- Serial.println(mac[0],HEX);
-
-}
-
-void printCurrentNet() {
- // print the SSID of the network you're attached to:
- Serial.print("SSID: ");
- Serial.println(WiFi.SSID());
-
- // print the MAC address of the router you're attached to:
- byte bssid[6];
- WiFi.BSSID(bssid);
- Serial.print("BSSID: ");
- Serial.print(bssid[5],HEX);
- Serial.print(":");
- Serial.print(bssid[4],HEX);
- Serial.print(":");
- Serial.print(bssid[3],HEX);
- Serial.print(":");
- Serial.print(bssid[2],HEX);
- Serial.print(":");
- Serial.print(bssid[1],HEX);
- Serial.print(":");
- Serial.println(bssid[0],HEX);
-
- // print the received signal strength:
- long rssi = WiFi.RSSI();
- Serial.print("signal strength (RSSI):");
- Serial.println(rssi);
-
- // print the encryption type:
- byte encryption = WiFi.encryptionType();
- Serial.print("Encryption Type:");
- Serial.println(encryption,HEX);
- Serial.println();
-}
-
diff --git a/libraries/WiFi/examples/ScanNetworks/ScanNetworks.ino b/libraries/WiFi/examples/ScanNetworks/ScanNetworks.ino
deleted file mode 100644
index 93b3000..0000000
--- a/libraries/WiFi/examples/ScanNetworks/ScanNetworks.ino
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
-
- This example prints the Wifi shield's MAC address, and
- scans for available Wifi networks using the Wifi shield.
- Every ten seconds, it scans again. It doesn't actually
- connect to any network, so no encryption scheme is specified.
-
- Circuit:
- * WiFi shield attached
-
- created 13 July 2010
- by dlf (Metodo2 srl)
- modified 21 Junn 2012
- by Tom Igoe and Jaymes Dec
- */
-
-
-#include <SPI.h>
-#include <WiFi.h>
-
-void setup() {
- //Initialize serial and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
-
- // check for the presence of the shield:
- if (WiFi.status() == WL_NO_SHIELD) {
- Serial.println("WiFi shield not present");
- // don't continue:
- while(true);
- }
-
- // Print WiFi MAC address:
- printMacAddress();
-
- // scan for existing networks:
- Serial.println("Scanning available networks...");
- listNetworks();
-}
-
-void loop() {
- delay(10000);
- // scan for existing networks:
- Serial.println("Scanning available networks...");
- listNetworks();
-}
-
-void printMacAddress() {
- // the MAC address of your Wifi shield
- byte mac[6];
-
- // print your MAC address:
- WiFi.macAddress(mac);
- Serial.print("MAC: ");
- Serial.print(mac[5],HEX);
- Serial.print(":");
- Serial.print(mac[4],HEX);
- Serial.print(":");
- Serial.print(mac[3],HEX);
- Serial.print(":");
- Serial.print(mac[2],HEX);
- Serial.print(":");
- Serial.print(mac[1],HEX);
- Serial.print(":");
- Serial.println(mac[0],HEX);
-}
-
-void listNetworks() {
- // scan for nearby networks:
- Serial.println("** Scan Networks **");
- int numSsid = WiFi.scanNetworks();
- if (numSsid == -1)
- {
- Serial.println("Couldn't get a wifi connection");
- while(true);
- }
-
- // print the list of networks seen:
- Serial.print("number of available networks:");
- Serial.println(numSsid);
-
- // print the network number and name for each network found:
- for (int thisNet = 0; thisNet<numSsid; thisNet++) {
- Serial.print(thisNet);
- Serial.print(") ");
- Serial.print(WiFi.SSID(thisNet));
- Serial.print("\tSignal: ");
- Serial.print(WiFi.RSSI(thisNet));
- Serial.print(" dBm");
- Serial.print("\tEncryption: ");
- printEncryptionType(WiFi.encryptionType(thisNet));
- }
-}
-
-void printEncryptionType(int thisType) {
- // read the encryption type and print out the name:
- switch (thisType) {
- case ENC_TYPE_WEP:
- Serial.println("WEP");
- break;
- case ENC_TYPE_TKIP:
- Serial.println("WPA");
- break;
- case ENC_TYPE_CCMP:
- Serial.println("WPA2");
- break;
- case ENC_TYPE_NONE:
- Serial.println("None");
- break;
- case ENC_TYPE_AUTO:
- Serial.println("Auto");
- break;
- }
-}
-
-
-
diff --git a/libraries/WiFi/examples/SimpleWebServerWiFi/SimpleWebServerWiFi.ino b/libraries/WiFi/examples/SimpleWebServerWiFi/SimpleWebServerWiFi.ino
deleted file mode 100644
index cdb4e62..0000000
--- a/libraries/WiFi/examples/SimpleWebServerWiFi/SimpleWebServerWiFi.ino
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- WiFi Web Server LED Blink
-
- A simple web server that lets you blink an LED via the web.
- This sketch will print the IP address of your WiFi Shield (once connected)
- to the Serial monitor. From there, you can open that address in a web browser
- to turn on and off the LED on pin 9.
-
- If the IP address of your shield is yourAddress:
- http://yourAddress/H turns the LED on
- http://yourAddress/L turns it off
-
- This example is written for a network using WPA encryption. For
- WEP or WPA, change the Wifi.begin() call accordingly.
-
- Circuit:
- * WiFi shield attached
- * LED attached to pin 9
-
- created 25 Nov 2012
- by Tom Igoe
- */
-#include <SPI.h>
-#include <WiFi.h>
-
-char ssid[] = "yourNetwork"; // your network SSID (name)
-char pass[] = "secretPassword"; // your network password
-int keyIndex = 0; // your network key Index number (needed only for WEP)
-
-int status = WL_IDLE_STATUS;
-WiFiServer server(80);
-
-void setup() {
- Serial.begin(9600); // initialize serial communication
- pinMode(9, OUTPUT); // set the LED pin mode
-
- // check for the presence of the shield:
- if (WiFi.status() == WL_NO_SHIELD) {
- Serial.println("WiFi shield not present");
- while(true); // don't continue
- }
-
- // attempt to connect to Wifi network:
- while ( status != WL_CONNECTED) {
- Serial.print("Attempting to connect to Network named: ");
- Serial.println(ssid); // print the network name (SSID);
-
- // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
- status = WiFi.begin(ssid, pass);
- // wait 10 seconds for connection:
- delay(10000);
- }
- server.begin(); // start the web server on port 80
- printWifiStatus(); // you're connected now, so print out the status
-}
-
-
-void loop() {
- WiFiClient client = server.available(); // listen for incoming clients
-
- if (client) { // if you get a client,
- Serial.println("new client"); // print a message out the serial port
- String currentLine = ""; // make a String to hold incoming data from the client
- while (client.connected()) { // loop while the client's connected
- if (client.available()) { // if there's bytes to read from the client,
- char c = client.read(); // read a byte, then
- Serial.write(c); // print it out the serial monitor
- if (c == '\n') { // if the byte is a newline character
-
- // if the current line is blank, you got two newline characters in a row.
- // that's the end of the client HTTP request, so send a response:
- if (currentLine.length() == 0) {
- // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
- // and a content-type so the client knows what's coming, then a blank line:
- client.println("HTTP/1.1 200 OK");
- client.println("Content-type:text/html");
- client.println();
-
- // the content of the HTTP response follows the header:
- client.print("Click <a href=\"/H\">here</a> turn the LED on pin 9 on<br>");
- client.print("Click <a href=\"/L\">here</a> turn the LED on pin 9 off<br>");
-
- // The HTTP response ends with another blank line:
- client.println();
- // break out of the while loop:
- break;
- }
- else { // if you got a newline, then clear currentLine:
- currentLine = "";
- }
- }
- else if (c != '\r') { // if you got anything else but a carriage return character,
- currentLine += c; // add it to the end of the currentLine
- }
-
- // Check to see if the client request was "GET /H" or "GET /L":
- if (currentLine.endsWith("GET /H")) {
- digitalWrite(9, HIGH); // GET /H turns the LED on
- }
- if (currentLine.endsWith("GET /L")) {
- digitalWrite(9, LOW); // GET /L turns the LED off
- }
- }
- }
- // close the connection:
- client.stop();
- Serial.println("client disonnected");
- }
-}
-
-void printWifiStatus() {
- // print the SSID of the network you're attached to:
- Serial.print("SSID: ");
- Serial.println(WiFi.SSID());
-
- // print your WiFi shield's IP address:
- IPAddress ip = WiFi.localIP();
- Serial.print("IP Address: ");
- Serial.println(ip);
-
- // print the received signal strength:
- long rssi = WiFi.RSSI();
- Serial.print("signal strength (RSSI):");
- Serial.print(rssi);
- Serial.println(" dBm");
- // print where to go in a browser:
- Serial.print("To see this page in action, open a browser to http://");
- Serial.println(ip);
-}
diff --git a/libraries/WiFi/examples/WiFiChatServer/WiFiChatServer.ino b/libraries/WiFi/examples/WiFiChatServer/WiFiChatServer.ino
deleted file mode 100644
index e4b1d1a..0000000
--- a/libraries/WiFi/examples/WiFiChatServer/WiFiChatServer.ino
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- Chat Server
-
- A simple server that distributes any incoming messages to all
- connected clients. To use telnet to your device's IP address and type.
- You can see the client's input in the serial monitor as well.
-
- This example is written for a network using WPA encryption. For
- WEP or WPA, change the Wifi.begin() call accordingly.
-
-
- Circuit:
- * WiFi shield attached
-
- created 18 Dec 2009
- by David A. Mellis
- modified 31 May 2012
- by Tom Igoe
-
- */
-
-#include <SPI.h>
-#include <WiFi.h>
-
-char ssid[] = "yourNetwork"; // your network SSID (name)
-char pass[] = "secretPassword"; // your network password (use for WPA, or use as key for WEP)
-
-int keyIndex = 0; // your network key Index number (needed only for WEP)
-
-int status = WL_IDLE_STATUS;
-
-WiFiServer server(23);
-
-boolean alreadyConnected = false; // whether or not the client was connected previously
-
-void setup() {
- //Initialize serial and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
-
- // check for the presence of the shield:
- if (WiFi.status() == WL_NO_SHIELD) {
- Serial.println("WiFi shield not present");
- // don't continue:
- while(true);
- }
-
- // attempt to connect to Wifi network:
- while ( status != WL_CONNECTED) {
- Serial.print("Attempting to connect to SSID: ");
- Serial.println(ssid);
- // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
- status = WiFi.begin(ssid, pass);
-
- // wait 10 seconds for connection:
- delay(10000);
- }
- // start the server:
- server.begin();
- // you're connected now, so print out the status:
- printWifiStatus();
- }
-
-
-void loop() {
- // wait for a new client:
- WiFiClient client = server.available();
-
-
- // when the client sends the first byte, say hello:
- if (client) {
- if (!alreadyConnected) {
- // clead out the input buffer:
- client.flush();
- Serial.println("We have a new client");
- client.println("Hello, client!");
- alreadyConnected = true;
- }
-
- if (client.available() > 0) {
- // read the bytes incoming from the client:
- char thisChar = client.read();
- // echo the bytes back to the client:
- server.write(thisChar);
- // echo the bytes to the server as well:
- Serial.write(thisChar);
- }
- }
-}
-
-
-void printWifiStatus() {
- // print the SSID of the network you're attached to:
- Serial.print("SSID: ");
- Serial.println(WiFi.SSID());
-
- // print your WiFi shield's IP address:
- IPAddress ip = WiFi.localIP();
- Serial.print("IP Address: ");
- Serial.println(ip);
-
- // print the received signal strength:
- long rssi = WiFi.RSSI();
- Serial.print("signal strength (RSSI):");
- Serial.print(rssi);
- Serial.println(" dBm");
-}
-
-
diff --git a/libraries/WiFi/examples/WiFiPachubeClient/WiFiPachubeClient.ino b/libraries/WiFi/examples/WiFiPachubeClient/WiFiPachubeClient.ino
deleted file mode 100644
index f8ffc07..0000000
--- a/libraries/WiFi/examples/WiFiPachubeClient/WiFiPachubeClient.ino
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- Wifi Pachube sensor client
-
- This sketch connects an analog sensor to Pachube (http://www.pachube.com)
- using an Arduino Wifi shield.
-
- This example is written for a network using WPA encryption. For
- WEP or WPA, change the Wifi.begin() call accordingly.
-
- This example has been updated to use version 2.0 of the Pachube API.
- To make it work, create a feed with a datastream, and give it the ID
- sensor1. Or change the code below to match your feed.
-
- Circuit:
- * Analog sensor attached to analog in 0
- * Wifi shield attached to pins 10, 11, 12, 13
-
- created 13 Mar 2012
- modified 31 May 2012
- by Tom Igoe
- modified 8 Sept 2012
- by Scott Fitzgerald
-
- This code is in the public domain.
-
- */
-#include <SPI.h>
-#include <WiFi.h>
-
-#define APIKEY "YOUR API KEY GOES HERE" // replace your pachube api key here
-#define FEEDID 00000 // replace your feed ID
-#define USERAGENT "My Arduino Project" // user agent is the project name
-
-char ssid[] = "yourNetwork"; // your network SSID (name)
-char pass[] = "secretPassword"; // your network password
-
-int status = WL_IDLE_STATUS;
-
-// initialize the library instance:
-WiFiClient client;
-// if you don't want to use DNS (and reduce your sketch size)
-// use the numeric IP instead of the name for the server:
-IPAddress server(216,52,233,121); // numeric IP for api.pachube.com
-//char server[] = "api.pachube.com"; // name address for pachube API
-
-unsigned long lastConnectionTime = 0; // last time you connected to the server, in milliseconds
-boolean lastConnected = false; // state of the connection last time through the main loop
-const unsigned long postingInterval = 10*1000; //delay between updates to pachube.com
-
-void setup() {
- //Initialize serial and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
-
- // check for the presence of the shield:
- if (WiFi.status() == WL_NO_SHIELD) {
- Serial.println("WiFi shield not present");
- // don't continue:
- while(true);
- }
-
- // attempt to connect to Wifi network:
- while ( status != WL_CONNECTED) {
- Serial.print("Attempting to connect to SSID: ");
- Serial.println(ssid);
- // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
- status = WiFi.begin(ssid, pass);
-
- // wait 10 seconds for connection:
- delay(10000);
- }
- // you're connected now, so print out the status:
- printWifiStatus();
-}
-
-
-void loop() {
- // read the analog sensor:
- int sensorReading = analogRead(A0);
-
- // if there's incoming data from the net connection.
- // send it out the serial port. This is for debugging
- // purposes only:
- while (client.available()) {
- char c = client.read();
- Serial.print(c);
- }
-
- // if there's no net connection, but there was one last time
- // through the loop, then stop the client:
- if (!client.connected() && lastConnected) {
- Serial.println();
- Serial.println("disconnecting.");
- client.stop();
- }
-
- // if you're not connected, and ten seconds have passed since
- // your last connection, then connect again and send data:
- if(!client.connected() && (millis() - lastConnectionTime > postingInterval)) {
- sendData(sensorReading);
- }
- // store the state of the connection for next time through
- // the loop:
- lastConnected = client.connected();
-}
-
-// this method makes a HTTP connection to the server:
-void sendData(int thisData) {
- // if there's a successful connection:
- if (client.connect(server, 80)) {
- Serial.println("connecting...");
- // send the HTTP PUT request:
- client.print("PUT /v2/feeds/");
- client.print(FEEDID);
- client.println(".csv HTTP/1.1");
- client.println("Host: api.pachube.com");
- client.print("X-ApiKey: ");
- client.println(APIKEY);
- client.print("User-Agent: ");
- client.println(USERAGENT);
- client.print("Content-Length: ");
-
- // calculate the length of the sensor reading in bytes:
- // 8 bytes for "sensor1," + number of digits of the data:
- int thisLength = 8 + getLength(thisData);
- client.println(thisLength);
-
- // last pieces of the HTTP PUT request:
- client.println("Content-Type: text/csv");
- client.println("Connection: close");
- client.println();
-
- // here's the actual content of the PUT request:
- client.print("sensor1,");
- client.println(thisData);
-
- }
- else {
- // if you couldn't make a connection:
- Serial.println("connection failed");
- Serial.println();
- Serial.println("disconnecting.");
- client.stop();
- }
- // note the time that the connection was made or attempted:
- lastConnectionTime = millis();
-}
-
-
-// This method calculates the number of digits in the
-// sensor reading. Since each digit of the ASCII decimal
-// representation is a byte, the number of digits equals
-// the number of bytes:
-
-int getLength(int someValue) {
- // there's at least one byte:
- int digits = 1;
- // continually divide the value by ten,
- // adding one to the digit count for each
- // time you divide, until you're at 0:
- int dividend = someValue /10;
- while (dividend > 0) {
- dividend = dividend /10;
- digits++;
- }
- // return the number of digits:
- return digits;
-}
-
-void printWifiStatus() {
- // print the SSID of the network you're attached to:
- Serial.print("SSID: ");
- Serial.println(WiFi.SSID());
-
- // print your WiFi shield's IP address:
- IPAddress ip = WiFi.localIP();
- Serial.print("IP Address: ");
- Serial.println(ip);
-
- // print the received signal strength:
- long rssi = WiFi.RSSI();
- Serial.print("signal strength (RSSI):");
- Serial.print(rssi);
- Serial.println(" dBm");
-}
-
-
-
diff --git a/libraries/WiFi/examples/WiFiPachubeClientString/WiFiPachubeClientString.ino b/libraries/WiFi/examples/WiFiPachubeClientString/WiFiPachubeClientString.ino
deleted file mode 100644
index 243fe83..0000000
--- a/libraries/WiFi/examples/WiFiPachubeClientString/WiFiPachubeClientString.ino
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- Wifi Pachube sensor client with Strings
-
- This sketch connects an analog sensor to Pachube (http://www.pachube.com)
- using a Arduino Wifi shield.
-
- This example is written for a network using WPA encryption. For
- WEP or WPA, change the Wifi.begin() call accordingly.
-
- This example has been updated to use version 2.0 of the pachube.com API.
- To make it work, create a feed with a datastream, and give it the ID
- sensor1. Or change the code below to match your feed.
-
- This example uses the String library, which is part of the Arduino core from
- version 0019.
-
- Circuit:
- * Analog sensor attached to analog in 0
- * Wifi shield attached to pins 10, 11, 12, 13
-
- created 16 Mar 2012
- modified 31 May 2012
- by Tom Igoe
- modified 8 Sept 2012
- by Scott Fitzgerald
-
- This code is in the public domain.
-
- */
-
-#include <SPI.h>
-#include <WiFi.h>
-
-#define APIKEY "YOUR API KEY GOES HERE" // replace your pachube api key here
-#define FEEDID 00000 // replace your feed ID
-#define USERAGENT "My Arduino Project" // user agent is the project name
-
-char ssid[] = "yourNetwork"; // your network SSID (name)
-char pass[] = "secretPassword"; // your network password
-
-int status = WL_IDLE_STATUS;
-
-// initialize the library instance:
-WiFiClient client;
-
-// if you don't want to use DNS (and reduce your sketch size)
-// use the numeric IP instead of the name for the server:
-//IPAddress server(216,52,233,121); // numeric IP for api.pachube.com
-char server[] = "api.pachube.com"; // name address for pachube API
-
-unsigned long lastConnectionTime = 0; // last time you connected to the server, in milliseconds
-boolean lastConnected = false; // state of the connection last time through the main loop
-const unsigned long postingInterval = 10*1000; //delay between updates to pachube.com
-
-void setup() {
- //Initialize serial and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
-
- // check for the presence of the shield:
- if (WiFi.status() == WL_NO_SHIELD) {
- Serial.println("WiFi shield not present");
- // don't continue:
- while(true);
- }
-
- // attempt to connect to Wifi network:
- while ( status != WL_CONNECTED) {
- Serial.print("Attempting to connect to SSID: ");
- Serial.println(ssid);
- // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
- status = WiFi.begin(ssid, pass);
-
- // wait 10 seconds for connection:
- delay(10000);
- }
- // you're connected now, so print out the status:
- printWifiStatus();
-}
-
-void loop() {
- // read the analog sensor:
- int sensorReading = analogRead(A0);
- // convert the data to a String to send it:
-
- String dataString = "sensor1,";
- dataString += sensorReading;
-
- // you can append multiple readings to this String if your
- // pachube feed is set up to handle multiple values:
- int otherSensorReading = analogRead(A1);
- dataString += "\nsensor2,";
- dataString += otherSensorReading;
-
- // if there's incoming data from the net connection.
- // send it out the serial port. This is for debugging
- // purposes only:
- while (client.available()) {
- char c = client.read();
- Serial.print(c);
- }
-
- // if there's no net connection, but there was one last time
- // through the loop, then stop the client:
- if (!client.connected() && lastConnected) {
- Serial.println();
- Serial.println("disconnecting.");
- client.stop();
- }
-
- // if you're not connected, and ten seconds have passed since
- // your last connection, then connect again and send data:
- if(!client.connected() && (millis() - lastConnectionTime > postingInterval)) {
- sendData(dataString);
- }
- // store the state of the connection for next time through
- // the loop:
- lastConnected = client.connected();
-}
-
-// this method makes a HTTP connection to the server:
-void sendData(String thisData) {
- // if there's a successful connection:
- if (client.connect(server, 80)) {
- Serial.println("connecting...");
- // send the HTTP PUT request:
- client.print("PUT /v2/feeds/");
- client.print(FEEDID);
- client.println(".csv HTTP/1.1");
- client.println("Host: api.pachube.com");
- client.print("X-ApiKey: ");
- client.println(APIKEY);
- client.print("User-Agent: ");
- client.println(USERAGENT);
- client.print("Content-Length: ");
- client.println(thisData.length());
-
- // last pieces of the HTTP PUT request:
- client.println("Content-Type: text/csv");
- client.println("Connection: close");
- client.println();
-
- // here's the actual content of the PUT request:
- client.println(thisData);
- }
- else {
- // if you couldn't make a connection:
- Serial.println("connection failed");
- Serial.println();
- Serial.println("disconnecting.");
- client.stop();
- }
- // note the time that the connection was made or attempted:
- lastConnectionTime = millis();
-}
-
-
-void printWifiStatus() {
- // print the SSID of the network you're attached to:
- Serial.print("SSID: ");
- Serial.println(WiFi.SSID());
-
- // print your WiFi shield's IP address:
- IPAddress ip = WiFi.localIP();
- Serial.print("IP Address: ");
- Serial.println(ip);
-
- // print the received signal strength:
- long rssi = WiFi.RSSI();
- Serial.print("signal strength (RSSI):");
- Serial.print(rssi);
- Serial.println(" dBm");
-}
-
-
diff --git a/libraries/WiFi/examples/WiFiTwitterClient/WiFiTwitterClient.ino b/libraries/WiFi/examples/WiFiTwitterClient/WiFiTwitterClient.ino
deleted file mode 100644
index d500cfb..0000000
--- a/libraries/WiFi/examples/WiFiTwitterClient/WiFiTwitterClient.ino
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- Wifi Twitter Client with Strings
-
- This sketch connects to Twitter using using an Arduino WiFi shield.
- It parses the XML returned, and looks for <text>this is a tweet</text>
-
- This example is written for a network using WPA encryption. For
- WEP or WPA, change the Wifi.begin() call accordingly.
-
- This example uses the String library, which is part of the Arduino core from
- version 0019.
-
- Circuit:
- * WiFi shield attached to pins 10, 11, 12, 13
-
- created 23 apr 2012
- modified 31 May 2012
- by Tom Igoe
-
- This code is in the public domain.
-
- */
-#include <SPI.h>
-#include <WiFi.h>
-
-char ssid[] = "yourNetwork"; // your network SSID (name)
-char pass[] = "password"; // your network password (use for WPA, or use as key for WEP)
-int keyIndex = 0; // your network key Index number (needed only for WEP)
-
-int status = WL_IDLE_STATUS; // status of the wifi connection
-
-// initialize the library instance:
-WiFiClient client;
-
-const unsigned long requestInterval = 30*1000; // delay between requests; 30 seconds
-
-// if you don't want to use DNS (and reduce your sketch size)
-// use the numeric IP instead of the name for the server:
-//IPAddress server(199,59,149,200); // numeric IP for api.twitter.com
-char server[] = "api.twitter.com"; // name address for twitter API
-
-boolean requested; // whether you've made a request since connecting
-unsigned long lastAttemptTime = 0; // last time you connected to the server, in milliseconds
-
-String currentLine = ""; // string to hold the text from server
-String tweet = ""; // string to hold the tweet
-boolean readingTweet = false; // if you're currently reading the tweet
-
-void setup() {
- // reserve space for the strings:
- currentLine.reserve(256);
- tweet.reserve(150);
- //Initialize serial and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
-
- // check for the presence of the shield:
- if (WiFi.status() == WL_NO_SHIELD) {
- Serial.println("WiFi shield not present");
- // don't continue:
- while(true);
- }
-
- // attempt to connect to Wifi network:
- while ( status != WL_CONNECTED) {
- Serial.print("Attempting to connect to SSID: ");
- Serial.println(ssid);
- // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
- status = WiFi.begin(ssid, pass);
-
- // wait 10 seconds for connection:
- delay(10000);
- }
- // you're connected now, so print out the status:
- printWifiStatus();
- connectToServer();
-}
-
-void loop()
-{
- if (client.connected()) {
- if (client.available()) {
- // read incoming bytes:
- char inChar = client.read();
-
- // add incoming byte to end of line:
- currentLine += inChar;
-
- // if you get a newline, clear the line:
- if (inChar == '\n') {
- currentLine = "";
- }
- // if the current line ends with <text>, it will
- // be followed by the tweet:
- if ( currentLine.endsWith("<text>")) {
- // tweet is beginning. Clear the tweet string:
- readingTweet = true;
- tweet = "";
- // break out of the loop so this character isn't added to the tweet:
- return;
- }
- // if you're currently reading the bytes of a tweet,
- // add them to the tweet String:
- if (readingTweet) {
- if (inChar != '<') {
- tweet += inChar;
- }
- else {
- // if you got a "<" character,
- // you've reached the end of the tweet:
- readingTweet = false;
- Serial.println(tweet);
- // close the connection to the server:
- client.stop();
- }
- }
- }
- }
- else if (millis() - lastAttemptTime > requestInterval) {
- // if you're not connected, and two minutes have passed since
- // your last connection, then attempt to connect again:
- connectToServer();
- }
-}
-
-void connectToServer() {
- // attempt to connect, and wait a millisecond:
- Serial.println("connecting to server...");
- if (client.connect(server, 80)) {
- Serial.println("making HTTP request...");
- // make HTTP GET request to twitter:
- client.println("GET /1/statuses/user_timeline.xml?screen_name=arduino HTTP/1.1");
- client.println("Host: api.twitter.com");
- client.println("Connection: close");
- client.println();
- }
- // note the time of this connect attempt:
- lastAttemptTime = millis();
-}
-
-
-void printWifiStatus() {
- // print the SSID of the network you're attached to:
- Serial.print("SSID: ");
- Serial.println(WiFi.SSID());
-
- // print your WiFi shield's IP address:
- IPAddress ip = WiFi.localIP();
- Serial.print("IP Address: ");
- Serial.println(ip);
-
- // print the received signal strength:
- long rssi = WiFi.RSSI();
- Serial.print("signal strength (RSSI):");
- Serial.print(rssi);
- Serial.println(" dBm");
-}
-
-
-
-
diff --git a/libraries/WiFi/examples/WiFiUdpNtpClient/WiFiUdpNtpClient.ino b/libraries/WiFi/examples/WiFiUdpNtpClient/WiFiUdpNtpClient.ino
deleted file mode 100644
index dd8b003..0000000
--- a/libraries/WiFi/examples/WiFiUdpNtpClient/WiFiUdpNtpClient.ino
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
-
- Udp NTP Client
-
- Get the time from a Network Time Protocol (NTP) time server
- Demonstrates use of UDP sendPacket and ReceivePacket
- For more on NTP time servers and the messages needed to communicate with them,
- see http://en.wikipedia.org/wiki/Network_Time_Protocol
-
- created 4 Sep 2010
- by Michael Margolis
- modified 9 Apr 2012
- by Tom Igoe
-
- This code is in the public domain.
-
- */
-
-#include <SPI.h>
-#include <WiFi.h>
-#include <WiFiUdp.h>
-
-int status = WL_IDLE_STATUS;
-char ssid[] = "mynetwork"; // your network SSID (name)
-char pass[] = "mypassword"; // your network password
-int keyIndex = 0; // your network key Index number (needed only for WEP)
-
-unsigned int localPort = 2390; // local port to listen for UDP packets
-
-IPAddress timeServer(129, 6, 15, 28); // time.nist.gov NTP server
-
-const int NTP_PACKET_SIZE = 48; // NTP time stamp is in the first 48 bytes of the message
-
-byte packetBuffer[ NTP_PACKET_SIZE]; //buffer to hold incoming and outgoing packets
-
-// A UDP instance to let us send and receive packets over UDP
-WiFiUDP Udp;
-
-void setup()
-{
- // Open serial communications and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
-
- // check for the presence of the shield:
- if (WiFi.status() == WL_NO_SHIELD) {
- Serial.println("WiFi shield not present");
- // don't continue:
- while(true);
- }
-
-
- // attempt to connect to Wifi network:
- while ( status != WL_CONNECTED) {
- Serial.print("Attempting to connect to SSID: ");
- Serial.println(ssid);
- // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
- status = WiFi.begin(ssid, pass);
-
- // wait 10 seconds for connection:
- delay(10000);
- }
-
- Serial.println("Connected to wifi");
- printWifiStatus();
-
- Serial.println("\nStarting connection to server...");
- Udp.begin(localPort);
-}
-
-void loop()
-{
- sendNTPpacket(timeServer); // send an NTP packet to a time server
- // wait to see if a reply is available
- delay(1000);
- Serial.println( Udp.parsePacket() );
- if ( Udp.parsePacket() ) {
- Serial.println("packet received");
- // We've received a packet, read the data from it
- Udp.read(packetBuffer,NTP_PACKET_SIZE); // read the packet into the buffer
-
- //the timestamp starts at byte 40 of the received packet and is four bytes,
- // or two words, long. First, esxtract the two words:
-
- unsigned long highWord = word(packetBuffer[40], packetBuffer[41]);
- unsigned long lowWord = word(packetBuffer[42], packetBuffer[43]);
- // combine the four bytes (two words) into a long integer
- // this is NTP time (seconds since Jan 1 1900):
- unsigned long secsSince1900 = highWord << 16 | lowWord;
- Serial.print("Seconds since Jan 1 1900 = " );
- Serial.println(secsSince1900);
-
- // now convert NTP time into everyday time:
- Serial.print("Unix time = ");
- // Unix time starts on Jan 1 1970. In seconds, that's 2208988800:
- const unsigned long seventyYears = 2208988800UL;
- // subtract seventy years:
- unsigned long epoch = secsSince1900 - seventyYears;
- // print Unix time:
- Serial.println(epoch);
-
-
- // print the hour, minute and second:
- Serial.print("The UTC time is "); // UTC is the time at Greenwich Meridian (GMT)
- Serial.print((epoch % 86400L) / 3600); // print the hour (86400 equals secs per day)
- Serial.print(':');
- if ( ((epoch % 3600) / 60) < 10 ) {
- // In the first 10 minutes of each hour, we'll want a leading '0'
- Serial.print('0');
- }
- Serial.print((epoch % 3600) / 60); // print the minute (3600 equals secs per minute)
- Serial.print(':');
- if ( (epoch % 60) < 10 ) {
- // In the first 10 seconds of each minute, we'll want a leading '0'
- Serial.print('0');
- }
- Serial.println(epoch %60); // print the second
- }
- // wait ten seconds before asking for the time again
- delay(10000);
-}
-
-// send an NTP request to the time server at the given address
-unsigned long sendNTPpacket(IPAddress& address)
-{
- //Serial.println("1");
- // set all bytes in the buffer to 0
- memset(packetBuffer, 0, NTP_PACKET_SIZE);
- // Initialize values needed to form NTP request
- // (see URL above for details on the packets)
- //Serial.println("2");
- packetBuffer[0] = 0b11100011; // LI, Version, Mode
- packetBuffer[1] = 0; // Stratum, or type of clock
- packetBuffer[2] = 6; // Polling Interval
- packetBuffer[3] = 0xEC; // Peer Clock Precision
- // 8 bytes of zero for Root Delay & Root Dispersion
- packetBuffer[12] = 49;
- packetBuffer[13] = 0x4E;
- packetBuffer[14] = 49;
- packetBuffer[15] = 52;
-
- //Serial.println("3");
-
- // all NTP fields have been given values, now
- // you can send a packet requesting a timestamp:
- Udp.beginPacket(address, 123); //NTP requests are to port 123
- //Serial.println("4");
- Udp.write(packetBuffer,NTP_PACKET_SIZE);
- //Serial.println("5");
- Udp.endPacket();
- //Serial.println("6");
-}
-
-
-void printWifiStatus() {
- // print the SSID of the network you're attached to:
- Serial.print("SSID: ");
- Serial.println(WiFi.SSID());
-
- // print your WiFi shield's IP address:
- IPAddress ip = WiFi.localIP();
- Serial.print("IP Address: ");
- Serial.println(ip);
-
- // print the received signal strength:
- long rssi = WiFi.RSSI();
- Serial.print("signal strength (RSSI):");
- Serial.print(rssi);
- Serial.println(" dBm");
-}
-
-
-
-
-
-
-
-
-
-
diff --git a/libraries/WiFi/examples/WiFiUdpSendReceiveString/WiFiUdpSendReceiveString.ino b/libraries/WiFi/examples/WiFiUdpSendReceiveString/WiFiUdpSendReceiveString.ino
deleted file mode 100644
index eb11295..0000000
--- a/libraries/WiFi/examples/WiFiUdpSendReceiveString/WiFiUdpSendReceiveString.ino
+++ /dev/null
@@ -1,112 +0,0 @@
-
-/*
- WiFi UDP Send and Receive String
-
- This sketch wait an UDP packet on localPort using a WiFi shield.
- When a packet is received an Acknowledge packet is sent to the client on port remotePort
-
- Circuit:
- * WiFi shield attached
-
- created 30 December 2012
- by dlf (Metodo2 srl)
-
- */
-
-
-#include <SPI.h>
-#include <WiFi.h>
-#include <WiFiUdp.h>
-
-int status = WL_IDLE_STATUS;
-char ssid[] = "yourNetwork"; // your network SSID (name)
-char pass[] = "secretPassword"; // your network password (use for WPA, or use as key for WEP)
-int keyIndex = 0; // your network key Index number (needed only for WEP)
-
-unsigned int localPort = 2390; // local port to listen on
-
-char packetBuffer[255]; //buffer to hold incoming packet
-char ReplyBuffer[] = "acknowledged"; // a string to send back
-
-WiFiUDP Udp;
-
-void setup() {
- //Initialize serial and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
-
- // check for the presence of the shield:
- if (WiFi.status() == WL_NO_SHIELD) {
- Serial.println("WiFi shield not present");
- // don't continue:
- while(true);
- }
-
- // attempt to connect to Wifi network:
- while ( status != WL_CONNECTED) {
- Serial.print("Attempting to connect to SSID: ");
- Serial.println(ssid);
- // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
- status = WiFi.begin(ssid);
-
- // wait 10 seconds for connection:
- delay(10000);
- }
- Serial.println("Connected to wifi");
- printWifiStatus();
-
- Serial.println("\nStarting connection to server...");
- // if you get a connection, report back via serial:
- Udp.begin(localPort);
-}
-
-void loop() {
-
- // if there's data available, read a packet
- int packetSize = Udp.parsePacket();
- if(packetSize)
- {
- Serial.print("Received packet of size ");
- Serial.println(packetSize);
- Serial.print("From ");
- IPAddress remoteIp = Udp.remoteIP();
- Serial.print(remoteIp);
- Serial.print(", port ");
- Serial.println(Udp.remotePort());
-
- // read the packet into packetBufffer
- int len = Udp.read(packetBuffer,255);
- if (len >0) packetBuffer[len]=0;
- Serial.println("Contents:");
- Serial.println(packetBuffer);
-
- // send a reply, to the IP address and port that sent us the packet we received
- Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
- Udp.write(ReplyBuffer);
- Udp.endPacket();
- }
-}
-
-
-void printWifiStatus() {
- // print the SSID of the network you're attached to:
- Serial.print("SSID: ");
- Serial.println(WiFi.SSID());
-
- // print your WiFi shield's IP address:
- IPAddress ip = WiFi.localIP();
- Serial.print("IP Address: ");
- Serial.println(ip);
-
- // print the received signal strength:
- long rssi = WiFi.RSSI();
- Serial.print("signal strength (RSSI):");
- Serial.print(rssi);
- Serial.println(" dBm");
-}
-
-
-
-
diff --git a/libraries/WiFi/examples/WiFiWebClient/WiFiWebClient.ino b/libraries/WiFi/examples/WiFiWebClient/WiFiWebClient.ino
deleted file mode 100644
index 310ec46..0000000
--- a/libraries/WiFi/examples/WiFiWebClient/WiFiWebClient.ino
+++ /dev/null
@@ -1,121 +0,0 @@
-
-/*
- Web client
-
- This sketch connects to a website (http://www.google.com)
- using a WiFi shield.
-
- This example is written for a network using WPA encryption. For
- WEP or WPA, change the Wifi.begin() call accordingly.
-
- This example is written for a network using WPA encryption. For
- WEP or WPA, change the Wifi.begin() call accordingly.
-
- Circuit:
- * WiFi shield attached
-
- created 13 July 2010
- by dlf (Metodo2 srl)
- modified 31 May 2012
- by Tom Igoe
- */
-
-
-#include <SPI.h>
-#include <WiFi.h>
-
-char ssid[] = "yourNetwork"; // your network SSID (name)
-char pass[] = "secretPassword"; // your network password (use for WPA, or use as key for WEP)
-int keyIndex = 0; // your network key Index number (needed only for WEP)
-
-int status = WL_IDLE_STATUS;
-// if you don't want to use DNS (and reduce your sketch size)
-// use the numeric IP instead of the name for the server:
-//IPAddress server(74,125,232,128); // numeric IP for Google (no DNS)
-char server[] = "www.google.com"; // name address for Google (using DNS)
-
-// Initialize the Ethernet client library
-// with the IP address and port of the server
-// that you want to connect to (port 80 is default for HTTP):
-WiFiClient client;
-
-void setup() {
- //Initialize serial and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
-
- // check for the presence of the shield:
- if (WiFi.status() == WL_NO_SHIELD) {
- Serial.println("WiFi shield not present");
- // don't continue:
- while(true);
- }
-
- // attempt to connect to Wifi network:
- while (status != WL_CONNECTED) {
- Serial.print("Attempting to connect to SSID: ");
- Serial.println(ssid);
- // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
- status = WiFi.begin(ssid, pass);
-
- // wait 10 seconds for connection:
- delay(10000);
- }
- Serial.println("Connected to wifi");
- printWifiStatus();
-
- Serial.println("\nStarting connection to server...");
- // if you get a connection, report back via serial:
- if (client.connect(server, 80)) {
- Serial.println("connected to server");
- // Make a HTTP request:
- client.println("GET /search?q=arduino HTTP/1.1");
- client.println("Host: www.google.com");
- client.println("Connection: close");
- client.println();
- }
-}
-
-void loop() {
- // if there are incoming bytes available
- // from the server, read them and print them:
- while (client.available()) {
- char c = client.read();
- Serial.write(c);
- }
-
- // if the server's disconnected, stop the client:
- if (!client.connected()) {
- Serial.println();
- Serial.println("disconnecting from server.");
- client.stop();
-
- // do nothing forevermore:
- while(true);
- }
-}
-
-
-void printWifiStatus() {
- // print the SSID of the network you're attached to:
- Serial.print("SSID: ");
- Serial.println(WiFi.SSID());
-
- // print your WiFi shield's IP address:
- IPAddress ip = WiFi.localIP();
- Serial.print("IP Address: ");
- Serial.println(ip);
-
- // print the received signal strength:
- long rssi = WiFi.RSSI();
- Serial.print("signal strength (RSSI):");
- Serial.print(rssi);
- Serial.println(" dBm");
-}
-
-
-
-
-
diff --git a/libraries/WiFi/examples/WiFiWebClientRepeating/WiFiWebClientRepeating.ino b/libraries/WiFi/examples/WiFiWebClientRepeating/WiFiWebClientRepeating.ino
deleted file mode 100644
index 96eb628..0000000
--- a/libraries/WiFi/examples/WiFiWebClientRepeating/WiFiWebClientRepeating.ino
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- Repeating Wifi Web client
-
- This sketch connects to a a web server and makes a request
- using an Arduino Wifi shield.
-
- Circuit:
- * Wifi shield attached to pins 10, 11, 12, 13
-
- created 23 April 2012
- modifide 31 May 2012
- by Tom Igoe
-
- http://arduino.cc/en/Tutorial/WifiWebClientRepeating
- This code is in the public domain.
- */
-
-#include <SPI.h>
-#include <WiFi.h>
-
-char ssid[] = "yourNetwork"; // your network SSID (name)
-char pass[] = "secretPassword"; // your network password
-int keyIndex = 0; // your network key Index number (needed only for WEP)
-
-int status = WL_IDLE_STATUS;
-
-// Initialize the Wifi client library
-WiFiClient client;
-
-// server address:
-char server[] = "www.arduino.cc";
-//IPAddress server(64,131,82,241);
-
-unsigned long lastConnectionTime = 0; // last time you connected to the server, in milliseconds
-boolean lastConnected = false; // state of the connection last time through the main loop
-const unsigned long postingInterval = 10*1000; // delay between updates, in milliseconds
-
-void setup() {
- //Initialize serial and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
-
- // check for the presence of the shield:
- if (WiFi.status() == WL_NO_SHIELD) {
- Serial.println("WiFi shield not present");
- // don't continue:
- while(true);
- }
-
- // attempt to connect to Wifi network:
- while ( status != WL_CONNECTED) {
- Serial.print("Attempting to connect to SSID: ");
- Serial.println(ssid);
- // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
- status = WiFi.begin(ssid, pass);
-
- // wait 10 seconds for connection:
- delay(10000);
- }
- // you're connected now, so print out the status:
- printWifiStatus();
-}
-
-void loop() {
- // if there's incoming data from the net connection.
- // send it out the serial port. This is for debugging
- // purposes only:
- while (client.available()) {
- char c = client.read();
- Serial.write(c);
- }
-
- // if there's no net connection, but there was one last time
- // through the loop, then stop the client:
- if (!client.connected() && lastConnected) {
- Serial.println();
- Serial.println("disconnecting.");
- client.stop();
- }
-
- // if you're not connected, and ten seconds have passed since
- // your last connection, then connect again and send data:
- if(!client.connected() && (millis() - lastConnectionTime > postingInterval)) {
- httpRequest();
- }
- // store the state of the connection for next time through
- // the loop:
- lastConnected = client.connected();
-}
-
-// this method makes a HTTP connection to the server:
-void httpRequest() {
- // if there's a successful connection:
- if (client.connect(server, 80)) {
- Serial.println("connecting...");
- // send the HTTP PUT request:
- client.println("GET /latest.txt HTTP/1.1");
- client.println("Host: www.arduino.cc");
- client.println("User-Agent: arduino-ethernet");
- client.println("Connection: close");
- client.println();
-
- // note the time that the connection was made:
- lastConnectionTime = millis();
- }
- else {
- // if you couldn't make a connection:
- Serial.println("connection failed");
- Serial.println("disconnecting.");
- client.stop();
- }
-}
-
-
-void printWifiStatus() {
- // print the SSID of the network you're attached to:
- Serial.print("SSID: ");
- Serial.println(WiFi.SSID());
-
- // print your WiFi shield's IP address:
- IPAddress ip = WiFi.localIP();
- Serial.print("IP Address: ");
- Serial.println(ip);
-
- // print the received signal strength:
- long rssi = WiFi.RSSI();
- Serial.print("signal strength (RSSI):");
- Serial.print(rssi);
- Serial.println(" dBm");
-}
-
-
-
-
-
-
diff --git a/libraries/WiFi/examples/WiFiWebServer/WiFiWebServer.ino b/libraries/WiFi/examples/WiFiWebServer/WiFiWebServer.ino
deleted file mode 100644
index de861e8..0000000
--- a/libraries/WiFi/examples/WiFiWebServer/WiFiWebServer.ino
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- WiFi Web Server
-
- A simple web server that shows the value of the analog input pins.
- using a WiFi shield.
-
- This example is written for a network using WPA encryption. For
- WEP or WPA, change the Wifi.begin() call accordingly.
-
- Circuit:
- * WiFi shield attached
- * Analog inputs attached to pins A0 through A5 (optional)
-
- created 13 July 2010
- by dlf (Metodo2 srl)
- modified 31 May 2012
- by Tom Igoe
-
- */
-
-#include <SPI.h>
-#include <WiFi.h>
-
-
-char ssid[] = "yourNetwork"; // your network SSID (name)
-char pass[] = "secretPassword"; // your network password
-int keyIndex = 0; // your network key Index number (needed only for WEP)
-
-int status = WL_IDLE_STATUS;
-
-WiFiServer server(80);
-
-void setup() {
- //Initialize serial and wait for port to open:
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for Leonardo only
- }
-
- // check for the presence of the shield:
- if (WiFi.status() == WL_NO_SHIELD) {
- Serial.println("WiFi shield not present");
- // don't continue:
- while(true);
- }
-
- // attempt to connect to Wifi network:
- while ( status != WL_CONNECTED) {
- Serial.print("Attempting to connect to SSID: ");
- Serial.println(ssid);
- // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
- status = WiFi.begin(ssid, pass);
-
- // wait 10 seconds for connection:
- delay(10000);
- }
- server.begin();
- // you're connected now, so print out the status:
- printWifiStatus();
-}
-
-
-void loop() {
- // listen for incoming clients
- WiFiClient client = server.available();
- if (client) {
- Serial.println("new client");
- // an http request ends with a blank line
- boolean currentLineIsBlank = true;
- while (client.connected()) {
- if (client.available()) {
- char c = client.read();
- Serial.write(c);
- // if you've gotten to the end of the line (received a newline
- // character) and the line is blank, the http request has ended,
- // so you can send a reply
- if (c == '\n' && currentLineIsBlank) {
- // send a standard http response header
- client.println("HTTP/1.1 200 OK");
- client.println("Content-Type: text/html");
- client.println("Connection: close"); // the connection will be closed after completion of the response
- client.println("Refresh: 5"); // refresh the page automatically every 5 sec
- client.println();
- client.println("<!DOCTYPE HTML>");
- client.println("<html>");
- // output the value of each analog input pin
- for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
- int sensorReading = analogRead(analogChannel);
- client.print("analog input ");
- client.print(analogChannel);
- client.print(" is ");
- client.print(sensorReading);
- client.println("<br />");
- }
- client.println("</html>");
- break;
- }
- if (c == '\n') {
- // you're starting a new line
- currentLineIsBlank = true;
- }
- else if (c != '\r') {
- // you've gotten a character on the current line
- currentLineIsBlank = false;
- }
- }
- }
- // give the web browser time to receive the data
- delay(1);
-
- // close the connection:
- client.stop();
- Serial.println("client disonnected");
- }
-}
-
-
-void printWifiStatus() {
- // print the SSID of the network you're attached to:
- Serial.print("SSID: ");
- Serial.println(WiFi.SSID());
-
- // print your WiFi shield's IP address:
- IPAddress ip = WiFi.localIP();
- Serial.print("IP Address: ");
- Serial.println(ip);
-
- // print the received signal strength:
- long rssi = WiFi.RSSI();
- Serial.print("signal strength (RSSI):");
- Serial.print(rssi);
- Serial.println(" dBm");
-}
-
diff --git a/libraries/WiFi/keywords.txt b/libraries/WiFi/keywords.txt
deleted file mode 100644
index 4106a7d..0000000
--- a/libraries/WiFi/keywords.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-#######################################
-# Syntax Coloring Map For WiFi
-#######################################
-
-#######################################
-# Datatypes (KEYWORD1)
-#######################################
-
-WiFi KEYWORD1
-Client KEYWORD1
-Server KEYWORD1
-
-#######################################
-# Methods and Functions (KEYWORD2)
-#######################################
-
-status KEYWORD2
-connect KEYWORD2
-write KEYWORD2
-available KEYWORD2
-config KEYWORD2
-setDNS KEYWORD2
-read KEYWORD2
-flush KEYWORD2
-stop KEYWORD2
-connected KEYWORD2
-begin KEYWORD2
-disconnect KEYWORD2
-macAddress KEYWORD2
-localIP KEYWORD2
-subnetMask KEYWORD2
-gatewayIP KEYWORD2
-SSID KEYWORD2
-BSSID KEYWORD2
-RSSI KEYWORD2
-encryptionType KEYWORD2
-getResult KEYWORD2
-getSocket KEYWORD2
-WiFiClient KEYWORD2
-WiFiServer KEYWORD2
-WiFiUDP KEYWORD2
-beginPacket KEYWORD2
-endPacket KEYWORD2
-parsePacket KEYWORD2
-remoteIP KEYWORD2
-remotePort KEYWORD2
-
-#######################################
-# Constants (LITERAL1)
-#######################################
-
diff --git a/libraries/WiFi/utility/debug.h b/libraries/WiFi/utility/debug.h
deleted file mode 100644
index 9f71055..0000000
--- a/libraries/WiFi/utility/debug.h
+++ /dev/null
@@ -1,77 +0,0 @@
-//*********************************************/
-//
-// File: debug.h
-//
-// Author: dlf (Metodo2 srl)
-//
-//********************************************/
-
-
-#ifndef Debug_H
-#define Debug_H
-
-#include <stdio.h>
-#include <string.h>
-
-#define PRINT_FILE_LINE() do { \
- Serial.print("[");Serial.print(__FILE__); \
- Serial.print("::");Serial.print(__LINE__);Serial.print("]");\
-}while (0);
-
-#ifdef _DEBUG_
-
-#define INFO(format, args...) do { \
- char buf[250]; \
- sprintf(buf, format, args); \
- Serial.println(buf); \
-} while(0);
-
-#define INFO1(x) do { PRINT_FILE_LINE() Serial.print("-I-");\
- Serial.println(x); \
-}while (0);
-
-
-#define INFO2(x,y) do { PRINT_FILE_LINE() Serial.print("-I-");\
- Serial.print(x,16);Serial.print(",");Serial.println(y,16); \
-}while (0);
-
-
-#else
-#define INFO1(x) do {} while(0);
-#define INFO2(x,y) do {} while(0);
-#define INFO(format, args...) do {} while(0);
-#endif
-
-#if 0
-#define WARN(args) do { PRINT_FILE_LINE() \
- Serial.print("-W-"); Serial.println(args); \
-}while (0);
-#else
-#define WARN(args) do {} while (0);
-#endif
-
-#if _DEBUG_SPI_
-#define DBG_PIN2 5
-#define DBG_PIN 4
-
-#define START() digitalWrite(DBG_PIN2, HIGH);
-#define END() digitalWrite(DBG_PIN2, LOW);
-#define SET_TRIGGER() digitalWrite(DBG_PIN, HIGH);
-#define RST_TRIGGER() digitalWrite(DBG_PIN, LOW);
-
-#define INIT_TRIGGER() pinMode(DBG_PIN, OUTPUT); \
- pinMode(DBG_PIN2, OUTPUT); \
- RST_TRIGGER()
-#define TOGGLE_TRIGGER() SET_TRIGGER() \
- delayMicroseconds(2); \
- RST_TRIGGER()
-#else
-#define START()
-#define END()
-#define SET_TRIGGER()
-#define RST_TRIGGER()
-#define INIT_TRIGGER()
-#define TOGGLE_TRIGGER()
-#endif
-
-#endif
diff --git a/libraries/WiFi/utility/server_drv.cpp b/libraries/WiFi/utility/server_drv.cpp
deleted file mode 100644
index 4a6d293..0000000
--- a/libraries/WiFi/utility/server_drv.cpp
+++ /dev/null
@@ -1,308 +0,0 @@
-//#define _DEBUG_
-
-#include "server_drv.h"
-
-#include "Arduino.h"
-#include "spi_drv.h"
-
-extern "C" {
-#include "wl_types.h"
-#include "debug.h"
-}
-
-
-// Start server TCP on port specified
-void ServerDrv::startServer(uint16_t port, uint8_t sock, uint8_t protMode)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(START_SERVER_TCP_CMD, PARAM_NUMS_3);
- SpiDrv::sendParam(port);
- SpiDrv::sendParam(&sock, 1);
- SpiDrv::sendParam(&protMode, 1, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseCmd(START_SERVER_TCP_CMD, PARAM_NUMS_1, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- }
- SpiDrv::spiSlaveDeselect();
-}
-
-// Start server TCP on port specified
-void ServerDrv::startClient(uint32_t ipAddress, uint16_t port, uint8_t sock, uint8_t protMode)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(START_CLIENT_TCP_CMD, PARAM_NUMS_4);
- SpiDrv::sendParam((uint8_t*)&ipAddress, sizeof(ipAddress));
- SpiDrv::sendParam(port);
- SpiDrv::sendParam(&sock, 1);
- SpiDrv::sendParam(&protMode, 1, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseCmd(START_CLIENT_TCP_CMD, PARAM_NUMS_1, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- }
- SpiDrv::spiSlaveDeselect();
-}
-
-// Start server TCP on port specified
-void ServerDrv::stopClient(uint8_t sock)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(STOP_CLIENT_TCP_CMD, PARAM_NUMS_1);
- SpiDrv::sendParam(&sock, 1, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseCmd(STOP_CLIENT_TCP_CMD, PARAM_NUMS_1, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- }
- SpiDrv::spiSlaveDeselect();
-}
-
-
-uint8_t ServerDrv::getServerState(uint8_t sock)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(GET_STATE_TCP_CMD, PARAM_NUMS_1);
- SpiDrv::sendParam(&sock, sizeof(sock), LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseCmd(GET_STATE_TCP_CMD, PARAM_NUMS_1, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- }
- SpiDrv::spiSlaveDeselect();
- return _data;
-}
-
-uint8_t ServerDrv::getClientState(uint8_t sock)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(GET_CLIENT_STATE_TCP_CMD, PARAM_NUMS_1);
- SpiDrv::sendParam(&sock, sizeof(sock), LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseCmd(GET_CLIENT_STATE_TCP_CMD, PARAM_NUMS_1, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- }
- SpiDrv::spiSlaveDeselect();
- return _data;
-}
-
-uint16_t ServerDrv::availData(uint8_t sock)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(AVAIL_DATA_TCP_CMD, PARAM_NUMS_1);
- SpiDrv::sendParam(&sock, sizeof(sock), LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _dataLen = 0;
- uint16_t len = 0;
-
- SpiDrv::waitResponseCmd(AVAIL_DATA_TCP_CMD, PARAM_NUMS_1, (uint8_t*)&len, &_dataLen);
-
- SpiDrv::spiSlaveDeselect();
-
- return len;
-}
-
-bool ServerDrv::getData(uint8_t sock, uint8_t *data, uint8_t peek)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(GET_DATA_TCP_CMD, PARAM_NUMS_2);
- SpiDrv::sendParam(&sock, sizeof(sock));
- SpiDrv::sendParam(peek, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseData8(GET_DATA_TCP_CMD, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- }
- SpiDrv::spiSlaveDeselect();
- if (_dataLen!=0)
- {
- *data = _data;
- return true;
- }
- return false;
-}
-
-bool ServerDrv::getDataBuf(uint8_t sock, uint8_t *_data, uint16_t *_dataLen)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(GET_DATABUF_TCP_CMD, PARAM_NUMS_1);
- SpiDrv::sendBuffer(&sock, sizeof(sock), LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- if (!SpiDrv::waitResponseData16(GET_DATABUF_TCP_CMD, _data, _dataLen))
- {
- WARN("error waitResponse");
- }
- SpiDrv::spiSlaveDeselect();
- if (*_dataLen!=0)
- {
- return true;
- }
- return false;
-}
-
-bool ServerDrv::insertDataBuf(uint8_t sock, const uint8_t *data, uint16_t _len)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(INSERT_DATABUF_CMD, PARAM_NUMS_2);
- SpiDrv::sendBuffer(&sock, sizeof(sock));
- SpiDrv::sendBuffer((uint8_t *)data, _len, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseData8(INSERT_DATABUF_CMD, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- }
- SpiDrv::spiSlaveDeselect();
- if (_dataLen!=0)
- {
- return (_data == 1);
- }
- return false;
-}
-
-bool ServerDrv::sendUdpData(uint8_t sock)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(SEND_DATA_UDP_CMD, PARAM_NUMS_1);
- SpiDrv::sendParam(&sock, sizeof(sock), LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseData8(SEND_DATA_UDP_CMD, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- }
- SpiDrv::spiSlaveDeselect();
- if (_dataLen!=0)
- {
- return (_data == 1);
- }
- return false;
-}
-
-
-bool ServerDrv::sendData(uint8_t sock, const uint8_t *data, uint16_t len)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(SEND_DATA_TCP_CMD, PARAM_NUMS_2);
- SpiDrv::sendBuffer(&sock, sizeof(sock));
- SpiDrv::sendBuffer((uint8_t *)data, len, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseData8(SEND_DATA_TCP_CMD, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- }
- SpiDrv::spiSlaveDeselect();
- if (_dataLen!=0)
- {
- return (_data == 1);
- }
- return false;
-}
-
-
-uint8_t ServerDrv::checkDataSent(uint8_t sock)
-{
- const uint16_t TIMEOUT_DATA_SENT = 25;
- uint16_t timeout = 0;
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
-
- do {
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(DATA_SENT_TCP_CMD, PARAM_NUMS_1);
- SpiDrv::sendParam(&sock, sizeof(sock), LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- if (!SpiDrv::waitResponseCmd(DATA_SENT_TCP_CMD, PARAM_NUMS_1, &_data, &_dataLen))
- {
- WARN("error waitResponse isDataSent");
- }
- SpiDrv::spiSlaveDeselect();
-
- if (_data) timeout = 0;
- else{
- ++timeout;
- delay(100);
- }
-
- }while((_data==0)&&(timeout<TIMEOUT_DATA_SENT));
- return (timeout==TIMEOUT_DATA_SENT)?0:1;
-}
-
-ServerDrv serverDrv;
diff --git a/libraries/WiFi/utility/server_drv.h b/libraries/WiFi/utility/server_drv.h
deleted file mode 100644
index 50ba7e3..0000000
--- a/libraries/WiFi/utility/server_drv.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef Server_Drv_h
-#define Server_Drv_h
-
-#include <inttypes.h>
-#include "wifi_spi.h"
-
-typedef enum eProtMode {TCP_MODE, UDP_MODE}tProtMode;
-
-class ServerDrv
-{
-public:
-
- // Start server TCP on port specified
- static void startServer(uint16_t port, uint8_t sock, uint8_t protMode=TCP_MODE);
-
- static void startClient(uint32_t ipAddress, uint16_t port, uint8_t sock, uint8_t protMode=TCP_MODE);
-
- static void stopClient(uint8_t sock);
-
- static uint8_t getServerState(uint8_t sock);
-
- static uint8_t getClientState(uint8_t sock);
-
- static bool getData(uint8_t sock, uint8_t *data, uint8_t peek = 0);
-
- static bool getDataBuf(uint8_t sock, uint8_t *data, uint16_t *len);
-
- static bool insertDataBuf(uint8_t sock, const uint8_t *_data, uint16_t _dataLen);
-
- static bool sendData(uint8_t sock, const uint8_t *data, uint16_t len);
-
- static bool sendUdpData(uint8_t sock);
-
- static uint16_t availData(uint8_t sock);
-
- static uint8_t checkDataSent(uint8_t sock);
-};
-
-extern ServerDrv serverDrv;
-
-#endif
diff --git a/libraries/WiFi/utility/socket.c b/libraries/WiFi/utility/socket.c
deleted file mode 100644
index 665073b..0000000
--- a/libraries/WiFi/utility/socket.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-*
-@file socket.c
-@brief define function of socket API
-*
-*/
-#include <inttypes.h>
-#include "socket.h"
-
-SOCKET socket(uint8 protocol) {return 0;} // Opens a socket(TCP or UDP or IP_RAW mode)
-void close(SOCKET s) {} // Close socket
-uint8 connect(SOCKET s, uint8 * addr, uint16 port) {return 0;} // Establish TCP connection (Active connection)
-void disconnect(SOCKET s) {} // disconnect the connection
-uint8 listen(SOCKET s) { return 0;} // Establish TCP connection (Passive connection)
-uint16 send(SOCKET s, const uint8 * buf, uint16 len) { return 0;} // Send data (TCP)
-uint16 recv(SOCKET s, uint8 * buf, uint16 len) {return 0;} // Receive data (TCP)
-uint16 sendto(SOCKET s, const uint8 * buf, uint16 len, uint8 * addr, uint16 port) {return 0;} // Send data (UDP/IP RAW)
-uint16 recvfrom(SOCKET s, uint8 * buf, uint16 len, uint8 * addr, uint16 *port) {return 0;} // Receive data (UDP/IP RAW)
-
-uint16 igmpsend(SOCKET s, const uint8 * buf, uint16 len) {return 0;}
diff --git a/libraries/WiFi/utility/socket.h b/libraries/WiFi/utility/socket.h
deleted file mode 100644
index 9b06d00..0000000
--- a/libraries/WiFi/utility/socket.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-*
-@file socket.h
-@brief define function of socket API
-*
-*/
-
-#ifndef _SOCKET_H_
-#define _SOCKET_H_
-
-#define TCP_SOCKET 1
-#define UDP_SOCKET 2
-#define RAW_SOCKET 3
-
-#define SOCK_NOT_AVAIL 255
-
-#include "wl_definitions.h"
-/**
- * The 8-bit signed data type.
- */
-typedef char int8;
-/**
- * The volatile 8-bit signed data type.
- */
-typedef volatile char vint8;
-/**
- * The 8-bit unsigned data type.
- */
-typedef unsigned char uint8;
-/**
- * The volatile 8-bit unsigned data type.
- */
-typedef volatile unsigned char vuint8;
-
-/**
- * The 16-bit signed data type.
- */
-typedef int int16;
-/**
- * The volatile 16-bit signed data type.
- */
-typedef volatile int vint16;
-/**
- * The 16-bit unsigned data type.
- */
-typedef unsigned int uint16;
-/**
- * The volatile 16-bit unsigned data type.
- */
-typedef volatile unsigned int vuint16;
-/**
- * The 32-bit signed data type.
- */
-typedef long int32;
-/**
- * The volatile 32-bit signed data type.
- */
-typedef volatile long vint32;
-/**
- * The 32-bit unsigned data type.
- */
-typedef unsigned long uint32;
-/**
- * The volatile 32-bit unsigned data type.
- */
-typedef volatile unsigned long vuint32;
-
-/* bsd */
-typedef uint8 u_char; /**< 8-bit value */
-typedef uint16_t SOCKET;
-typedef uint16 u_short; /**< 16-bit value */
-typedef uint16 u_int; /**< 16-bit value */
-typedef uint32 u_long; /**< 32-bit value */
-
-extern SOCKET socket(uint8 protocol); // Opens a socket(TCP or UDP or IP_RAW mode)
-extern void close(SOCKET s); // Close socket
-extern uint8 connect(SOCKET s, uint8 * addr, uint16 port); // Establish TCP connection (Active connection)
-extern void disconnect(SOCKET s); // disconnect the connection
-extern uint8 listen(SOCKET s); // Establish TCP connection (Passive connection)
-extern uint16 send(SOCKET s, const uint8 * buf, uint16 len); // Send data (TCP)
-extern uint16 recv(SOCKET s, uint8 * buf, uint16 len); // Receive data (TCP)
-extern uint16 sendto(SOCKET s, const uint8 * buf, uint16 len, uint8 * addr, uint16 port); // Send data (UDP/IP RAW)
-extern uint16 recvfrom(SOCKET s, uint8 * buf, uint16 len, uint8 * addr, uint16 *port); // Receive data (UDP/IP RAW)
-
-extern uint16 igmpsend(SOCKET s, const uint8 * buf, uint16 len);
-#endif
-/* _SOCKET_H_ */
diff --git a/libraries/WiFi/utility/spi_drv.cpp b/libraries/WiFi/utility/spi_drv.cpp
deleted file mode 100644
index 12a320b..0000000
--- a/libraries/WiFi/utility/spi_drv.cpp
+++ /dev/null
@@ -1,506 +0,0 @@
-
-#include "Arduino.h"
-#include "spi_drv.h"
-#include "pins_arduino.h"
-//#define _DEBUG_
-extern "C" {
-#include "debug.h"
-}
-
-#define DATAOUT 11 // MOSI
-#define DATAIN 12 // MISO
-#define SPICLOCK 13 // sck
-#define SLAVESELECT 10 // ss
-#define SLAVEREADY 7 // handshake pin
-#define WIFILED 9 // led on wifi shield
-
-#define DELAY_100NS do { asm volatile("nop"); }while(0);
-#define DELAY_SPI(X) { int ii=0; do { asm volatile("nop"); }while(++ii<X);}
-#define DELAY_TRANSFER() DELAY_SPI(10)
-
-void SpiDrv::begin()
-{
- // Set direction register for SCK and MOSI pin.
- // MISO pin automatically overrides to INPUT.
- // When the SS pin is set as OUTPUT, it can be used as
- // a general purpose output port (it doesn't influence
- // SPI operations).
-
- pinMode(SCK, OUTPUT);
- pinMode(MOSI, OUTPUT);
- pinMode(SS, OUTPUT);
- pinMode(SLAVESELECT, OUTPUT);
- pinMode(SLAVEREADY, INPUT);
- pinMode(WIFILED, OUTPUT);
-
- digitalWrite(SCK, LOW);
- digitalWrite(MOSI, LOW);
- digitalWrite(SS, HIGH);
- digitalWrite(SLAVESELECT, HIGH);
- digitalWrite(WIFILED, LOW);
-
-#ifdef _DEBUG_
- INIT_TRIGGER()
-#endif
-
- // Warning: if the SS pin ever becomes a LOW INPUT then SPI
- // automatically switches to Slave, so the data direction of
- // the SS pin MUST be kept as OUTPUT.
- SPCR |= _BV(MSTR);
- SPCR |= _BV(SPE);
- //SPSR |= _BV(SPI2X);
-}
-
-void SpiDrv::end() {
- SPCR &= ~_BV(SPE);
-}
-
-void SpiDrv::spiSlaveSelect()
-{
- digitalWrite(SLAVESELECT,LOW);
-}
-
-
-void SpiDrv::spiSlaveDeselect()
-{
- digitalWrite(SLAVESELECT,HIGH);
-}
-
-void delaySpi()
-{
- int i = 0;
- const int DELAY = 1000;
- for (;i<DELAY;++i)
- {
- int a =a+1;
- }
-}
-
-char SpiDrv::spiTransfer(volatile char data)
-{
- SPDR = data; // Start the transmission
- while (!(SPSR & (1<<SPIF))) // Wait the end of the transmission
- {
- };
- char result = SPDR;
- DELAY_TRANSFER();
-
- return result; // return the received byte
-}
-
-int SpiDrv::waitSpiChar(unsigned char waitChar)
-{
- int timeout = TIMEOUT_CHAR;
- unsigned char _readChar = 0;
- do{
- _readChar = readChar(); //get data byte
- if (_readChar == ERR_CMD)
- {
- WARN("Err cmd received\n");
- return -1;
- }
- }while((timeout-- > 0) && (_readChar != waitChar));
- return (_readChar == waitChar);
-}
-
-int SpiDrv::readAndCheckChar(char checkChar, char* readChar)
-{
- getParam((uint8_t*)readChar);
-
- return (*readChar == checkChar);
-}
-
-char SpiDrv::readChar()
-{
- uint8_t readChar = 0;
- getParam(&readChar);
- return readChar;
-}
-
-#define WAIT_START_CMD(x) waitSpiChar(START_CMD)
-
-#define IF_CHECK_START_CMD(x) \
- if (!WAIT_START_CMD(_data)) \
- { \
- TOGGLE_TRIGGER() \
- WARN("Error waiting START_CMD"); \
- return 0; \
- }else \
-
-#define CHECK_DATA(check, x) \
- if (!readAndCheckChar(check, &x)) \
- { \
- TOGGLE_TRIGGER() \
- WARN("Reply error"); \
- INFO2(check, (uint8_t)x); \
- return 0; \
- }else \
-
-#define waitSlaveReady() (digitalRead(SLAVEREADY) == LOW)
-#define waitSlaveSign() (digitalRead(SLAVEREADY) == HIGH)
-#define waitSlaveSignalH() while(digitalRead(SLAVEREADY) != HIGH){}
-#define waitSlaveSignalL() while(digitalRead(SLAVEREADY) != LOW){}
-
-void SpiDrv::waitForSlaveSign()
-{
- while (!waitSlaveSign());
-}
-
-void SpiDrv::waitForSlaveReady()
-{
- while (!waitSlaveReady());
-}
-
-void SpiDrv::getParam(uint8_t* param)
-{
- // Get Params data
- *param = spiTransfer(DUMMY_DATA);
- DELAY_TRANSFER();
-}
-
-int SpiDrv::waitResponseCmd(uint8_t cmd, uint8_t numParam, uint8_t* param, uint8_t* param_len)
-{
- char _data = 0;
- int ii = 0;
-
- IF_CHECK_START_CMD(_data)
- {
- CHECK_DATA(cmd | REPLY_FLAG, _data){};
-
- CHECK_DATA(numParam, _data);
- {
- readParamLen8(param_len);
- for (ii=0; ii<(*param_len); ++ii)
- {
- // Get Params data
- //param[ii] = spiTransfer(DUMMY_DATA);
- getParam(&param[ii]);
- }
- }
-
- readAndCheckChar(END_CMD, &_data);
- }
-
- return 1;
-}
-/*
-int SpiDrv::waitResponse(uint8_t cmd, uint8_t numParam, uint8_t* param, uint16_t* param_len)
-{
- char _data = 0;
- int i =0, ii = 0;
-
- IF_CHECK_START_CMD(_data)
- {
- CHECK_DATA(cmd | REPLY_FLAG, _data){};
-
- CHECK_DATA(numParam, _data);
- {
- readParamLen16(param_len);
- for (ii=0; ii<(*param_len); ++ii)
- {
- // Get Params data
- param[ii] = spiTransfer(DUMMY_DATA);
- }
- }
-
- readAndCheckChar(END_CMD, &_data);
- }
-
- return 1;
-}
-*/
-
-int SpiDrv::waitResponseData16(uint8_t cmd, uint8_t* param, uint16_t* param_len)
-{
- char _data = 0;
- uint16_t ii = 0;
-
- IF_CHECK_START_CMD(_data)
- {
- CHECK_DATA(cmd | REPLY_FLAG, _data){};
-
- uint8_t numParam = readChar();
- if (numParam != 0)
- {
- readParamLen16(param_len);
- for (ii=0; ii<(*param_len); ++ii)
- {
- // Get Params data
- param[ii] = spiTransfer(DUMMY_DATA);
- }
- }
-
- readAndCheckChar(END_CMD, &_data);
- }
-
- return 1;
-}
-
-int SpiDrv::waitResponseData8(uint8_t cmd, uint8_t* param, uint8_t* param_len)
-{
- char _data = 0;
- int ii = 0;
-
- IF_CHECK_START_CMD(_data)
- {
- CHECK_DATA(cmd | REPLY_FLAG, _data){};
-
- uint8_t numParam = readChar();
- if (numParam != 0)
- {
- readParamLen8(param_len);
- for (ii=0; ii<(*param_len); ++ii)
- {
- // Get Params data
- param[ii] = spiTransfer(DUMMY_DATA);
- }
- }
-
- readAndCheckChar(END_CMD, &_data);
- }
-
- return 1;
-}
-
-int SpiDrv::waitResponseParams(uint8_t cmd, uint8_t numParam, tParam* params)
-{
- char _data = 0;
- int i =0, ii = 0;
-
-
- IF_CHECK_START_CMD(_data)
- {
- CHECK_DATA(cmd | REPLY_FLAG, _data){};
-
- uint8_t _numParam = readChar();
- if (_numParam != 0)
- {
- for (i=0; i<_numParam; ++i)
- {
- params[i].paramLen = readParamLen8();
- for (ii=0; ii<params[i].paramLen; ++ii)
- {
- // Get Params data
- params[i].param[ii] = spiTransfer(DUMMY_DATA);
- }
- }
- } else
- {
- WARN("Error numParam == 0");
- return 0;
- }
-
- if (numParam != _numParam)
- {
- WARN("Mismatch numParam");
- return 0;
- }
-
- readAndCheckChar(END_CMD, &_data);
- }
- return 1;
-}
-
-/*
-int SpiDrv::waitResponse(uint8_t cmd, tParam* params, uint8_t* numParamRead, uint8_t maxNumParams)
-{
- char _data = 0;
- int i =0, ii = 0;
-
- IF_CHECK_START_CMD(_data)
- {
- CHECK_DATA(cmd | REPLY_FLAG, _data){};
-
- uint8_t numParam = readChar();
-
- if (numParam > maxNumParams)
- {
- numParam = maxNumParams;
- }
- *numParamRead = numParam;
- if (numParam != 0)
- {
- for (i=0; i<numParam; ++i)
- {
- params[i].paramLen = readParamLen8();
-
- for (ii=0; ii<params[i].paramLen; ++ii)
- {
- // Get Params data
- params[i].param[ii] = spiTransfer(DUMMY_DATA);
- }
- }
- } else
- {
- WARN("Error numParams == 0");
- Serial.println(cmd, 16);
- return 0;
- }
- readAndCheckChar(END_CMD, &_data);
- }
- return 1;
-}
-*/
-
-int SpiDrv::waitResponse(uint8_t cmd, uint8_t* numParamRead, uint8_t** params, uint8_t maxNumParams)
-{
- char _data = 0;
- int i =0, ii = 0;
-
- char *index[WL_SSID_MAX_LENGTH];
-
- for (i = 0 ; i < WL_NETWORKS_LIST_MAXNUM ; i++)
- index[i] = (char *)params + WL_SSID_MAX_LENGTH*i;
-
- IF_CHECK_START_CMD(_data)
- {
- CHECK_DATA(cmd | REPLY_FLAG, _data){};
-
- uint8_t numParam = readChar();
-
- if (numParam > maxNumParams)
- {
- numParam = maxNumParams;
- }
- *numParamRead = numParam;
- if (numParam != 0)
- {
- for (i=0; i<numParam; ++i)
- {
- uint8_t paramLen = readParamLen8();
- for (ii=0; ii<paramLen; ++ii)
- {
- //ssid[ii] = spiTransfer(DUMMY_DATA);
- // Get Params data
- index[i][ii] = (uint8_t)spiTransfer(DUMMY_DATA);
-
- }
- index[i][ii]=0;
- }
- } else
- {
- WARN("Error numParams == 0");
- readAndCheckChar(END_CMD, &_data);
- return 0;
- }
- readAndCheckChar(END_CMD, &_data);
- }
- return 1;
-}
-
-
-void SpiDrv::sendParam(uint8_t* param, uint8_t param_len, uint8_t lastParam)
-{
- int i = 0;
- // Send Spi paramLen
- sendParamLen8(param_len);
-
- // Send Spi param data
- for (i=0; i<param_len; ++i)
- {
- spiTransfer(param[i]);
- }
-
- // if lastParam==1 Send Spi END CMD
- if (lastParam == 1)
- spiTransfer(END_CMD);
-}
-
-void SpiDrv::sendParamLen8(uint8_t param_len)
-{
- // Send Spi paramLen
- spiTransfer(param_len);
-}
-
-void SpiDrv::sendParamLen16(uint16_t param_len)
-{
- // Send Spi paramLen
- spiTransfer((uint8_t)((param_len & 0xff00)>>8));
- spiTransfer((uint8_t)(param_len & 0xff));
-}
-
-uint8_t SpiDrv::readParamLen8(uint8_t* param_len)
-{
- uint8_t _param_len = spiTransfer(DUMMY_DATA);
- if (param_len != NULL)
- {
- *param_len = _param_len;
- }
- return _param_len;
-}
-
-uint16_t SpiDrv::readParamLen16(uint16_t* param_len)
-{
- uint16_t _param_len = spiTransfer(DUMMY_DATA)<<8 | (spiTransfer(DUMMY_DATA)& 0xff);
- if (param_len != NULL)
- {
- *param_len = _param_len;
- }
- return _param_len;
-}
-
-
-void SpiDrv::sendBuffer(uint8_t* param, uint16_t param_len, uint8_t lastParam)
-{
- uint16_t i = 0;
-
- // Send Spi paramLen
- sendParamLen16(param_len);
-
- // Send Spi param data
- for (i=0; i<param_len; ++i)
- {
- spiTransfer(param[i]);
- }
-
- // if lastParam==1 Send Spi END CMD
- if (lastParam == 1)
- spiTransfer(END_CMD);
-}
-
-
-void SpiDrv::sendParam(uint16_t param, uint8_t lastParam)
-{
- // Send Spi paramLen
- sendParamLen8(2);
-
- spiTransfer((uint8_t)((param & 0xff00)>>8));
- spiTransfer((uint8_t)(param & 0xff));
-
- // if lastParam==1 Send Spi END CMD
- if (lastParam == 1)
- spiTransfer(END_CMD);
-}
-
-/* Cmd Struct Message */
-/* _________________________________________________________________________________ */
-/*| START CMD | C/R | CMD |[TOT LEN]| N.PARAM | PARAM LEN | PARAM | .. | END CMD | */
-/*|___________|______|______|_________|_________|___________|________|____|_________| */
-/*| 8 bit | 1bit | 7bit | 8bit | 8bit | 8bit | nbytes | .. | 8bit | */
-/*|___________|______|______|_________|_________|___________|________|____|_________| */
-
-void SpiDrv::sendCmd(uint8_t cmd, uint8_t numParam)
-{
- // Send Spi START CMD
- spiTransfer(START_CMD);
-
- //waitForSlaveSign();
- //wait the interrupt trigger on slave
- delayMicroseconds(SPI_START_CMD_DELAY);
-
- // Send Spi C + cmd
- spiTransfer(cmd & ~(REPLY_FLAG));
-
- // Send Spi totLen
- //spiTransfer(totLen);
-
- // Send Spi numParam
- spiTransfer(numParam);
-
- // If numParam == 0 send END CMD
- if (numParam == 0)
- spiTransfer(END_CMD);
-
-}
-
-SpiDrv spiDrv;
diff --git a/libraries/WiFi/utility/spi_drv.h b/libraries/WiFi/utility/spi_drv.h
deleted file mode 100644
index b7e4cb7..0000000
--- a/libraries/WiFi/utility/spi_drv.h
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef SPI_Drv_h
-#define SPI_Drv_h
-
-#include <inttypes.h>
-#include "wifi_spi.h"
-
-#define SPI_START_CMD_DELAY 10
-
-#define NO_LAST_PARAM 0
-#define LAST_PARAM 1
-
-#define DUMMY_DATA 0xFF
-
-#define WAIT_FOR_SLAVE_SELECT() \
- SpiDrv::waitForSlaveReady(); \
- SpiDrv::spiSlaveSelect();
-
-
-
-class SpiDrv
-{
-private:
- //static bool waitSlaveReady();
- static void waitForSlaveSign();
- static void getParam(uint8_t* param);
-public:
-
- static void begin();
-
- static void end();
-
- static void spiDriverInit();
-
- static void spiSlaveSelect();
-
- static void spiSlaveDeselect();
-
- static char spiTransfer(volatile char data);
-
- static void waitForSlaveReady();
-
- //static int waitSpiChar(char waitChar, char* readChar);
-
- static int waitSpiChar(unsigned char waitChar);
-
- static int readAndCheckChar(char checkChar, char* readChar);
-
- static char readChar();
-
- static int waitResponseParams(uint8_t cmd, uint8_t numParam, tParam* params);
-
- static int waitResponseCmd(uint8_t cmd, uint8_t numParam, uint8_t* param, uint8_t* param_len);
-
- static int waitResponseData8(uint8_t cmd, uint8_t* param, uint8_t* param_len);
-
- static int waitResponseData16(uint8_t cmd, uint8_t* param, uint16_t* param_len);
- /*
- static int waitResponse(uint8_t cmd, tParam* params, uint8_t* numParamRead, uint8_t maxNumParams);
-
- static int waitResponse(uint8_t cmd, uint8_t numParam, uint8_t* param, uint16_t* param_len);
-*/
- static int waitResponse(uint8_t cmd, uint8_t* numParamRead, uint8_t** params, uint8_t maxNumParams);
-
- static void sendParam(uint8_t* param, uint8_t param_len, uint8_t lastParam = NO_LAST_PARAM);
-
- static void sendParamLen8(uint8_t param_len);
-
- static void sendParamLen16(uint16_t param_len);
-
- static uint8_t readParamLen8(uint8_t* param_len = NULL);
-
- static uint16_t readParamLen16(uint16_t* param_len = NULL);
-
- static void sendBuffer(uint8_t* param, uint16_t param_len, uint8_t lastParam = NO_LAST_PARAM);
-
- static void sendParam(uint16_t param, uint8_t lastParam = NO_LAST_PARAM);
-
- static void sendCmd(uint8_t cmd, uint8_t numParam);
-};
-
-extern SpiDrv spiDrv;
-
-#endif
diff --git a/libraries/WiFi/utility/wifi_drv.cpp b/libraries/WiFi/utility/wifi_drv.cpp
deleted file mode 100644
index ccd5f25..0000000
--- a/libraries/WiFi/utility/wifi_drv.cpp
+++ /dev/null
@@ -1,560 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <stdint.h>
-
-#include "Arduino.h"
-#include "spi_drv.h"
-#include "wifi_drv.h"
-
-#define _DEBUG_
-
-extern "C" {
-#include "wifi_spi.h"
-#include "wl_types.h"
-#include "debug.h"
-}
-
-// Array of data to cache the information related to the networks discovered
-char WiFiDrv::_networkSsid[][WL_SSID_MAX_LENGTH] = {{"1"},{"2"},{"3"},{"4"},{"5"}};
-int32_t WiFiDrv::_networkRssi[WL_NETWORKS_LIST_MAXNUM] = { 0 };
-uint8_t WiFiDrv::_networkEncr[WL_NETWORKS_LIST_MAXNUM] = { 0 };
-
-// Cached values of retrieved data
-char WiFiDrv::_ssid[] = {0};
-uint8_t WiFiDrv::_bssid[] = {0};
-uint8_t WiFiDrv::_mac[] = {0};
-uint8_t WiFiDrv::_localIp[] = {0};
-uint8_t WiFiDrv::_subnetMask[] = {0};
-uint8_t WiFiDrv::_gatewayIp[] = {0};
-// Firmware version
-char WiFiDrv::fwVersion[] = {0};
-
-
-// Private Methods
-
-void WiFiDrv::getNetworkData(uint8_t *ip, uint8_t *mask, uint8_t *gwip)
-{
- tParam params[PARAM_NUMS_3] = { {0, (char*)ip}, {0, (char*)mask}, {0, (char*)gwip}};
-
- WAIT_FOR_SLAVE_SELECT();
-
- // Send Command
- SpiDrv::sendCmd(GET_IPADDR_CMD, PARAM_NUMS_1);
-
- uint8_t _dummy = DUMMY_DATA;
- SpiDrv::sendParam(&_dummy, sizeof(_dummy), LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- SpiDrv::waitResponseParams(GET_IPADDR_CMD, PARAM_NUMS_3, params);
-
- SpiDrv::spiSlaveDeselect();
-}
-
-void WiFiDrv::getRemoteData(uint8_t sock, uint8_t *ip, uint8_t *port)
-{
- tParam params[PARAM_NUMS_2] = { {0, (char*)ip}, {0, (char*)port} };
-
- WAIT_FOR_SLAVE_SELECT();
-
- // Send Command
- SpiDrv::sendCmd(GET_REMOTE_DATA_CMD, PARAM_NUMS_1);
- SpiDrv::sendParam(&sock, sizeof(sock), LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- SpiDrv::waitResponseParams(GET_REMOTE_DATA_CMD, PARAM_NUMS_2, params);
-
- SpiDrv::spiSlaveDeselect();
-}
-
-
-// Public Methods
-
-
-void WiFiDrv::wifiDriverInit()
-{
- SpiDrv::begin();
-}
-
-int8_t WiFiDrv::wifiSetNetwork(char* ssid, uint8_t ssid_len)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(SET_NET_CMD, PARAM_NUMS_1);
- SpiDrv::sendParam((uint8_t*)ssid, ssid_len, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseCmd(SET_NET_CMD, PARAM_NUMS_1, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- _data = WL_FAILURE;
- }
- SpiDrv::spiSlaveDeselect();
-
- return(_data == WIFI_SPI_ACK) ? WL_SUCCESS : WL_FAILURE;
-}
-
-int8_t WiFiDrv::wifiSetPassphrase(char* ssid, uint8_t ssid_len, const char *passphrase, const uint8_t len)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(SET_PASSPHRASE_CMD, PARAM_NUMS_2);
- SpiDrv::sendParam((uint8_t*)ssid, ssid_len, NO_LAST_PARAM);
- SpiDrv::sendParam((uint8_t*)passphrase, len, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseCmd(SET_PASSPHRASE_CMD, PARAM_NUMS_1, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- _data = WL_FAILURE;
- }
- SpiDrv::spiSlaveDeselect();
- return _data;
-}
-
-
-int8_t WiFiDrv::wifiSetKey(char* ssid, uint8_t ssid_len, uint8_t key_idx, const void *key, const uint8_t len)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(SET_KEY_CMD, PARAM_NUMS_3);
- SpiDrv::sendParam((uint8_t*)ssid, ssid_len, NO_LAST_PARAM);
- SpiDrv::sendParam(&key_idx, KEY_IDX_LEN, NO_LAST_PARAM);
- SpiDrv::sendParam((uint8_t*)key, len, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseCmd(SET_KEY_CMD, PARAM_NUMS_1, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- _data = WL_FAILURE;
- }
- SpiDrv::spiSlaveDeselect();
- return _data;
-}
-
-void WiFiDrv::config(uint8_t validParams, uint32_t local_ip, uint32_t gateway, uint32_t subnet)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(SET_IP_CONFIG_CMD, PARAM_NUMS_4);
- SpiDrv::sendParam((uint8_t*)&validParams, 1, NO_LAST_PARAM);
- SpiDrv::sendParam((uint8_t*)&local_ip, 4, NO_LAST_PARAM);
- SpiDrv::sendParam((uint8_t*)&gateway, 4, NO_LAST_PARAM);
- SpiDrv::sendParam((uint8_t*)&subnet, 4, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseCmd(SET_IP_CONFIG_CMD, PARAM_NUMS_1, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- _data = WL_FAILURE;
- }
- SpiDrv::spiSlaveDeselect();
-}
-
-void WiFiDrv::setDNS(uint8_t validParams, uint32_t dns_server1, uint32_t dns_server2)
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(SET_DNS_CONFIG_CMD, PARAM_NUMS_3);
- SpiDrv::sendParam((uint8_t*)&validParams, 1, NO_LAST_PARAM);
- SpiDrv::sendParam((uint8_t*)&dns_server1, 4, NO_LAST_PARAM);
- SpiDrv::sendParam((uint8_t*)&dns_server2, 4, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseCmd(SET_DNS_CONFIG_CMD, PARAM_NUMS_1, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- _data = WL_FAILURE;
- }
- SpiDrv::spiSlaveDeselect();
-}
-
-
-
-int8_t WiFiDrv::disconnect()
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(DISCONNECT_CMD, PARAM_NUMS_1);
-
- uint8_t _dummy = DUMMY_DATA;
- SpiDrv::sendParam(&_dummy, 1, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- int8_t result = SpiDrv::waitResponseCmd(DISCONNECT_CMD, PARAM_NUMS_1, &_data, &_dataLen);
-
- SpiDrv::spiSlaveDeselect();
-
- return result;
-}
-
-uint8_t WiFiDrv::getConnectionStatus()
-{
- WAIT_FOR_SLAVE_SELECT();
-
- // Send Command
- SpiDrv::sendCmd(GET_CONN_STATUS_CMD, PARAM_NUMS_0);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = -1;
- uint8_t _dataLen = 0;
- SpiDrv::waitResponseCmd(GET_CONN_STATUS_CMD, PARAM_NUMS_1, &_data, &_dataLen);
-
- SpiDrv::spiSlaveDeselect();
-
- return _data;
-}
-
-uint8_t* WiFiDrv::getMacAddress()
-{
- WAIT_FOR_SLAVE_SELECT();
-
- // Send Command
- SpiDrv::sendCmd(GET_MACADDR_CMD, PARAM_NUMS_1);
-
- uint8_t _dummy = DUMMY_DATA;
- SpiDrv::sendParam(&_dummy, 1, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _dataLen = 0;
- SpiDrv::waitResponseCmd(GET_MACADDR_CMD, PARAM_NUMS_1, _mac, &_dataLen);
-
- SpiDrv::spiSlaveDeselect();
-
- return _mac;
-}
-
-void WiFiDrv::getIpAddress(IPAddress& ip)
-{
- getNetworkData(_localIp, _subnetMask, _gatewayIp);
- ip = _localIp;
-}
-
- void WiFiDrv::getSubnetMask(IPAddress& mask)
- {
- getNetworkData(_localIp, _subnetMask, _gatewayIp);
- mask = _subnetMask;
- }
-
- void WiFiDrv::getGatewayIP(IPAddress& ip)
- {
- getNetworkData(_localIp, _subnetMask, _gatewayIp);
- ip = _gatewayIp;
- }
-
-char* WiFiDrv::getCurrentSSID()
-{
- WAIT_FOR_SLAVE_SELECT();
-
- // Send Command
- SpiDrv::sendCmd(GET_CURR_SSID_CMD, PARAM_NUMS_1);
-
- uint8_t _dummy = DUMMY_DATA;
- SpiDrv::sendParam(&_dummy, 1, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _dataLen = 0;
- SpiDrv::waitResponseCmd(GET_CURR_SSID_CMD, PARAM_NUMS_1, (uint8_t*)_ssid, &_dataLen);
-
- SpiDrv::spiSlaveDeselect();
-
- return _ssid;
-}
-
-uint8_t* WiFiDrv::getCurrentBSSID()
-{
- WAIT_FOR_SLAVE_SELECT();
-
- // Send Command
- SpiDrv::sendCmd(GET_CURR_BSSID_CMD, PARAM_NUMS_1);
-
- uint8_t _dummy = DUMMY_DATA;
- SpiDrv::sendParam(&_dummy, 1, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _dataLen = 0;
- SpiDrv::waitResponseCmd(GET_CURR_BSSID_CMD, PARAM_NUMS_1, _bssid, &_dataLen);
-
- SpiDrv::spiSlaveDeselect();
-
- return _bssid;
-}
-
-int32_t WiFiDrv::getCurrentRSSI()
-{
- WAIT_FOR_SLAVE_SELECT();
-
- // Send Command
- SpiDrv::sendCmd(GET_CURR_RSSI_CMD, PARAM_NUMS_1);
-
- uint8_t _dummy = DUMMY_DATA;
- SpiDrv::sendParam(&_dummy, 1, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _dataLen = 0;
- int32_t rssi = 0;
- SpiDrv::waitResponseCmd(GET_CURR_RSSI_CMD, PARAM_NUMS_1, (uint8_t*)&rssi, &_dataLen);
-
- SpiDrv::spiSlaveDeselect();
-
- return rssi;
-}
-
-uint8_t WiFiDrv::getCurrentEncryptionType()
-{
- WAIT_FOR_SLAVE_SELECT();
-
- // Send Command
- SpiDrv::sendCmd(GET_CURR_ENCT_CMD, PARAM_NUMS_1);
-
- uint8_t _dummy = DUMMY_DATA;
- SpiDrv::sendParam(&_dummy, 1, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t dataLen = 0;
- uint8_t encType = 0;
- SpiDrv::waitResponseCmd(GET_CURR_ENCT_CMD, PARAM_NUMS_1, (uint8_t*)&encType, &dataLen);
-
- SpiDrv::spiSlaveDeselect();
-
- return encType;
-}
-
-int8_t WiFiDrv::startScanNetworks()
-{
- WAIT_FOR_SLAVE_SELECT();
-
- // Send Command
- SpiDrv::sendCmd(START_SCAN_NETWORKS, PARAM_NUMS_0);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
-
- if (!SpiDrv::waitResponseCmd(START_SCAN_NETWORKS, PARAM_NUMS_1, &_data, &_dataLen))
- {
- WARN("error waitResponse");
- _data = WL_FAILURE;
- }
-
- SpiDrv::spiSlaveDeselect();
-
- return (_data == WL_FAILURE)? _data : WL_SUCCESS;
-}
-
-
-uint8_t WiFiDrv::getScanNetworks()
-{
- WAIT_FOR_SLAVE_SELECT();
-
- // Send Command
- SpiDrv::sendCmd(SCAN_NETWORKS, PARAM_NUMS_0);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t ssidListNum = 0;
- SpiDrv::waitResponse(SCAN_NETWORKS, &ssidListNum, (uint8_t**)_networkSsid, WL_NETWORKS_LIST_MAXNUM);
-
- SpiDrv::spiSlaveDeselect();
-
- return ssidListNum;
-}
-
-char* WiFiDrv::getSSIDNetoworks(uint8_t networkItem)
-{
- if (networkItem >= WL_NETWORKS_LIST_MAXNUM)
- return NULL;
-
- return _networkSsid[networkItem];
-}
-
-uint8_t WiFiDrv::getEncTypeNetowrks(uint8_t networkItem)
-{
- if (networkItem >= WL_NETWORKS_LIST_MAXNUM)
- return NULL;
-
- WAIT_FOR_SLAVE_SELECT();
-
- // Send Command
- SpiDrv::sendCmd(GET_IDX_ENCT_CMD, PARAM_NUMS_1);
-
- SpiDrv::sendParam(&networkItem, 1, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t dataLen = 0;
- uint8_t encType = 0;
- SpiDrv::waitResponseCmd(GET_IDX_ENCT_CMD, PARAM_NUMS_1, (uint8_t*)&encType, &dataLen);
-
- SpiDrv::spiSlaveDeselect();
-
- return encType;
-}
-
-int32_t WiFiDrv::getRSSINetoworks(uint8_t networkItem)
-{
- if (networkItem >= WL_NETWORKS_LIST_MAXNUM)
- return NULL;
- int32_t networkRssi = 0;
-
- WAIT_FOR_SLAVE_SELECT();
-
- // Send Command
- SpiDrv::sendCmd(GET_IDX_RSSI_CMD, PARAM_NUMS_1);
-
- SpiDrv::sendParam(&networkItem, 1, LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t dataLen = 0;
- SpiDrv::waitResponseCmd(GET_IDX_RSSI_CMD, PARAM_NUMS_1, (uint8_t*)&networkRssi, &dataLen);
-
- SpiDrv::spiSlaveDeselect();
-
- return networkRssi;
-}
-
-uint8_t WiFiDrv::reqHostByName(const char* aHostname)
-{
- WAIT_FOR_SLAVE_SELECT();
-
- // Send Command
- SpiDrv::sendCmd(REQ_HOST_BY_NAME_CMD, PARAM_NUMS_1);
- SpiDrv::sendParam((uint8_t*)aHostname, strlen(aHostname), LAST_PARAM);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _data = 0;
- uint8_t _dataLen = 0;
- uint8_t result = SpiDrv::waitResponseCmd(REQ_HOST_BY_NAME_CMD, PARAM_NUMS_1, &_data, &_dataLen);
-
- SpiDrv::spiSlaveDeselect();
-
- return result;
-}
-
-int WiFiDrv::getHostByName(IPAddress& aResult)
-{
- uint8_t _ipAddr[WL_IPV4_LENGTH];
- IPAddress dummy(0xFF,0xFF,0xFF,0xFF);
- int result = 0;
-
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(GET_HOST_BY_NAME_CMD, PARAM_NUMS_0);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseCmd(GET_HOST_BY_NAME_CMD, PARAM_NUMS_1, _ipAddr, &_dataLen))
- {
- WARN("error waitResponse");
- }else{
- aResult = _ipAddr;
- result = (aResult != dummy);
- }
- SpiDrv::spiSlaveDeselect();
- return result;
-}
-
-int WiFiDrv::getHostByName(const char* aHostname, IPAddress& aResult)
-{
- uint8_t retry = 10;
- if (reqHostByName(aHostname))
- {
- while(!getHostByName(aResult) && --retry > 0)
- {
- delay(1000);
- }
- }else{
- return 0;
- }
- return (retry>0);
-}
-
-char* WiFiDrv::getFwVersion()
-{
- WAIT_FOR_SLAVE_SELECT();
- // Send Command
- SpiDrv::sendCmd(GET_FW_VERSION_CMD, PARAM_NUMS_0);
-
- //Wait the reply elaboration
- SpiDrv::waitForSlaveReady();
-
- // Wait for reply
- uint8_t _dataLen = 0;
- if (!SpiDrv::waitResponseCmd(GET_FW_VERSION_CMD, PARAM_NUMS_1, (uint8_t*)fwVersion, &_dataLen))
- {
- WARN("error waitResponse");
- }
- SpiDrv::spiSlaveDeselect();
- return fwVersion;
-}
-
-WiFiDrv wiFiDrv;
diff --git a/libraries/WiFi/utility/wifi_drv.h b/libraries/WiFi/utility/wifi_drv.h
deleted file mode 100644
index d6ec029..0000000
--- a/libraries/WiFi/utility/wifi_drv.h
+++ /dev/null
@@ -1,248 +0,0 @@
-#ifndef WiFi_Drv_h
-#define WiFi_Drv_h
-
-#include <inttypes.h>
-#include "wifi_spi.h"
-#include "IPAddress.h"
-#include "../WiFiUdp.h"
-
-// Key index length
-#define KEY_IDX_LEN 1
-// 5 secs of delay to have the connection established
-#define WL_DELAY_START_CONNECTION 5000
-// firmware version string length
-#define WL_FW_VER_LENGTH 6
-
-class WiFiDrv
-{
-private:
- // settings of requested network
- static char _networkSsid[WL_NETWORKS_LIST_MAXNUM][WL_SSID_MAX_LENGTH];
- static int32_t _networkRssi[WL_NETWORKS_LIST_MAXNUM];
- static uint8_t _networkEncr[WL_NETWORKS_LIST_MAXNUM];
-
- // firmware version string in the format a.b.c
- static char fwVersion[WL_FW_VER_LENGTH];
-
- // settings of current selected network
- static char _ssid[WL_SSID_MAX_LENGTH];
- static uint8_t _bssid[WL_MAC_ADDR_LENGTH];
- static uint8_t _mac[WL_MAC_ADDR_LENGTH];
- static uint8_t _localIp[WL_IPV4_LENGTH];
- static uint8_t _subnetMask[WL_IPV4_LENGTH];
- static uint8_t _gatewayIp[WL_IPV4_LENGTH];
-
- /*
- * Get network Data information
- */
- static void getNetworkData(uint8_t *ip, uint8_t *mask, uint8_t *gwip);
-
- static uint8_t reqHostByName(const char* aHostname);
-
- static int getHostByName(IPAddress& aResult);
-
- /*
- * Get remote Data information on UDP socket
- */
- static void getRemoteData(uint8_t sock, uint8_t *ip, uint8_t *port);
-
-public:
-
- /*
- * Driver initialization
- */
- static void wifiDriverInit();
-
- /*
- * Set the desired network which the connection manager should try to
- * connect to.
- *
- * The ssid of the desired network should be specified.
- *
- * param ssid: The ssid of the desired network.
- * param ssid_len: Lenght of ssid string.
- * return: WL_SUCCESS or WL_FAILURE
- */
- static int8_t wifiSetNetwork(char* ssid, uint8_t ssid_len);
-
- /* Start Wifi connection with passphrase
- * the most secure supported mode will be automatically selected
- *
- * param ssid: Pointer to the SSID string.
- * param ssid_len: Lenght of ssid string.
- * param passphrase: Passphrase. Valid characters in a passphrase
- * must be between ASCII 32-126 (decimal).
- * param len: Lenght of passphrase string.
- * return: WL_SUCCESS or WL_FAILURE
- */
- static int8_t wifiSetPassphrase(char* ssid, uint8_t ssid_len, const char *passphrase, const uint8_t len);
-
- /* 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 ssid_len: Lenght of ssid string.
- * param key_idx: The key index to set. Valid values are 0-3.
- * param key: Key input buffer.
- * param len: Lenght of key string.
- * return: WL_SUCCESS or WL_FAILURE
- */
- static int8_t wifiSetKey(char* ssid, uint8_t ssid_len, uint8_t key_idx, const void *key, const uint8_t len);
-
- /* Set ip configuration disabling dhcp client
- *
- * param validParams: set the number of parameters that we want to change
- * i.e. validParams = 1 means that we'll change only ip address
- * validParams = 3 means that we'll change ip address, gateway and netmask
- * param local_ip: Static ip configuration
- * param gateway: Static gateway configuration
- * param subnet: Static subnet mask configuration
- */
- static void config(uint8_t validParams, uint32_t local_ip, uint32_t gateway, uint32_t subnet);
-
- /* Set DNS ip configuration
- *
- * param validParams: set the number of parameters that we want to change
- * i.e. validParams = 1 means that we'll change only dns_server1
- * validParams = 2 means that we'll change dns_server1 and dns_server2
- * param dns_server1: Static DNS server1 configuration
- * param dns_server2: Static DNS server2 configuration
- */
- static void setDNS(uint8_t validParams, uint32_t dns_server1, uint32_t dns_server2);
-
- /*
- * Disconnect from the network
- *
- * return: WL_SUCCESS or WL_FAILURE
- */
- static int8_t disconnect();
-
- /*
- * Disconnect from the network
- *
- * return: one value of wl_status_t enum
- */
- static uint8_t getConnectionStatus();
-
- /*
- * Get the interface MAC address.
- *
- * return: pointer to uint8_t array with length WL_MAC_ADDR_LENGTH
- */
- static uint8_t* getMacAddress();
-
- /*
- * Get the interface IP address.
- *
- * return: copy the ip address value in IPAddress object
- */
- static void getIpAddress(IPAddress& ip);
-
- /*
- * Get the interface subnet mask address.
- *
- * return: copy the subnet mask address value in IPAddress object
- */
- static void getSubnetMask(IPAddress& mask);
-
- /*
- * Get the gateway ip address.
- *
- * return: copy the gateway ip address value in IPAddress object
- */
- static void getGatewayIP(IPAddress& ip);
-
- /*
- * Return the current SSID associated with the network
- *
- * return: ssid string
- */
- static char* getCurrentSSID();
-
- /*
- * 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
- */
- static uint8_t* getCurrentBSSID();
-
- /*
- * Return the current RSSI /Received Signal Strength in dBm)
- * associated with the network
- *
- * return: signed value
- */
- static int32_t getCurrentRSSI();
-
- /*
- * Return the Encryption Type associated with the network
- *
- * return: one value of wl_enc_type enum
- */
- static uint8_t getCurrentEncryptionType();
-
- /*
- * Start scan WiFi networks available
- *
- * return: Number of discovered networks
- */
- static int8_t startScanNetworks();
-
- /*
- * Get the networks available
- *
- * return: Number of discovered networks
- */
- static uint8_t getScanNetworks();
-
- /*
- * 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
- */
- static char* getSSIDNetoworks(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
- */
- static int32_t getRSSINetoworks(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
- */
- static uint8_t getEncTypeNetowrks(uint8_t networkItem);
-
- /*
- * 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
- */
- static int getHostByName(const char* aHostname, IPAddress& aResult);
-
- /*
- * Get the firmware version
- * result: version as string with this format a.b.c
- */
- static char* getFwVersion();
-
- friend class WiFiUDP;
-
-};
-
-extern WiFiDrv wiFiDrv;
-
-#endif
diff --git a/libraries/WiFi/utility/wifi_spi.h b/libraries/WiFi/utility/wifi_spi.h
deleted file mode 100644
index 8856e33..0000000
--- a/libraries/WiFi/utility/wifi_spi.h
+++ /dev/null
@@ -1,153 +0,0 @@
-#ifndef WiFi_Spi_h
-#define WiFi_Spi_h
-
-#include "wl_definitions.h"
-
-#define CMD_FLAG 0
-#define REPLY_FLAG 1<<7
-#define DATA_FLAG 0x40
-
-#define WIFI_SPI_ACK 1
-#define WIFI_SPI_ERR 0xFF
-
-#define TIMEOUT_CHAR 1000
-
-//#define MAX_SOCK_NUM 4 /**< Maxmium number of socket */
-#define NO_SOCKET_AVAIL 255
-
-#define START_CMD 0xE0
-#define END_CMD 0xEE
-#define ERR_CMD 0xEF
-#define CMD_POS 1 // Position of Command OpCode on SPI stream
-#define PARAM_LEN_POS 2 // Position of Param len on SPI stream
-
-
-enum {
- SET_NET_CMD = 0x10,
- SET_PASSPHRASE_CMD = 0x11,
- SET_KEY_CMD = 0x12,
- TEST_CMD = 0x13,
- SET_IP_CONFIG_CMD = 0x14,
- SET_DNS_CONFIG_CMD = 0x15,
-
- GET_CONN_STATUS_CMD = 0x20,
- GET_IPADDR_CMD = 0x21,
- GET_MACADDR_CMD = 0x22,
- GET_CURR_SSID_CMD = 0x23,
- GET_CURR_BSSID_CMD = 0x24,
- GET_CURR_RSSI_CMD = 0x25,
- GET_CURR_ENCT_CMD = 0x26,
- SCAN_NETWORKS = 0x27,
- START_SERVER_TCP_CMD= 0x28,
- GET_STATE_TCP_CMD = 0x29,
- DATA_SENT_TCP_CMD = 0x2A,
- AVAIL_DATA_TCP_CMD = 0x2B,
- GET_DATA_TCP_CMD = 0x2C,
- START_CLIENT_TCP_CMD= 0x2D,
- STOP_CLIENT_TCP_CMD = 0x2E,
- GET_CLIENT_STATE_TCP_CMD= 0x2F,
- DISCONNECT_CMD = 0x30,
- GET_IDX_SSID_CMD = 0x31,
- GET_IDX_RSSI_CMD = 0x32,
- GET_IDX_ENCT_CMD = 0x33,
- REQ_HOST_BY_NAME_CMD= 0x34,
- GET_HOST_BY_NAME_CMD= 0x35,
- START_SCAN_NETWORKS = 0x36,
- GET_FW_VERSION_CMD = 0x37,
- GET_TEST_CMD = 0x38,
- SEND_DATA_UDP_CMD = 0x39,
- GET_REMOTE_DATA_CMD = 0x3A,
-
- // All command with DATA_FLAG 0x40 send a 16bit Len
-
- SEND_DATA_TCP_CMD = 0x44,
- GET_DATABUF_TCP_CMD = 0x45,
- INSERT_DATABUF_CMD = 0x46,
-};
-
-
-enum wl_tcp_state {
- CLOSED = 0,
- LISTEN = 1,
- SYN_SENT = 2,
- SYN_RCVD = 3,
- ESTABLISHED = 4,
- FIN_WAIT_1 = 5,
- FIN_WAIT_2 = 6,
- CLOSE_WAIT = 7,
- CLOSING = 8,
- LAST_ACK = 9,
- TIME_WAIT = 10
-};
-
-
-enum numParams{
- PARAM_NUMS_0,
- PARAM_NUMS_1,
- PARAM_NUMS_2,
- PARAM_NUMS_3,
- PARAM_NUMS_4,
- PARAM_NUMS_5,
- MAX_PARAM_NUMS
-};
-
-#define MAX_PARAMS MAX_PARAM_NUMS-1
-#define PARAM_LEN_SIZE 1
-
-typedef struct __attribute__((__packed__))
-{
- uint8_t paramLen;
- char* param;
-}tParam;
-
-typedef struct __attribute__((__packed__))
-{
- uint16_t dataLen;
- char* data;
-}tDataParam;
-
-
-typedef struct __attribute__((__packed__))
-{
- unsigned char cmd;
- unsigned char tcmd;
- unsigned char nParam;
- tParam params[MAX_PARAMS];
-}tSpiMsg;
-
-typedef struct __attribute__((__packed__))
-{
- unsigned char cmd;
- unsigned char tcmd;
- unsigned char nParam;
- tDataParam params[MAX_PARAMS];
-}tSpiMsgData;
-
-
-typedef struct __attribute__((__packed__))
-{
- unsigned char cmd;
- unsigned char tcmd;
- //unsigned char totLen;
- unsigned char nParam;
-}tSpiHdr;
-
-typedef struct __attribute__((__packed__))
-{
- uint8_t paramLen;
- uint32_t param;
-}tLongParam;
-
-typedef struct __attribute__((__packed__))
-{
- uint8_t paramLen;
- uint16_t param;
-}tIntParam;
-
-typedef struct __attribute__((__packed__))
-{
- uint8_t paramLen;
- uint8_t param;
-}tByteParam;
-
-#endif
diff --git a/libraries/WiFi/utility/wl_definitions.h b/libraries/WiFi/utility/wl_definitions.h
deleted file mode 100644
index 1ec8e71..0000000
--- a/libraries/WiFi/utility/wl_definitions.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * wl_definitions.h
- *
- * Created on: Mar 6, 2011
- * Author: dlafauci
- */
-
-#ifndef WL_DEFINITIONS_H_
-#define WL_DEFINITIONS_H_
-
-// Maximum size of a SSID
-#define WL_SSID_MAX_LENGTH 32
-// Length of passphrase. Valid lengths are 8-63.
-#define WL_WPA_KEY_MAX_LENGTH 63
-// Length of key in bytes. Valid values are 5 and 13.
-#define WL_WEP_KEY_MAX_LENGTH 13
-// Size of a MAC-address or BSSID
-#define WL_MAC_ADDR_LENGTH 6
-// Size of a MAC-address or BSSID
-#define WL_IPV4_LENGTH 4
-// Maximum size of a SSID list
-#define WL_NETWORKS_LIST_MAXNUM 10
-// Maxmium number of socket
-#define MAX_SOCK_NUM 4
-// Default state value for Wifi state field
-#define NA_STATE -1
-//Maximum number of attempts to establish wifi connection
-#define WL_MAX_ATTEMPT_CONNECTION 10
-
-typedef enum {
- WL_NO_SHIELD = 255,
- WL_IDLE_STATUS = 0,
- WL_NO_SSID_AVAIL,
- WL_SCAN_COMPLETED,
- WL_CONNECTED,
- WL_CONNECT_FAILED,
- WL_CONNECTION_LOST,
- WL_DISCONNECTED
-} wl_status_t;
-
-/* Encryption modes */
-enum wl_enc_type { /* Values map to 802.11 encryption suites... */
- ENC_TYPE_WEP = 5,
- ENC_TYPE_TKIP = 2,
- ENC_TYPE_CCMP = 4,
- /* ... except these two, 7 and 8 are reserved in 802.11-2007 */
- ENC_TYPE_NONE = 7,
- ENC_TYPE_AUTO = 8
-};
-
-
-#endif /* WL_DEFINITIONS_H_ */
diff --git a/libraries/WiFi/utility/wl_types.h b/libraries/WiFi/utility/wl_types.h
deleted file mode 100644
index 82b309d..0000000
--- a/libraries/WiFi/utility/wl_types.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * wl_types.h
- *
- * Created on: Jul 30, 2010
- * Author: dlafauci
- */
-
-
-#ifndef _WL_TYPES_H_
-#define _WL_TYPES_H_
-
-#include <inttypes.h>
-
-typedef enum {
- WL_FAILURE = -1,
- WL_SUCCESS = 1,
-} wl_error_code_t;
-
-/* Authentication modes */
-enum wl_auth_mode {
- AUTH_MODE_INVALID,
- AUTH_MODE_AUTO,
- AUTH_MODE_OPEN_SYSTEM,
- AUTH_MODE_SHARED_KEY,
- AUTH_MODE_WPA,
- AUTH_MODE_WPA2,
- AUTH_MODE_WPA_PSK,
- AUTH_MODE_WPA2_PSK
-};
-
-#endif //_WL_TYPES_H_