Commit Graph

313 Commits

Author SHA1 Message Date
David A. Mellis a770593e6f Changing Serial.flush() to write outgoing data, not drop incoming data.
This brings it in line with most other uses of flush(), both in and out of Arduino.
http://code.google.com/p/arduino/issues/detail?id=497
2011-05-07 12:05:27 -04:00
amcewen a2b8e2c9ae Added virtual destructor to Printable, which also requires new and delete operators to be added 2011-04-10 11:34:40 +01:00
amcewen f90175a362 Added a brief explanation of how you'd use Printable 2011-04-02 11:33:27 +01:00
amcewen 94b279a3b3 Added Printable interface class to allow printing of classes such as IPAddress 2011-04-01 21:10:38 +01:00
amcewen c873739ec3 Pulled out Server API into the NetServer base class, and a few minor changes to get the NetClient API to work well with the WiFly library 2011-03-31 16:19:17 +01:00
David A. Mellis 06eafe4df2 Restoring concatenation of built-in types with String. 2011-03-31 10:56:14 -04:00
amcewen 8175724830 Pulled out Client API into a base class to allow multiple derived classes to use it, and moved it (plus IPAddress) out of the Ethernet library so that other libraries can find it. First steps in integrating the WiFly code so it's easier to switch between that and Ethernet 2011-03-28 12:08:53 +01:00
David A. Mellis e7dea10170 Adding F("foo") syntax for flash strings. 2011-03-27 15:06:20 -04:00
David A. Mellis f88d528afa String: removing implicit numeric conversions and new approach to "if (s)".
This makes explicit the String constructors that take numeric types and chars and removes the versions of concat() and operator=() and operator+() that accept numberic types.

It also replaces the operator bool() with a operator that converts to a function pointer.  This allows for uses like "if (s)" but not "s + 123".  See: http://www.artima.com/cppsource/safebool.html.  This allowed removing the disambiguating operator+() functions and relying solely on StringSumHelper and anonymous temporaries once again.

Also, now treating unsigned char's like int when constructing Strings from them, i.e. String(byte(65)) is now "65" not "A".  This is consistent with the new behavior of Serial.print(byte).
2011-03-26 18:52:54 -04:00
David A. Mellis d1857a7987 Commenting String API behavior. 2011-03-23 22:42:05 -04:00
David A. Mellis 117bdcb3dd Return an invalid string (not a partial one) when operator+() fails. 2011-03-19 11:14:17 -04:00
David A. Mellis fb4e318ffa Starting to distinguish between empty strings and invalid (null) ones. 2011-03-18 21:45:27 -04:00
David A. Mellis 2bc205c5b8 Protecting String copy() and move(). 2011-03-13 19:39:04 -04:00
David A. Mellis 5a2ab1c058 Adding additional String + operators for disambiguation.
The operator bool() means that you could implicitly convert a String to a bool and then add it to it an int, for example.  Which means our operator+ has to match exactly or it will be ambiguous.
2011-03-13 19:31:10 -04:00
David A. Mellis 68f97155ec Moving move() to __GXX_EXPERIMENTAL_CXX0X__ only, adding operator bool(). 2011-03-13 16:46:06 -04:00
David A. Mellis 82fcee457c Modifying String.concat() to return success or failure, not this.
Which means you can't chain multiple concat() calls together, but you can check if they succeeded or not.
2011-03-12 14:03:34 -05:00
David A. Mellis cc3671e0c8 Don't return the string when modifying its value.
Changing toLowerCase(), toUpperCase(), trim() and replace() to return void instead of a reference to the string that's just been changed.  That way, it's clear that the functions modify the string they've been called on.
2011-03-11 18:54:58 -05:00
David A. Mellis 5c29add087 Renaming append() back to concat(). 2011-03-11 18:04:31 -05:00
David A. Mellis 5797e9bbbe Removing F("string") syntax for now.
We should probably add something like this back in later, but I want to do one thing at a time.  This removes the __FlashStringHelper class as well.
2011-03-11 18:01:40 -05:00
David A. Mellis 3b952ba168 Rewrite of the String class by Paul Stoffregen.
http://www.pjrc.com/teensy/string_class_experimental.html
2011-03-11 17:56:10 -05:00
David A. Mellis b776fdfef3 Fixing typo in boards.txt. 2011-03-09 21:22:04 -05:00
David A. Mellis d9772552cd Flushing outgoing and incoming data in Serial.end().
That is, waiting for outgoing data to transmit and dropping any received data.
2011-03-06 12:20:42 -05:00
David A. Mellis 5a194a2e2c Fixing race condition in Serial write (Brian Cook). 2011-03-06 11:47:18 -05:00
David A. Mellis 0a49bcff46 Moving TCCR1B reset into #ifdef check. 2011-03-06 11:29:35 -05:00
David A. Mellis ca97a74b43 Implemented serial transmit buffering.
Now Serial.write() places characters in the transmit buffer, and the data register empty interrupt reads and transmit them.  Based loosely on the implementation here: ftp://wookey.org.uk/arduino.

