Commit Graph

64 Commits (240758db42aaa42b2abd50daea5033c3cc7e80dc)

Author SHA1 Message Date
Anna Bridge 64df07288c
Merge pull request #11551 from Tharazi97/Coverity
Coverity updates
2019-10-11 11:01:10 +01:00
Anna Bridge 372a3f19c9
Merge pull request #11514 from dmaziec1/UART_deep_sleep_enable
ESP8266 unlocks deep sleep when disconnected
2019-09-27 16:50:22 +01:00
int_szyk 24cb0334eb esp8266-driver: fix variables init in constructor.
Fixes Coverity issue about not initialized members.
2019-09-23 15:27:34 +02:00
Dominika Maziec 1aa3b5d9d0 UART in deep sleep mode when it is disconnected 2019-09-20 17:18:32 +02:00
Martin Kojtal 656fed16da
Merge pull request #11430 from tymoteuszblochmobica/name
Member get_interface_name implemented  in ESP8266Interface
2019-09-20 14:17:05 +02:00
Dominika Maziec 66bf8bc97b ESP8266 Unified Mbed trace prints.
All logs now:
- start with a function name (it is not automatically logged by the logger)
- do not contain class name (this can be inferred from log preamble)
- message starts with a capital letter and ends with a full-stop
2019-09-13 16:54:31 +02:00
Martin Kojtal ac7b851ba0
Merge pull request #11409 from dmaziec1/esp8266-nonblocking
esp8266 nonblocking connect/disconnect
2019-09-13 16:12:13 +02:00
Dominika Maziec f5ccbe7972 esp8266 nonblocking connect/disconnect
`ESP8266Interface::connect()` and `ESP8266Interface::disconnect()` can be used in terms of asynchronous operations. Mainly, it is based on newly added private variable of type  `esp_connection_software_status` which is used to keep tracking of state of connection.`wifi_connect_nonblock` test was renamed and amended to test both `connect()` and `disconnect()` operation
2019-09-10 09:37:46 +02:00
Tymoteusz Bloch 56ede03e37 Member get_interface_name implemented in ESP8266Interface 2019-09-06 11:00:31 +02:00
Dominika Maziec 93119eb785 ESP8266Interface buffer null-terminated and parameters of scan function in correct order 2019-09-05 16:28:47 +02:00
Chun-Chieh Li 650e2e593c ESP8266: Support power on/off in custom wiring
In custom wiring, there can be a power pin to power on/off the modem. This
commit supports it and allows for the following configurations:

- power pin name
- power pin polarity
- power on/off delay time
2019-08-27 17:57:06 +08:00
Antti Kauppila 84063bf222 Coverity issues fixed 2019-08-14 16:22:05 +03:00
Kevin Bracey a522dcfa0a Replace deprecated wait calls 2019-07-15 10:13:50 +03:00
Martin Kojtal 3ea1c56124
Merge pull request #10147 from kjbracey-arm/atomic_bitwise
Assembler atomics
2019-05-13 14:18:05 +01:00
Kevin Bracey 87396e0bf6 Assembler atomics
Reimplement atomic code in inline assembly. This can improve
optimisation, and avoids potential architectural problems with using
LDREX/STREX intrinsics.

API further extended:
* Bitwise operations (fetch_and/fetch_or/fetch_xor)
* fetch_add and fetch_sub (like incr/decr, but returning old value -
  aligning with C++11)
* compare_exchange_weak
* Explicit memory order specification
* Basic freestanding template overloads for C++

This gives our existing C implementation essentially all the functionality
needed by C++11.

An actual Atomic<T> template based upon these C functions could follow.
2019-04-26 13:12:35 +03:00
Michal Paszta 3e70df7f0a ESP8266: Timeout if chip keeps returning errors
The ESP chip returns timeout, but keeps trying to connect, so we want to
keep track of time ourselves, instead of relying on the chip's timeout.
This fixes failing WIFI-CONNECT-SECURE-FAIL test.
2019-04-16 14:23:36 +03:00
Michal Paszta 8eda11a5a3 Perform disconnection regardless of the IP address 2019-04-12 11:50:55 +03:00
Michal Paszta 5dbaa40eb0 Add the INTERRUPTIN compilation guard for ESP8266 2019-03-28 11:16:30 +02:00
Cruz Monrreal ecfe0c83ae
Merge pull request #9955 from VeijoPesonen/esp8266_wifi_scan_timeout
ESP8266: treats Wi-Fi scan results as out-of-band data; new API to adjusting Wi-Fi scan settings
2019-03-27 00:25:43 -05:00
Cruz Monrreal 1c23c5b85b
Merge pull request #9927 from VeijoPesonen/esp8266_country_code_policy
ESP8266: Country code API
2019-03-27 00:25:29 -05:00
Veijo Pesonen e2bd0644df ESP8266: new API for setting Wi-Fi scan active/passive mode
Makes possible to decide between active and passive mode.

