diff options
21 files changed, 55 insertions, 124 deletions
diff --git a/cores/arduino/Arduino.h b/cores/arduino/Arduino.h index 02c2a8f..5596c14 100644 --- a/cores/arduino/Arduino.h +++ b/cores/arduino/Arduino.h @@ -48,7 +48,7 @@ void yield(void); #define EXTERNAL 1 #define INTERNAL 2 #else -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) #define INTERNAL1V1 2 #define INTERNAL2V56 3 #else diff --git a/cores/arduino/Stream.h b/cores/arduino/Stream.h index 58bbf75..007b4bc 100644 --- a/cores/arduino/Stream.h +++ b/cores/arduino/Stream.h @@ -37,7 +37,7 @@ readBytesBetween( pre_string, terminator, buffer, length) class Stream : public Print { - private: + protected: unsigned long _timeout; // number of milliseconds to wait for the next char before aborting timed read unsigned long _startMillis; // used for timeout measurement int timedRead(); // private method to read stream with timeout diff --git a/cores/arduino/WString.h b/cores/arduino/WString.h index 947325e..642b016 100644 --- a/cores/arduino/WString.h +++ b/cores/arduino/WString.h @@ -147,6 +147,7 @@ public: void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const; void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const {getBytes((unsigned char *)buf, bufsize, index);} + const char * c_str() const { return buffer; } // search int indexOf( char ch ) const; diff --git a/cores/arduino/wiring_analog.c b/cores/arduino/wiring_analog.c index 3f19c7f..7ed0e4e 100644 --- a/cores/arduino/wiring_analog.c +++ b/cores/arduino/wiring_analog.c @@ -45,7 +45,7 @@ int analogRead(uint8_t pin) if (pin >= 54) pin -= 54; // allow for channel or pin numbers #elif defined(__AVR_ATmega32U4__) if (pin >= 18) pin -= 18; // allow for channel or pin numbers -#elif defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) +#elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) if (pin >= 24) pin -= 24; // allow for channel or pin numbers #elif defined(analogPinToChannel) && (defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)) pin = analogPinToChannel(pin); diff --git a/cores/arduino/wiring_private.h b/cores/arduino/wiring_private.h index f678265..90dbf2c 100644 --- a/cores/arduino/wiring_private.h +++ b/cores/arduino/wiring_private.h @@ -54,7 +54,7 @@ extern "C"{ #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) #define EXTERNAL_NUM_INTERRUPTS 8 -#elif defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) +#elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) #define EXTERNAL_NUM_INTERRUPTS 3 #elif defined(__AVR_ATmega32U4__) #define EXTERNAL_NUM_INTERRUPTS 4 diff --git a/libraries/Ethernet/examples/DnsWebClient/DnsWebClient.ino b/libraries/Ethernet/examples/DnsWebClient/DnsWebClient.ino deleted file mode 100644 index c14abf4..0000000 --- a/libraries/Ethernet/examples/DnsWebClient/DnsWebClient.ino +++ /dev/null @@ -1,81 +0,0 @@ -/* - DNS and DHCP-based Web client - - This sketch connects to a website (http://www.google.com) - using an Arduino Wiznet Ethernet shield. - - Circuit: - * Ethernet shield attached to pins 10, 11, 12, 13 - - created 18 Dec 2009 - by David A. Mellis - modified 9 Apr 2012 - by Tom Igoe, based on work by Adrian McEwen - - */ - -#include <SPI.h> -#include <Ethernet.h> - -// Enter a MAC address for your controller below. -// Newer Ethernet shields have a MAC address printed on a sticker on the shield -byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 }; -char serverName[] = "www.google.com"; - -// 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): -EthernetClient client; - -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 - } - - - // start the Ethernet connection: - if (Ethernet.begin(mac) == 0) { - Serial.println("Failed to configure Ethernet using DHCP"); - // no point in carrying on, so do nothing forevermore: - while(true); - } - // give the Ethernet shield a second to initialize: - delay(1000); - Serial.println("connecting..."); - - // if you get a connection, report back via serial: - - if (client.connect(serverName, 80)) { - Serial.println("connected"); - // Make a HTTP request: - client.println("GET /search?q=arduino HTTP/1.0"); - client.println(); - } - else { - // kf you didn't get a connection to the server: - Serial.println("connection failed"); - } -} - -void loop() -{ - // if there are incoming bytes available - // from the server, read them and print them: - if (client.available()) { - char c = client.read(); - Serial.print(c); - } - - // if the server's disconnected, stop the client: - if (!client.connected()) { - Serial.println(); - Serial.println("disconnecting."); - client.stop(); - - // do nothing forevermore: - while(true); - } -} - diff --git a/libraries/Ethernet/examples/TwitterClient/TwitterClient.ino b/libraries/Ethernet/examples/TwitterClient/TwitterClient.ino index 3587d72..9fee1fe 100644 --- a/libraries/Ethernet/examples/TwitterClient/TwitterClient.ino +++ b/libraries/Ethernet/examples/TwitterClient/TwitterClient.ino @@ -127,6 +127,7 @@ void connectToServer() { // make HTTP GET request to twitter: client.println("GET /1/statuses/user_timeline.xml?screen_name=arduino&count=1 HTTP/1.1"); client.println("HOST: api.twitter.com"); + client.println("Connection: close"); client.println(); } // note the time of this connect attempt: diff --git a/libraries/Ethernet/examples/WebClient/WebClient.ino b/libraries/Ethernet/examples/WebClient/WebClient.ino index 5d5d7f2..40523a4 100644 --- a/libraries/Ethernet/examples/WebClient/WebClient.ino +++ b/libraries/Ethernet/examples/WebClient/WebClient.ino @@ -8,8 +8,9 @@ * Ethernet shield attached to pins 10, 11, 12, 13 created 18 Dec 2009 - modified 9 Apr 2012 by David A. Mellis + modified 9 Apr 2012 + by Tom Igoe, based on work by Adrian McEwen */ @@ -18,8 +19,14 @@ // Enter a MAC address for your controller below. // Newer Ethernet shields have a MAC address printed on a sticker on the shield -byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; -IPAddress server(173,194,33,104); // Google +byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; +// 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) + +// Set the static IP address to use if the DHCP fails to assign +IPAddress ip(192,168,0,177); // Initialize the Ethernet client library // with the IP address and port of the server @@ -37,8 +44,8 @@ void setup() { if (Ethernet.begin(mac) == 0) { Serial.println("Failed to configure Ethernet using DHCP"); // no point in carrying on, so do nothing forevermore: - for(;;) - ; + // try to congifure using IP address instead of DHCP: + Ethernet.begin(mac, ip); } // give the Ethernet shield a second to initialize: delay(1000); @@ -48,7 +55,9 @@ void setup() { if (client.connect(server, 80)) { Serial.println("connected"); // Make a HTTP request: - client.println("GET /search?q=arduino HTTP/1.0"); + client.println("GET /search?q=arduino HTTP/1.1"); + client.println("Host: www.google.com"); + client.println("Connection: close"); client.println(); } else { @@ -73,8 +82,7 @@ void loop() client.stop(); // do nothing forevermore: - for(;;) - ; + while(true); } } diff --git a/libraries/Ethernet/examples/WebServer/WebServer.ino b/libraries/Ethernet/examples/WebServer/WebServer.ino index 0573f05..5e5d67a 100644 --- a/libraries/Ethernet/examples/WebServer/WebServer.ino +++ b/libraries/Ethernet/examples/WebServer/WebServer.ino @@ -22,7 +22,7 @@ // The IP address will be dependent on your local network: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; -IPAddress ip(192,168,1, 177); +IPAddress ip(192,168,1,177); // Initialize the Ethernet server library // with the IP address and port you want to use @@ -63,12 +63,11 @@ void loop() { // send a standard http response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); - client.println("Connection: close"); + 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>"); - // add a meta refresh tag, so the browser pulls again every 5 seconds: - client.println("<meta http-equiv=\"refresh\" content=\"5\">"); // output the value of each analog input pin for (int analogChannel = 0; analogChannel < 6; analogChannel++) { int sensorReading = analogRead(analogChannel); diff --git a/libraries/GSM/examples/GSMPachubeClient/GSMPachubeClient.ino b/libraries/GSM/examples/GSMPachubeClient/GSMPachubeClient.ino index 445aab5..2885c9b 100644 --- a/libraries/GSM/examples/GSMPachubeClient/GSMPachubeClient.ino +++ b/libraries/GSM/examples/GSMPachubeClient/GSMPachubeClient.ino @@ -126,7 +126,7 @@ void sendData(int thisData) client.print("PUT /v2/feeds/"); client.print(FEEDID); client.println(".csv HTTP/1.1"); - client.print("Host: api.pachube.com\n"); + client.println("Host: api.pachube.com"); client.print("X-ApiKey: "); client.println(APIKEY); client.print("User-Agent: "); @@ -139,7 +139,7 @@ void sendData(int thisData) client.println(thisLength); // last pieces of the HTTP PUT request: - client.print("Content-Type: text/csv\n"); + client.println("Content-Type: text/csv"); client.println("Connection: close"); client.println(); diff --git a/libraries/GSM/examples/GSMPachubeClientString/GSMPachubeClientString.ino b/libraries/GSM/examples/GSMPachubeClientString/GSMPachubeClientString.ino index f28370e..9f6ea53 100644 --- a/libraries/GSM/examples/GSMPachubeClientString/GSMPachubeClientString.ino +++ b/libraries/GSM/examples/GSMPachubeClientString/GSMPachubeClientString.ino @@ -138,7 +138,7 @@ void sendData(String thisData) client.print("PUT /v2/feeds/"); client.print(FEEDID); client.println(".csv HTTP/1.1"); - client.print("Host: api.pachube.com\n"); + client.println("Host: api.pachube.com"); client.print("X-ApiKey: "); client.println(APIKEY); client.print("User-Agent: "); @@ -147,8 +147,8 @@ void sendData(String thisData) client.println(thisData.length()); // last pieces of the HTTP PUT request - client.print("Content-Type: text/csv\n"); - client.println("Connection: close\n"); + client.println("Content-Type: text/csv"); + client.println("Connection: close"); client.println(); // here's the actual content of the PUT request diff --git a/libraries/GSM/examples/GsmWebClient/GsmWebClient.ino b/libraries/GSM/examples/GsmWebClient/GsmWebClient.ino index 8a96367..e7eb275 100644 --- a/libraries/GSM/examples/GsmWebClient/GsmWebClient.ino +++ b/libraries/GSM/examples/GsmWebClient/GsmWebClient.ino @@ -2,8 +2,8 @@ Web client This sketch connects to a website through a GSM shield. Specifically, - this example downloads the URL "http://arduino.cc/" and prints it - to the Serial monitor. + this example downloads the URL "http://arduino.cc/asciilogo.txt" and + prints it to the Serial monitor. Circuit: * GSM shield attached to an Arduino @@ -34,7 +34,7 @@ GSM gsmAccess; // URL, path & port (for example: arduino.cc) char server[] = "arduino.cc"; -char path[] = "/"; +char path[] = "/asciilogo.txt"; int port = 80; // port 80 is the default for HTTP void setup() @@ -48,13 +48,13 @@ void setup() Serial.println("Starting Arduino web client."); // connection state boolean notConnected = true; - + // After starting the modem with GSM.begin() // attach the shield to the GPRS network with the APN, login and password while(notConnected) { if((gsmAccess.begin(PINNUMBER)==GSM_READY) & - (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD)==GPRS_READY)) + (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD)==GPRS_READY)) notConnected = false; else { @@ -72,7 +72,10 @@ void setup() // Make a HTTP request: client.print("GET "); client.print(path); - client.println(" HTTP/1.0"); + client.println(" HTTP/1.1"); + client.print("Host: "); + client.println(server); + client.println("Connection: close"); client.println(); } else @@ -91,7 +94,7 @@ void loop() char c = client.read(); Serial.print(c); } - + // if the server's disconnected, stop the client: if (!client.available() && !client.connected()) { diff --git a/libraries/SPI/examples/DigitalPotControl/DigitalPotControl.ino b/libraries/SPI/examples/DigitalPotControl/DigitalPotControl.ino index ef97dae..adf93a2 100644 --- a/libraries/SPI/examples/DigitalPotControl/DigitalPotControl.ino +++ b/libraries/SPI/examples/DigitalPotControl/DigitalPotControl.ino @@ -60,7 +60,7 @@ void loop() { } -int digitalPotWrite(int address, int value) { +void digitalPotWrite(int address, int value) { // take the SS pin low to select the chip: digitalWrite(slaveSelectPin,LOW); // send in the address and value via SPI: @@ -68,4 +68,4 @@ int digitalPotWrite(int address, int value) { SPI.transfer(value); // take the SS pin high to de-select the chip: digitalWrite(slaveSelectPin,HIGH); -}
\ No newline at end of file +} diff --git a/libraries/WiFi/examples/WifiChatServer/WifiChatServer.ino b/libraries/WiFi/examples/WiFiChatServer/WiFiChatServer.ino index e4b1d1a..e4b1d1a 100644 --- a/libraries/WiFi/examples/WifiChatServer/WifiChatServer.ino +++ b/libraries/WiFi/examples/WiFiChatServer/WiFiChatServer.ino diff --git a/libraries/WiFi/examples/WifiPachubeClient/WifiPachubeClient.ino b/libraries/WiFi/examples/WiFiPachubeClient/WiFiPachubeClient.ino index f8ffc07..f8ffc07 100644 --- a/libraries/WiFi/examples/WifiPachubeClient/WifiPachubeClient.ino +++ b/libraries/WiFi/examples/WiFiPachubeClient/WiFiPachubeClient.ino diff --git a/libraries/WiFi/examples/WifiPachubeClientString/WifiPachubeClientString.ino b/libraries/WiFi/examples/WiFiPachubeClientString/WiFiPachubeClientString.ino index 243fe83..243fe83 100644 --- a/libraries/WiFi/examples/WifiPachubeClientString/WifiPachubeClientString.ino +++ b/libraries/WiFi/examples/WiFiPachubeClientString/WiFiPachubeClientString.ino diff --git a/libraries/WiFi/examples/WifiTwitterClient/WifiTwitterClient.ino b/libraries/WiFi/examples/WiFiTwitterClient/WiFiTwitterClient.ino index 3dc2c8d..d500cfb 100644 --- a/libraries/WiFi/examples/WifiTwitterClient/WifiTwitterClient.ino +++ b/libraries/WiFi/examples/WiFiTwitterClient/WiFiTwitterClient.ino @@ -132,8 +132,8 @@ void connectToServer() { 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("Host: api.twitter.com"); + client.println("Connection: close"); client.println(); } // note the time of this connect attempt: diff --git a/libraries/WiFi/examples/WifiUdpSendReceiveString/WifiUdpSendReceiveString.ino b/libraries/WiFi/examples/WiFiUdpSendReceiveString/WiFiUdpSendReceiveString.ino index eb11295..eb11295 100644 --- a/libraries/WiFi/examples/WifiUdpSendReceiveString/WifiUdpSendReceiveString.ino +++ b/libraries/WiFi/examples/WiFiUdpSendReceiveString/WiFiUdpSendReceiveString.ino diff --git a/libraries/WiFi/examples/WifiWebClient/WifiWebClient.ino b/libraries/WiFi/examples/WiFiWebClient/WiFiWebClient.ino index 17f44a3..310ec46 100644 --- a/libraries/WiFi/examples/WifiWebClient/WifiWebClient.ino +++ b/libraries/WiFi/examples/WiFiWebClient/WiFiWebClient.ino @@ -31,8 +31,8 @@ int keyIndex = 0; // your network key Index number (needed only for W 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(173,194,73,105); // numeric IP for Google (no DNS) -//char server[] = "www.google.com"; // name address for Google (using DNS) +//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 @@ -54,7 +54,7 @@ void setup() { } // attempt to connect to Wifi network: - while ( status != WL_CONNECTED) { + 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: @@ -72,7 +72,7 @@ void setup() { 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("Host: www.google.com"); client.println("Connection: close"); client.println(); } diff --git a/libraries/WiFi/examples/WifiWebClientRepeating/WifiWebClientRepeating.ino b/libraries/WiFi/examples/WiFiWebClientRepeating/WiFiWebClientRepeating.ino index 96eb628..96eb628 100644 --- a/libraries/WiFi/examples/WifiWebClientRepeating/WifiWebClientRepeating.ino +++ b/libraries/WiFi/examples/WiFiWebClientRepeating/WiFiWebClientRepeating.ino diff --git a/libraries/WiFi/examples/WifiWebServer/WifiWebServer.ino b/libraries/WiFi/examples/WiFiWebServer/WiFiWebServer.ino index 7d7a247..de861e8 100644 --- a/libraries/WiFi/examples/WifiWebServer/WifiWebServer.ino +++ b/libraries/WiFi/examples/WiFiWebServer/WiFiWebServer.ino @@ -22,7 +22,7 @@ #include <WiFi.h> -char ssid[] = "yourNetwork"; // your network SSID (name) +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) @@ -78,12 +78,11 @@ void loop() { // send a standard http response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); - client.println("Connection: close"); + 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>"); - // add a meta refresh tag, so the browser pulls again every 5 seconds: - client.println("<meta http-equiv=\"refresh\" content=\"5\">"); // output the value of each analog input pin for (int analogChannel = 0; analogChannel < 6; analogChannel++) { int sensorReading = analogRead(analogChannel); @@ -108,9 +107,10 @@ void loop() { } // give the web browser time to receive the data delay(1); - // close the connection: - client.stop(); - Serial.println("client disonnected"); + + // close the connection: + client.stop(); + Serial.println("client disonnected"); } } |