diff options
Diffstat (limited to 'libraries/WiFi')
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(¶m[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_
  | 
