Commit Graph

1169 Commits

Author SHA1 Message Date
Nathaniel Wesley Filardo 045fc80c70 pipe: comment and style fixes (NFC)
Reflow comments to 80 columns; fix some typos and other nits.
2020-10-23 04:21:51 +01:00
Nathaniel Wesley Filardo 962991ed18 pipe: fix unread buffer chunk management
unread contained two subtle bugs:

 - it created a buffer chunk at pipe[1], when that position is reserved
   for the pipe reader function.  Because it shifted pipe[i] to
   pipe[i+1], including pipe[1], this was likely to manifest as the pipe
   later attempting to dequeue a function rather than a buffer chunk
   user datum.  Solve this by adjusting the loop bounds and creation
   index.

 - when it created a new buffer chunk, it left that chunk's ->start and
   ->end fields at 0, but would then exit the loop to do the tail fill,
   which was in turn assuming the exit condition of the loop when an
   existing chunk had room, namely that data had been moved to the right
   and so ->start > l.  Solve this by making new chunks empty but with
   ->start = ->end = LUAL_BUFFERSIZE.  It may be slightly better to
   instead try to leave room at both ends if the buffer was empty prior
   to this unread.

FIXES: https://github.com/nodemcu/nodemcu-firmware/issues/3155
2020-10-23 04:21:51 +01:00
Lukáš Voborský 734b02a734 wiegand Lua 5.3 fix 2020-10-23 04:19:41 +01:00
Cody Cutrer 63e1fcda06
add wiegand module (#3203)
* add wiegand module

* minor tweaks to wiegand module

 * fix a whitespace error (tabs!!!!)
 * remove an unnecessary volatile qualifier
2020-10-19 01:05:31 +01:00
Philip Gladstone 73df18d738
Fix the initialization of the wifi default hostname. (#3303)
* It appears that the rf_pre_init is not called any more. Also cleaned up the code in
wifi_common.
* Log a message (at the right baud rate) if the hostname is invalid
* Updated the comment in the user_config.h file
2020-10-18 20:48:10 +02:00
Philip Gladstone 7185b9c603
Improved startup performance and measurement tools. (#3171)
* Don't adjust the clock until after we deal with rtctime...
* Switched to using START_OPTION_CPU_FREQ_MAX instead.
* Use setfield and add caching of the startup option
* Put the startupcounts warning into a warning box
2020-10-18 20:46:47 +02:00
Philip Gladstone 7830ae671e
Guard against freeing a ref of zero (#3308) 2020-10-13 21:43:38 +02:00
Lukáš Voborský b9091784ae bme280 driver in Lua+C 2020-10-05 20:41:36 +01:00
Lukáš Voborský ebfce4a911 Fixing bug in `file.readline` when line length exceeds 128 chars 2020-09-29 22:57:18 +01:00
Nathaniel Wesley Filardo 0a1d122cb8
crypto: remove toHex and toBase64 (#3300)
We marked these for deprecation in favor of the functions of the same
name in encoder.  Let's actually make good on that.
2020-09-28 20:42:16 +02:00
philip 274828cfd5 Remove ets_printf reference 2020-09-27 03:05:36 +01:00
philip 96a6dcc196 CLean up the PR a bit 2020-09-27 03:05:36 +01:00
philip 9bea108da7 Now use the original c99-snprintf as a submodule. 2020-09-27 03:05:36 +01:00
philip 6ba23ca267 Remove some uses of etc_*printf 2020-09-27 03:05:36 +01:00
philip 8bce7937ac Conditionalize int2float on lua 5.3 2020-09-27 03:05:36 +01:00
philip f316ebf73a Remove ESP8266 special case 2020-09-27 03:05:36 +01:00
philip 403c633b25 Make it work for the integer lua51 build 2020-09-27 03:05:36 +01:00
philip 85298b34c5 Now round trips in float firmware, and gets it roughly right in double (in lua 51) 2020-09-27 03:05:36 +01:00
philip 96d8047f71 Give it a chance of working under Lua 5.1 2020-09-27 03:05:36 +01:00
philip df9f3030e6 Add snprintf and remove our sprintf 2020-09-27 03:05:36 +01:00
philip 5b6b2f98b7 Make round tripping work for lua53 and floats 2020-09-27 03:05:36 +01:00
philip e9c4bb74d3 Make it inline 2020-09-27 03:04:52 +01:00
philip 862c727cb4 Add missing ICACHE_RAM_ATTR 2020-09-27 03:04:52 +01:00
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