http://code.google.com/p/arduino/issues/detail?id=262
2011-03-05 14:17:26 -05:00
David A. Mellis 8bfef072ae Factoring pin definitions out of the core.
That is, there's now a pins/ directory in a platform, which includes multiple directories, each of which has its own pins_arduino.h.  The boards.txt gets a new preferences, <BOARD>.build.pins, whose values is a sub-directory of the pins/ directory (possibly with a "platform:" prefix).  That sub-directory is then placed in the include path during compilation.
2011-03-04 21:05:05 -05:00
David A. Mellis e38419d19f Moving all pin definitions into pins_arduino.h.
This is a step towards providing portability across AVR's by simply including an appropriate header file.
2011-03-03 23:54:33 -05:00
David A. Mellis 77d1b45d0a Fixing warnings (David H. Lynch Jr). 2011-03-03 22:56:20 -05:00
David A. Mellis d0c2954080 Rearranging internal #defines in headers. 2011-03-03 18:57:05 -05:00
David A. Mellis aad5af4987 Removing optimized digitalWrite(), digitalRead(), pinMode(). 2011-03-03 18:46:45 -05:00
David A. Mellis 5a3f9030c7 Re-arranging header files and small fixes to optimized core functions. 2011-03-02 23:05:25 -05:00
David A. Mellis 1ae0c3a889 Moving wiring.h contents into Arduino.h. 2011-03-01 20:00:16 -05:00
David A. Mellis f2af8883a7 Renamed WProgram.h to Arduino.h. 2011-03-01 19:52:13 -05:00
David A. Mellis a3ac40f128 Removing BYTE keyword (use Serial.write() instead). 2011-02-26 13:58:03 -05:00
David A. Mellis 32235f1a74 Small optimization in HardwareSerial.
begin(long) -> begin(unsigned long)
2011-02-25 18:36:46 -05:00
David A. Mellis ff67f2a324 Merge branch 'master' into new-extension 2011-02-22 22:02:22 -05:00
David A. Mellis b3643c2827 Revert "Changes to optimized digitalWrte(), etc."
This reverts commit aa1f1cbda9d6bb52785f98b40746920853d6579b.
2011-02-18 10:41:29 -05:00
David A. Mellis 72bb1c6e70 Revert "Adding noAnalogWrite() function to disable PWM."
This reverts commit 38d4a34fec6925b29a732d13e200f54ee4b42025.
2011-02-18 10:40:56 -05:00
David A. Mellis 42fbb1e26e Adding noAnalogWrite() function to disable PWM.
Also, removing the inline version of digitalPinToTimer() (since we're not optimizing the functions that use it anyway).  The noAnalogWrite() function is in wiring_analog.c, deriving from the previous turnOffPWM() which has moved from wiring_digital.c.

http://code.google.com/p/arduino/issues/detail?id=476
2011-02-12 14:47:08 -05:00
David A. Mellis 05d59b6397 Changes to optimized digitalWrte(), etc.
Factoring out the implementation of digitalWrite(), digitalRead(), and pinMode() into macros that can either be inlined (for constant pin numbers) or executed within a function (non-constant pins).  Removing testing for timers on pins in digitalWrite(), digitalRead(), and pinMode().  Moving pin to port macros from pins_arduino.h to wiring.h.
2011-02-11 19:29:46 -05:00
David A. Mellis 308d62a867 Optimized digitalWrite(), etc. from Alvaro Lopez. 2011-02-11 17:53:24 -05:00
David A. Mellis 1cd6f6ac1a Fix to optiboot infinite loop problem.
Explicitly setting R1 to 0 so that the watchdog timer is properly initializing, preventing it from timing out and resetting the processor.

http://code.google.com/p/optiboot/issues/detail?id=26
http://code.google.com/p/arduino/issues/detail?id=446
2011-01-15 13:29:08 +00:00
David A. Mellis 663a17f491 Changing String append to use realloc(); thanks to Paul Stoffregen.
http://code.google.com/p/arduino/issues/detail?id=332
2010-12-11 15:22:07 -05:00
David A. Mellis bb086439e9 Minor ATmega8U2 firmware update and new .hex files.
Adding LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0 to makefile to save space, updating release number to 0x0001.
2010-12-04 14:28:56 -05:00
David A. Mellis f0a20f8d81 Minor bug fixes to the 8U2 USB-to-serial firmware. 2010-12-04 13:50:27 -05:00
David A. Mellis 529ceb6d3b Replacing custom String.toInt() function with a call to atol(). 2010-12-03 23:12:41 -05:00
David A. Mellis ce796ee8f1 Fixing Linux UNO serial bug (thanks to Dean Camera).
Enabling INTERRUPT_CONTROL_ENDPOINT in the makefile so we don't miss control messages from Linux.  Also deleted two unused USB events to save a few bytes of space (the Mega 2560 .hex is now exactly 4096 bytes).
2010-11-29 23:26:54 -05:00
David A. Mellis d656974cee Redoing 448222e4b65e0cf44dfc0c494f7f76901f1fabea without all the extra files.
Adds toInt() to String, WCharacter.h (from Wiring), and an SD Datalogger example.
2010-11-29 15:20:30 -05:00
David A. Mellis 393ca89a01 Revert "added toInt() function to WString".
This reverts commit 448222e4b65e0cf44dfc0c494f7f76901f1fabea.
2010-11-29 15:14:10 -05:00
Tom Igoe 711f4f95a0 added toInt() function to WString 2010-11-29 11:31:00 -05:00