1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-07-13 02:22:55 +03:00
Commit Graph

38 Commits

Author SHA1 Message Date
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
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
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
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
f5a7318f2f Add ::updateBaudRate(unsigned long baud) to change the baudrate after begin was called (#6494) 2019-09-16 07:43:27 -07:00
eea9999dc5 Revert "Allman now (#6080)" (#6090)
This reverts commit 98125f8860.
2019-05-14 00:09:54 +02:00
98125f8860 Allman now (#6080)
* switch restyle script for CI

* remove confirmation

* restyle with allman
2019-05-13 16:41:34 +02:00
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
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
471dd87b5c hardwareSerial: add missing include (#5648)
Fix #5644, #include <time.h>
2019-01-21 16:32:17 +00:00
bd11d026e8 fix host emulation on macOS (#5633) 2019-01-19 03:19:17 +01:00
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
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
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
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
479f1b3fed HardwareSerial: one more duplicate test missing the call (#4547) 2018-03-21 22:26:34 -03:00
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
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
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
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
16c0f3f1d5 Implement HardwareSerial::peek 2016-01-26 22:58:00 +03:00
7960b63357 Move UART HAL into separate file, clean up code 2016-01-26 22:57:59 +03:00
e255f25cfd Bufferless and Interruptless HardwareSerial
Let's use the onboard buffers :)
2016-01-26 22:57:59 +03:00
d68b9717b5 Use explicit TX pin number and add pins setting method 2016-01-14 17:55:57 +02:00
e97bc80cee Allow setting alternate TX for UART 0, so GPIO1 is available as SPI_CS1 2016-01-14 14:18:52 +02:00
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
ca8ebdbb97 Enable Serial RX/TX Only mode (needed by I2S) 2015-06-20 23:26:26 +03:00
34b09f7e23 small clean up of HardwareSerial 2015-05-05 13:27:28 +03:00
be5f1f83c1 HardwareSerial: add other configs than 8N1 2015-04-26 00:20:39 +02:00
f165a0afcd use Eclipse auto Format to get rip auf the tab, space and code style inconsistency 2015-04-06 19:33:50 +02:00
1ee7ecdaa2 rewrite HardwareSerial code for UART0 + UART1 support in ESP8266 2015-04-01 22:47:13 +02:00
5c362798f9 Add method to use GPIO13 and GPIO15 as UART RX and TX 2015-01-09 02:33:42 +03:00
4cf6737823 More license headers 2014-12-19 01:43:18 +03:00
43b9dd9edf Clean up unused stuff 2014-12-19 01:39:27 +03:00
2a77249147 Implement tx and rx buffers and interrupts for HardwareSerial 2014-12-18 18:49:14 +03:00
39e087a19e Fix initialisation, fix HardwareSerial, add esptool.py flashing 2014-11-25 09:58:14 +03:00
15b434f5e2 Fix build errors 2014-11-21 12:15:50 +03:00
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