1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-21 10:26:06 +03:00

38 Commits

Author SHA1 Message Date
Earle F. Philhower, III
7f38e141c7
BREAKING: Add Print::availableForWrite method (#7658)
* Add Print::availableForWrite method

Adds an availableForWrite() method to the Print class, matching current
ArduinoCore-API commit 398e70f188e2b861c10d9ffe5e2bfcb6a4a4f489 .

Hook availableForWrite into the SDFS filesystem (other FSes don't have
this capability built-in).

Fixes #7650

* WiFiClient::availableForWrite proto matching Print

* Fix Netdump signedness warning

* Clean up Serial availableForWrite

This is evidently a breaking change due to the type difference.
Arduino's `availableForWrite` returns an `int`, while the
(multiply-implemented, non-virtual) core `availableForWrite` returned
`size_t`.
2020-10-27 11:55:42 +01:00
Earle F. Philhower, III
3e567e9489
Add SerialEvent() callback to loop processing (#7505)
* Add SerialEvent() callback to loop processing

Match the AVR SerialEvent implicit callback.  Callback is executed
in normal user mode, not IRQ, so standard processing can be uses.

Fixes #752 after 5 years. :)

* Fix style
2020-08-05 20:13:37 -04:00
Dirk O. Kaar
007e495e0d Implement invert for HardwareSerial (#6816)
* Simple i/f to turn on inverted logic on UART0.

* Refactor invert from HardwareSerial to uart

* Final refactoring of invert bits into config bitmap.

* Overload instead of default arg for subclassing.

* Prevent unwanted effects if setting invert on other than UART0 - only that has these flags defined and documented.
2019-11-20 09:17:42 -07:00
Niek van der Maas
3b1ad418b3 Add missing time.h include, use relative include path on time.h includes (#6730)
* Add missing time.h include

* Change other includes of time.h as well

* Added comment
2019-11-08 13:16:03 -03:00
Jeroen88
f5a7318f2f Add ::updateBaudRate(unsigned long baud) to change the baudrate after begin was called (#6494) 2019-09-16 07:43:27 -07:00
Allman-astyler
eea9999dc5 Revert "Allman now (#6080)" (#6090)
This reverts commit 98125f88605cd7e46e9be4e1b3ad0600dd5d2b51.
2019-05-14 00:09:54 +02:00
Allman-astyler
98125f8860 Allman now (#6080)
* switch restyle script for CI

* remove confirmation

* restyle with allman
2019-05-13 16:41:34 +02:00
Earle F. Philhower, III
9365f6d116
Fix Serial.write(0) overloading (#5878)
Add missing "using Print::write" to the HWSerial class to get the proper
overrides to make Serial.write(0) and Serial1.write(0) work as expected.
2019-03-13 18:06:15 -07:00
Earle F. Philhower, III
02f54e85fd
Reimplement SD.h write methods exactly in File (#5861)
* Reimplement SD.h write methods exactly in File

Replace the individual override with the existing SD.h File's
implementation for all methods of File::write.

Fixes #5846

* Add add'l tests

* Fix Print and File incompatible writes w/casts

Print and File have ambiguous resolutions for single-argument
write(0)s.

Fix by adding explicit methods.  A write of any integer will not be a
const char* write (i.e. won't write a string) but will instead just
write the integer truncated to 8 bits (as makes sense).

* Use 256byte chunks in ::write template

Reduce stack requirements for templated writes to 256bytes, matching the
size uses in WiFiClient/etc. (from 512bytes).  Reduces the chance of
stack overflow.

* Move write(int) methods up to Print.h

Remove some technical debt by moving the ::write(int/short/long) methods
out of FS and HardwareSerial and up into Print.h.
2019-03-12 13:58:00 -07:00
david gauchard
471dd87b5c hardwareSerial: add missing include (#5648)
Fix #5644, #include <time.h>
2019-01-21 16:32:17 +00:00
david gauchard
bd11d026e8
fix host emulation on macOS (#5633) 2019-01-19 03:19:17 +01:00
david gauchard
dc03293d82
(re)introduce timeout in HardwareSerial::readBytes(buffer, size) (#5558)
(re)introduce timeout in HardwareSerial::readBytes(buffer, size), add HardwareSerial::read(buffer, size) + visual test
2019-01-08 04:01:21 +01:00
david gauchard
4c8d8f1e8a uart: BW improvements (#4620)
* uart fixes and BW improvements

* uart: read_char straightly use hw buffer

* +attributes for functions called by ISR

* uart: BW improvements
read_char straightly use hw buffer (+ ~10%bw)
read by block (+ ~190%bw) (instead of generic Stream::readBytes)
attributes for functions called by ISR
remove overrun message
remove some ISR flags which were not honoured

* fix merge

* fix buffer overflow

* serial stress test sketch

* astyle

* serial stress example: interactive keyboard, stop reading, overrun

* serial device test: bandwidth & overrun

* update + HardwareSerial::hasError()

* interactive overrun in example

* astyle

* Test using @plerup's SoftwareSerial as submodule (tag 3.4.1)

* update upstream ref (fix warning)

* host mock uart/read(buf,size)

* reset style changes in submodules before style diff

* update build_boards_manager_package.sh for submodules

* trigger CI (removing space)

* cannot reproduce locally the CI issue, setting bash -x option to get live trace

* remove previously added (in this PR) 'set -e' in package builder (passes local tests, not real CI)
script-comment new recipe.hooks.core.prebuild.3 (along with already commented .1 and .2)
moved CI package test to be first on the test list
remove 'set -x', wish me luck
2018-12-10 10:35:11 -03:00
Jeroen88
e4d9c279ef Function added to detect baudrate (#4978)
* Function added to detect baudrate

* Added uart_start_detect_baudrate, detectBaudrate() wrappers for HardwareSerial and an example usage SerialDetectBaudrate.ino

* Some layout changes to pass Travis tests

* Some more nitty-gritty layout changes to pass Travis tests

* Some even more nitty-gritty layout changes to pass Travis tests

* renamed one function to testBaudrate() and updated doc/reference.rst

* Minor updates to doc/reference.rst

* New lines added
2018-08-01 15:33:25 -04:00
david gauchard
ee1ef4a795 restore HardwareSerial::write(str) (#4564)
* restore HardwareSerial::write(str)

* restore HardwareSerial::write(str) (this time checked)
2018-03-26 12:15:29 -03:00
david gauchard
479f1b3fed HardwareSerial: one more duplicate test missing the call (#4547) 2018-03-21 22:26:34 -03:00
david gauchard
f8f205d54a
Inefficient Print::write(data,len) shows message if used (only in debug mode) (#4537)
* inefficient Print::write(data,len) shows message if used (only in debug mode)
* make HardwareSerial's write(data,len) efficient
* HardwareSerial: remove duplicate tests, move trivial code from .cpp to .h
2018-03-22 01:23:58 +01:00
david gauchard
6580bf3477
uart: fix wdt input overrun (#4536)
* uart: fix wdt on uart input overrun, expose in HardwareSerial::hasOverrun()
2018-03-21 13:28:34 +01:00
Me No Dev
f8a8a2a359 Implement Serial RX Buffer (#2239)
In connection with:
https://github.com/esp8266/Arduino/issues/2237
https://github.com/esp8266/Arduino/issues/2037
https://github.com/esp8266/Arduino/issues/1683
2016-07-08 10:11:14 +08:00
Charles
44d27228c5 Added Serial.baudRate() to get current baud rate (#2079)
* Changed WifInfo settings and WeMos board name

* Added board name to have in sketch and MDNS/OTA

* board naming convention

https://github.com/esp8266/Arduino/pull/2054

* Added Serial.baudRate() to get current baud rate

* Added more description

- Added note about Software Serial Implementation
- Indicate this will works on ESP8266 boards only
2016-06-15 18:35:33 +08:00
Ivan Grokhotkov
16c0f3f1d5 Implement HardwareSerial::peek 2016-01-26 22:58:00 +03:00
Ivan Grokhotkov
7960b63357 Move UART HAL into separate file, clean up code 2016-01-26 22:57:59 +03:00
Me No Dev
e255f25cfd Bufferless and Interruptless HardwareSerial
Let's use the onboard buffers :)
2016-01-26 22:57:59 +03:00
Kaloyan Kovachev
d68b9717b5 Use explicit TX pin number and add pins setting method 2016-01-14 17:55:57 +02:00
Kaloyan Kovachev
e97bc80cee Allow setting alternate TX for UART 0, so GPIO1 is available as SPI_CS1 2016-01-14 14:18:52 +02:00
Christopher Pascoe
bc9493e690 Remove tracking of whether write() was called.
Tracking _written was required on AVR devices to work around a hardware
limitation when implementing flush().  The ESP8266 doesn't have the same
issue, so we can remove the tracking and make write() more lightweight.

The cost is a minor increase in work done in flush() when write() was not
previously called, but this should be much rarer than individual character
writes.
2015-12-29 12:46:25 -05:00
John Doe
ca8ebdbb97 Enable Serial RX/TX Only mode (needed by I2S) 2015-06-20 23:26:26 +03:00
Ivan Grokhotkov
34b09f7e23 small clean up of HardwareSerial 2015-05-05 13:27:28 +03:00
Thomas Flayols
be5f1f83c1 HardwareSerial: add other configs than 8N1 2015-04-26 00:20:39 +02:00
Markus Sattler
f165a0afcd use Eclipse auto Format to get rip auf the tab, space and code style inconsistency 2015-04-06 19:33:50 +02:00
Markus Sattler
1ee7ecdaa2 rewrite HardwareSerial code for UART0 + UART1 support in ESP8266 2015-04-01 22:47:13 +02:00
Ivan Grokhotkov
5c362798f9 Add method to use GPIO13 and GPIO15 as UART RX and TX 2015-01-09 02:33:42 +03:00
Ivan Grokhotkov
4cf6737823 More license headers 2014-12-19 01:43:18 +03:00
Ivan Grokhotkov
43b9dd9edf Clean up unused stuff 2014-12-19 01:39:27 +03:00
Ivan Grokhotkov
2a77249147 Implement tx and rx buffers and interrupts for HardwareSerial 2014-12-18 18:49:14 +03:00
Ivan Grokhotkov
39e087a19e Fix initialisation, fix HardwareSerial, add esptool.py flashing 2014-11-25 09:58:14 +03:00
Ivan Grokhotkov
15b434f5e2 Fix build errors 2014-11-21 12:15:50 +03:00
Ivan Grokhotkov
04fe8e8b58 Basic support for esp8266 platform
This includes empty stubs for most core Arduino functions.
Need to actually implement all those digital reads writes whatever.
Need to prebuild toolchains (xtensa-elf-lx106) for 3 platforms and put them on some download server.
Need to do the same with esptool.
Need to fix 0x40000 binary generation and add correct upload commands.
Maybe even implement uploads over WiFi.
2014-11-15 10:45:08 +03:00