Commit Graph

1146 Commits

Author SHA1 Message Date
Philip Gladstone 9d74cd5aa0
Improve the enduser setup experience by triggering captive portal detection. (#3282)
* Make captive portal detection work on macOS
* Change the default SSID prefix to be NodeMCU
2020-09-18 23:47:52 +02:00
Nathaniel Wesley Filardo dc334f87a6
uart: expose fifo depth counters (#3177) 2020-09-18 23:46:32 +02:00
Philip Gladstone 139af0cdd1
Handle tcp fragmentation and also fix XSS problem. (#3275) 2020-09-15 14:06:38 +02:00
Philip Gladstone c000a0894a
Fix problem reading files a multiple of 128 bytes long (#3280) 2020-09-13 11:37:54 -04:00
vsky 64bbf00689 Adding '+' flag to string.format 2020-09-09 04:23:33 +01:00
Gregor Hartmann 4d784798a7
Add deprecation note to node.flashreload (#3273) 2020-09-08 12:17:12 +02:00
Terry Ellison d88c14b9b6
Update node.c
Redo last change
2020-09-07 13:09:25 +01:00
Terry Ellison 41c5f8fd57
Update node.c
To fix #3251.
2020-09-07 12:53:51 +01:00
Lukáš Voborský 38f13a7e9f
Fixes broken `tmr.alarm` (#3263)
Co-authored-by: vsky <blue205@centrum.cz>
2020-09-05 14:16:57 +02:00
vsky e28cf8d983 Fixes `net.ifinfo` failure 2020-09-04 21:54:40 +02:00
galjonsfigur e7620b0647
SoftUART module fixes and code simplification (#3104)
* SoftUART fixes:

- Simplify code by using lua_L* functions and using userdata properly
- Fix some edge-cases
- Add more examples to documentation

* Don't de-register interrupt hook if there is more RX instances

* More bug fixes and registering simplification with luaL_reref and unref2

* Correct documentation of SoftUART module
2020-09-04 17:02:33 +02:00
Philip Gladstone ba611101e5
Don't allocate flash to SPIFFS that is reserved by the system. (#3260) 2020-09-01 22:40:57 +01:00
galjonsfigur b4c148eff0
Add missing features to Travis CI PR build (#3255) 2020-08-30 21:04:00 +02:00
Lukáš Voborský d72ea91ed0
Implementing optional parameter `restart` to tmr:start() (#3111) 2020-08-29 21:43:50 +02:00
Philip Gladstone 606f91664b
First phase of number to integer conversion (#3221) 2020-08-29 17:48:24 +01:00
Philip Gladstone 0e02c0e5f3
Change struct & sjson to use integers. This is slightly more complex (#3222)
* Change struct to use integers. This is slightly more complex as we have to deal with Unsigned 32-bit integers (that aren't lua integers)
* Use int64 in struct rather than double.
* Fix sjson to do the right things in LUA5.3 with integers and floats
2020-08-23 23:11:18 +01:00
mk-pmb 64ece47ff6 Allow custom SPIFFS location in "demons" part of user_config.h
In case a custom SPIFFS location was defined above, don't overwrite it.
2020-08-23 15:27:46 +01:00
Terry Ellison a92da3c33c
Lua 5.1 / 5.3 alignment and document (#3193) 2020-08-22 17:41:02 +01:00
Caleb Mingle e547c2a094 mqtt: fix connfail callback
I've not been able to get the mqtt `connfail` callback to work.

I'm consistently receiving `method not supported` errors:
```
application.lua:53: method not supported
stack traceback:
        [C]: in function 'on'
        application.lua:53: in main chunk
        [C]: in function 'dofile'
        init.lua:18: in function <init.lua:6>
```

Example code:
```
function on_connection_failed(client, reason)
    print("mqtt connection failed: " .. reason)
end

m:on("connfail", on_connection_failed)
```

I believed this to be caused by the incorrect length comparison for `connfail`
that is updated here.

Once I changed that, the error went away, however the callback was never called.

I believe the callback was never called because of an incorrect assignment.

However, I saw this somewhat confusing description in the docs so this
assignment may be expected?
> The second (failure) callback aliases with the "connfail" callback available through :on(). (The "offline" callback is only called after an already established connection becomes closed. If the connect() call fails to establish a connection, the callback passed to :connect() is called and nothing else.)
2020-08-11 17:20:17 +01:00
Philip Gladstone 995114b736
Add support to set the clock rate and have sntp use it. (#3236) 2020-08-08 13:32:14 +02:00
Emdioh bf15299cea
Correct negative results in DHT driver (#3210)
* DHT module: fix the handling of negative temps.

The macro handling the conversion from the 2 bytes buffer to a double
was handling negative values by checking the sign bit and taking the
negative value of the number minus the sign bit.
Unfortunately this does not work as the negative values are represented
in 1's complement, so for instance -1 was becoming -32767
  * +1 = b0000_0000_0000_ 0001
  * -1 = 1111_1111_1111_1111

This replace the spacial code with a signed 16 bits value.

* Refactoring: removes some code duplication.

* Fixed the conversion of the 8/16 bits values

Co-authored-by: Marco Dondero <marco@dondero.eu>
2020-08-03 19:58:19 +01:00
Lukáš Voborský 2fa63a1303
Fix of string.format("%.0f") (#3199)
Co-authored-by: vsky <blue205@centrum.cz>
2020-07-07 14:35:37 +01:00
Datong Sun 95f5191cd3 Fixed an regression that MQTT client timer is disarmed prematurely when
connecting to server.

Inside af426d0315, the `mqtt_socket_timer`
function was modified so that instead of checking the presense of
allocated `mud->pesp_conn` structure, `mud->connected` field was used
on determining if the timer need to be disarmed.

However, this is not entirely correct. If the TCP socket is actively
connecting and haven't timed out yet, then `mud->connected` is also
`false` and the timer will think the connection is broken and
disarms itself. This has two consequences:

* The connection timeout counter is no longer decremented and checked
* After connection succeeds, keepalive heartbeat is no longer being
  sent (#3166). This is particularly noticeable in MQTT over TLS
  connections, because those usually takes longer than 1 second
  to finish and the timer would had chance to execute before connection
  is established

This commit checks the presense of `pesp_conn->proto.tcp` pointer
instead, which was allocated in the same place as the (old) `pesp_conn`
struct, and according to my test indeed fixes the above issue.
2020-06-30 13:20:17 +01:00
Nathaniel Wesley Filardo 90beedfaba
rtctime: try harder to speak in integers (#3161)
Otherwise we might truncate precision with small floats and that's
unlikely to work out well for anyone.
2020-06-20 22:06:32 +02:00
vsky 17504b6e7a ads1115 minor cleanup 2020-06-17 23:50:31 +01:00
Terry Ellison 1f2e5bba4a
Implement panic call handling for all modules (#3163) 2020-06-16 08:19:55 +01:00
Nathaniel Wesley Filardo 4e689e9839
Finish removing sqlite3 (#3162)
This file seems to have been missed by 35a266e2c2
2020-06-13 13:22:25 +02:00
Firenox89 0555a4c689 fix a memory leak in ws2812_buffer_shift by freeing the same amount of bytes we allocated before 2020-06-12 18:23:36 +01:00
Nathaniel Wesley Filardo 61b540757a Remove deprecated rc module
It has long been superseded by the rfswitch module
2020-06-10 02:15:08 +01:00
Nathaniel Wesley Filardo 35a266e2c2 Remove sqlite3 module
It's not clear that this ever worked, AFAICT nobody uses it, and it's an
old version of the sqlite3 engine at this point.  Absent a maintainer,
let's just get rid of it.
2020-06-10 02:14:29 +01:00
Gregor Hartmann 7c53cc7611 Deprecate RC module (#3137) 2020-06-09 22:26:52 +02:00
Terry Ellison 544ee81210 Updated lua.c to fix #3118 telnet issue 2020-06-09 22:26:52 +02:00
Nathaniel Wesley Filardo a04b085d71 ws2812_effects deprecation warning 2020-06-09 22:26:52 +02:00
Terry Ellison 98e428f12e Update wifi..c to fix #3106 2020-06-09 22:26:52 +02:00
Javier Peletier 75f1c64cbc fix compilation error when disabling startup banner (#3103) 2020-06-09 22:26:52 +02:00
Gregor Hartmann 93c82f1f9e Fix binary and chunked HTTP downloads (#2985)
Original sources by @anod221
2020-06-09 22:26:52 +02:00
galjonsfigur 7140894f2f Update hook after updating GPIO bits (#3091)
Fixes #3089
2020-06-09 22:26:52 +02:00
Lukáš Voborský 7a77d76438 net_info module - ping function (#2854)
* Net_info module exposing ping function initial commit
* Ping as a part of net module
* Sent callback implemented
* Add NET_PING_ENABLE macro

Authored-by: vsky <blue205@centrum.cz> with support from TerryE
2020-06-09 22:26:52 +02:00
ecrips a0864c4382 u8g2: Fix name of updateDisplay export (#3093)
Correct typo in Lua export from updateDispla() to updateDisplay()
2020-06-09 22:26:52 +02:00
Gregor cad576a23b fix build 2020-06-09 22:26:52 +02:00
Terry Ellison bbeb09b695 Squashed updates do get Lua51 and Lua53 working (#3075)
-  Lots of minor but nasty bugfixes to get all tests to run clean
-  core lua and test suite fixes to allow luac -F to run cleanly against test suite
-  next tranch to get LFS working
-  luac.cross -a options plus fixes from feedback
-  UART fixes and lua.c merge
-  commit of wip prior to rebaselining against current dev
-  more tweaks
2020-06-09 22:26:52 +02:00
firenox89 fd26dea949 fix #2565 by inverting the grb2hsv argcheck condition (#3076) 2020-06-09 22:26:52 +02:00
Gregor Hartmann c50b4789c4 HTML for Apple devices to mitigate POST fragmentation (#3069) 2020-06-09 22:26:52 +02:00
Andreas Müller 95fc8b14b3 Correct integer types in BMP085 driver (#3070)
* BMP085 pressure sensor: fix temperature value data type

the data type for t (U_T) should be long according to the BMP085
datasheet (rev. 1.2, section 3.5). values over 32767 can indeed occur,
and in my case lead to a wrong value for the temperature (and
consequently also pressure).

note: this problem only occurs above a certain temperature (exact
value depends on the calibration, but I assume somewhere around 26°C).

* BMP085 pressure sensor: adapt data types and calculation

this adapts the data types and calculation to be consistent with the
datasheet (rev. 1.2, section 3.5). while I did not notice any issues,
using the wrong data types could trigger edge cases.
2020-06-09 22:26:52 +02:00
Nathaniel Wesley Filardo c8c90fe4e1 app/modules: prune some unnecessary metamethods 2020-06-09 22:26:52 +02:00
Nathaniel Wesley Filardo d480003a40 tls: fix new verification API
Because the old API was inactive, we were setting
MBEDTLS_SSL_VERIFY_NONE even after we'd parsed the certificate.

tls tests now include a deliberate certificate mismatch; this was
discovered by moving the mqtt tests over to the new API.
2020-06-09 22:26:52 +02:00
Nathaniel Wesley Filardo efa786da4e net.dns: don't calloc a single int
Removes yet another unchecked allocation point in our C libraries.

While here, fix potential reference leaks on error paths

Also while here, remove some stale documentation.  There can be as many
DNS requests in flight as LwIP has room for in its table
(DNS_TABLE_SIZE, which defaults to 4).
2020-06-09 22:26:52 +02:00
Nathaniel Wesley Filardo fd68000c12 net: drop LUA_GCSTOP/GCRESTART dance 2020-06-09 22:26:52 +02:00
Nathaniel Wesley Filardo bf478e0cc4 mqtt: drop LUA_GCSTOP/GCRESTART dance 2020-06-09 22:26:52 +02:00
Nathaniel Wesley Filardo a7f8564424 file: raise error on .on() with non-function/nil
Seems more polite than quietly accepting other types as nil.
2020-06-09 22:26:52 +02:00