Makes possible to adjust for how long a single channel is scanned.
2019-03-14 12:01:42 +02:00
Veijo Pesonen 50984e5d2d ESP8266: makes usable channels runtime configurable 2019-03-05 10:40:22 +02:00
Veijo Pesonen eb27a23641 ESP8266: Exposes country code config API 2019-03-05 10:40:21 +02:00
Veijo Pesonen 96247dd76a ESP8266: sets hardcoded country code(CC) policy to track AP's CC 2019-03-05 10:40:21 +02:00
Veijo Pesonen c9eaa07236 ESP8266: astyle, remove from the .astyleignore-file 2019-03-04 09:38:20 +02:00
Veijo Pesonen 2e5d1d959b ESP8266: halts if unable to add an event to the event queue 2019-02-26 09:44:15 +02:00
Martin Kojtal ad2cb910f9
Merge pull request #9503 from VeijoPesonen/feature-esp8266_oob_handling_by_sigio
ESP8266: OOB handling done based on arrival of SIGIOs
2019-02-20 09:35:29 +01:00
Martin Kojtal 1892e2dd8e
Merge pull request #9741 from michalpasztamobica/esp8266_fix_nonblocking_connect
ESP8266: connect() returns OK in non-blocking calls
2019-02-18 13:22:19 +01:00
Veijo Pesonen d6701c36a3 ESP8266: does OOB handling based on SIGIO and not on a certain interval 2019-02-18 12:39:16 +02:00
Michal Paszta 32686d48a8 ESP8266: connect() returns OK in non-blocking calls 2019-02-15 17:33:21 +02:00
Veijo Pesonen 2d6b63d5a2 ESP8266: prevents doing reset twice in a row, unnecessary 2019-02-14 11:08:36 +02:00
Veijo Pesonen 71e5321f0f ESP8266: fixes network status refresh procedure 2019-02-14 10:41:04 +02:00
Veijo Pesonen 876a397101 ESP8266: handles reset ready as OOB
Makes possible to recover from spurious resets addiotionally to planned
ones.
2019-02-14 10:41:04 +02:00
Michal Paszta 6a184da381 ESP8266: connect() can handle ESP's errors.
ESP8266Interface::connect() checks the exact return value from
the underlying ESP8266::connect() call.
Increased timeout for network-wifi greentea tests to 6 minutes.
2019-02-11 17:20:14 +02:00
Veijo Pesonen 53c2879a5c ESP8266: makes guarding variable for deferring events atomic 2019-01-30 17:00:56 +02:00
Veijo Pesonen 7d3621dae4 ESP8266: reduces SIGIO signaled to the upper layers 2019-01-30 17:00:56 +02:00
Veijo Pesonen d712568b8f ESP8266: with empty packet send returns zero if TCP, unsupported otherwise 2019-01-28 13:46:48 +02:00
Veijo Pesonen c4d96e6309 ESP8266: provides blocking/non-blocking connect
Implements NetworkInterface::set_blocking() and implements the
functionality to distinguish between the two in connect()
2019-01-21 16:22:53 +02:00
Veijo Pesonen 58c1a88348 ESP8266: turns connect fully to non-blocking mode
Blocking mode connect is not supported anymore when this patch is
applied
2019-01-21 16:22:53 +02:00
Veijo Pesonen c60c5244c1 ESP8266: makes connect() connection status aware 2019-01-21 14:43:35 +02:00
Martin Kojtal b59b93e828
Merge pull request #9331 from VeijoPesonen/bugfix-esp8266_udp_prevent_would_block
ESP8266: prevent WOULD BLOCK from TX if UDP
2019-01-17 12:41:42 +01:00
Martin Kojtal a180d69e60
Merge pull request #9356 from VeijoPesonen/bugfix-esp8266_disconnect_return_code
ESP8266 - fixes disconnect to check the state from modem
2019-01-15 10:38:40 +01:00
Veijo Pesonen e83b883e08 [ESP8266] fixes disconnect to check the state from modem
Additionally to internal bookkeeping lets check from the modem
that what is connection state in disconnect. There might be
inconsistencies.
2019-01-11 16:25:26 +02:00
Seppo Takalo 7db2292417 Flush ESP8266 serial input buffers after HW reset 2019-01-10 18:13:32 +02:00
Veijo Pesonen e9ceff2450 [ESP8266] fixes a debug print 2019-01-10 14:33:15 +02:00
Veijo Pesonen 9a3c9a30b3 [ESP8266] Drop signalling SIGIO artificially if UDP send fails
With TCP it's desirable that SIGIO wakes up the application to check
if there is buffer space space available on the mode. With UDP the
behavior is not acceptable as we don't know if the other endpoint is
there as connection establishment is missing. Hence buffers might
stay full forever.
2019-01-10 14:33:15 +02:00
Seppo Takalo 8bf3ce3d68 ESP8266: Set HW reset time to 2ms 2019-01-08 18:18:46 +02:00
Michal Paszta 034c72e12c Prevent ESP8266 stopping HW control on init 2018-12-20 13:22:13 +01:00
Russ Butler 6210805696 Fix ESP8266 "Link Type" errors after reset
As part of the ESP8266 connect sequence, ESP8266Interface::connect,
a software reset is performed. If the ESP8266 had been connected
previously then the ESP8266 will sometimes send a "WIFI DISCONNECT" OOB
message before performing the software reset. This causes the
ESP8266::_oob_connection_status to change its state (_conn_status) from
NSAPI_STATUS_DISCONNECTED to NSAPI_STATUS_CONNECTING. This causes
ESP8266Interface::_startup, called later in the boot seqeunce, to skip
ESP8266::startup. Without this call socket mux mode (CIPMUX=1) is never
enabled and all send commands using this format fail with a "Link Type"
error.

This patch fixes that problem by unconditionally calling
ESP8266::startup as part of the ESP8266 connect sequence.
2018-12-17 10:11:52 -06:00
Michal Paszta d6e385b330 ESP8266 send returns WOULD_BLOCK error when busy 2018-12-11 17:48:37 +01:00