Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
dba57fa0
Commit
dba57fa0
authored
Aug 24, 2021
by
Johny Mattsson
Browse files
Merge branch 'dev-esp32-idf4-lua53' into dev-esp32-idf4
parents
3a6961cc
8e5ce49d
Changes
224
Hide whitespace changes
Inline
Side-by-side
components/modules/Kconfig
View file @
dba57fa0
...
@@ -21,12 +21,26 @@ menu "NodeMCU modules"
...
@@ -21,12 +21,26 @@ menu "NodeMCU modules"
help
help
Includes the simple BlueTooth HCI module.
Includes the simple BlueTooth HCI module.
config NODEMCU_CMODULE_CAN
depends on CONFIG_IDF_TARGET_ESP32
bool "CAN module"
default "n"
help
Includes the can module.
config NODEMCU_CMODULE_CRYPTO
config NODEMCU_CMODULE_CRYPTO
bool "Crypto module"
bool "Crypto module"
default "n"
default "n"
help
help
Includes the crypto module.
Includes the crypto module.
config NODEMCU_CMODULE_DAC
depends on IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2
bool "DAC module"
default "n"
help
Includes the dac module.
config NODEMCU_CMODULE_DHT
config NODEMCU_CMODULE_DHT
bool "DHT11/21/22/AM2301/AM2302 module"
bool "DHT11/21/22/AM2301/AM2302 module"
default "n"
default "n"
...
@@ -40,6 +54,14 @@ menu "NodeMCU modules"
...
@@ -40,6 +54,14 @@ menu "NodeMCU modules"
Includes the encoder module. This provides hex and base64 encoding
Includes the encoder module. This provides hex and base64 encoding
and decoding functionality.
and decoding functionality.
config NODEMCU_CMODULE_ETH
depends on IDF_TARGET_ESP32
select ETH_USE_ESP32_EMAC
bool "Ethernet module"
default "n"
help
Includes the ethernet module.
config NODEMCU_CMODULE_FILE
config NODEMCU_CMODULE_FILE
bool "File module"
bool "File module"
default "y"
default "y"
...
@@ -64,6 +86,13 @@ menu "NodeMCU modules"
...
@@ -64,6 +86,13 @@ menu "NodeMCU modules"
help
help
Includes the I2C module (recommended).
Includes the I2C module (recommended).
config NODEMCU_CMODULE_I2S
depends on IDF_TARGET_ESP32
bool "I2S module"
default "n"
help
Includes the I2S module.
config NODEMCU_CMODULE_LEDC
config NODEMCU_CMODULE_LEDC
bool "LEDC module"
bool "LEDC module"
default "n"
default "n"
...
@@ -102,6 +131,20 @@ menu "NodeMCU modules"
...
@@ -102,6 +131,20 @@ menu "NodeMCU modules"
requires a partition table with at least two OTA partitions, plus
requires a partition table with at least two OTA partitions, plus
the OTA data partition. See the IDF documentation for details.
the OTA data partition. See the IDF documentation for details.
config NODEMCU_CMODULE_PIPE
bool "Pipe module"
default "y"
help
Includes the pipe module (required by our Lua VM).
config NODEMCU_CMODULE_PULSECNT
depends on IDF_TARGET_ESP32
bool "Pulse counter module"
default "n"
help
Includes the pulse counter module to use ESP32's built-in pulse
counting hardware.
config NODEMCU_CMODULE_QRCODEGEN
config NODEMCU_CMODULE_QRCODEGEN
bool "QR Code Generator module"
bool "QR Code Generator module"
default "n"
default "n"
...
@@ -109,6 +152,13 @@ menu "NodeMCU modules"
...
@@ -109,6 +152,13 @@ menu "NodeMCU modules"
Includes the QR Code Generator from
Includes the QR Code Generator from
https://www.nayuki.io/page/qr-code-generator-library
https://www.nayuki.io/page/qr-code-generator-library
config NODEMCU_CMODULE_SDMMC
depends on IDF_TARGET_ESP32
bool "SD-MMC module"
default "n"
help
Includes the sdmmc module.
config NODEMCU_CMODULE_SIGMA_DELTA
config NODEMCU_CMODULE_SIGMA_DELTA
bool "Sigma-Delta module"
bool "Sigma-Delta module"
default "n"
default "n"
...
@@ -147,6 +197,14 @@ menu "NodeMCU modules"
...
@@ -147,6 +197,14 @@ menu "NodeMCU modules"
help
help
Includes the timer module (recommended).
Includes the timer module (recommended).
config NODEMCU_CMODULE_TOUCH
depends on IDF_TARGET_ESP32
bool "Touch module"
default "n"
help
Includes the touch module to use ESP32's built-in touch sensor
hardware.
config NODEMCU_CMODULE_U8G2
config NODEMCU_CMODULE_U8G2
bool "U8G2 module"
bool "U8G2 module"
default "n"
default "n"
...
@@ -182,4 +240,10 @@ menu "NodeMCU modules"
...
@@ -182,4 +240,10 @@ menu "NodeMCU modules"
help
help
Includes the time module.
Includes the time module.
config NODEMCU_CMODULE_UART
bool "UART module"
default y
help
Includes the UART module (required by our Lua VM).
endmenu
endmenu
components/modules/adc.c
View file @
dba57fa0
...
@@ -60,7 +60,7 @@ static int read_hall_sensor( lua_State *L )
...
@@ -60,7 +60,7 @@ static int read_hall_sensor( lua_State *L )
}
}
// Module function map
// Module function map
LROT_BEGIN
(
adc
)
LROT_BEGIN
(
adc
,
NULL
,
0
)
LROT_FUNCENTRY
(
setwidth
,
adc_set_width
)
LROT_FUNCENTRY
(
setwidth
,
adc_set_width
)
LROT_FUNCENTRY
(
setup
,
adc_setup
)
LROT_FUNCENTRY
(
setup
,
adc_setup
)
LROT_FUNCENTRY
(
read
,
adc_read
)
LROT_FUNCENTRY
(
read
,
adc_read
)
...
...
components/modules/bit.c
View file @
dba57fa0
...
@@ -119,7 +119,7 @@ static int bit_clear( lua_State* L )
...
@@ -119,7 +119,7 @@ static int bit_clear( lua_State* L )
return
1
;
return
1
;
}
}
LROT_BEGIN
(
bit
)
LROT_BEGIN
(
bit
,
NULL
,
0
)
LROT_FUNCENTRY
(
bnot
,
bit_bnot
)
LROT_FUNCENTRY
(
bnot
,
bit_bnot
)
LROT_FUNCENTRY
(
band
,
bit_band
)
LROT_FUNCENTRY
(
band
,
bit_band
)
LROT_FUNCENTRY
(
bor
,
bit_bor
)
LROT_FUNCENTRY
(
bor
,
bit_bor
)
...
...
components/modules/bthci.c
View file @
dba57fa0
...
@@ -216,7 +216,7 @@ static int send_hci_command (lua_State *L, uint8_t *data, unsigned len)
...
@@ -216,7 +216,7 @@ static int send_hci_command (lua_State *L, uint8_t *data, unsigned len)
if
(
lua_gettop
(
L
)
>
0
&&
!
lua_isnil
(
L
,
-
1
))
if
(
lua_gettop
(
L
)
>
0
&&
!
lua_isnil
(
L
,
-
1
))
{
{
cmd_q
[
i
].
cmd
=
cmd
;
cmd_q
[
i
].
cmd
=
cmd
;
luaL_check
any
function
(
L
,
-
1
);
luaL_checkfunction
(
L
,
-
1
);
lua_pushvalue
(
L
,
-
1
);
lua_pushvalue
(
L
,
-
1
);
cmd_q
[
i
].
cb_ref
=
luaL_ref
(
L
,
LUA_REGISTRYINDEX
);
cmd_q
[
i
].
cb_ref
=
luaL_ref
(
L
,
LUA_REGISTRYINDEX
);
}
}
...
@@ -271,7 +271,7 @@ static void invoke_cmd_q_callback (
...
@@ -271,7 +271,7 @@ static void invoke_cmd_q_callback (
else
else
lua_pushnil
(
L
);
// no error
lua_pushnil
(
L
);
// no error
lua_pushlstring
(
L
,
(
const
char
*
)
data
,
len
);
// extra bytes, if any
lua_pushlstring
(
L
,
(
const
char
*
)
data
,
len
);
// extra bytes, if any
lua
_
call
(
L
,
2
,
0
);
lua
L_p
call
x
(
L
,
2
,
0
);
}
}
}
}
...
@@ -316,7 +316,7 @@ static void handle_hci_event (task_param_t arg, task_prio_t prio)
...
@@ -316,7 +316,7 @@ static void handle_hci_event (task_param_t arg, task_prio_t prio)
uint8_t
*
report
=
&
hci_event
[
5
];
uint8_t
*
report
=
&
hci_event
[
5
];
lua_rawgeti
(
L
,
LUA_REGISTRYINDEX
,
adv_rep_cb_ref
);
lua_rawgeti
(
L
,
LUA_REGISTRYINDEX
,
adv_rep_cb_ref
);
lua_pushlstring
(
L
,
(
const
char
*
)
report
,
len
-
2
);
lua_pushlstring
(
L
,
(
const
char
*
)
report
,
len
-
2
);
lua
_
call
(
L
,
1
,
0
);
lua
L_p
call
x
(
L
,
1
,
0
);
}
}
}
}
}
}
...
@@ -424,7 +424,7 @@ static int lbthci_adv_setparams (lua_State *L)
...
@@ -424,7 +424,7 @@ static int lbthci_adv_setparams (lua_State *L)
uint8_t
adv_chan_map
=
ADV_CHAN_ALL
;
uint8_t
adv_chan_map
=
ADV_CHAN_ALL
;
uint8_t
adv_filter_pol
=
ADV_FILTER_NONE
;
uint8_t
adv_filter_pol
=
ADV_FILTER_NONE
;
luaL_check
any
table
(
L
,
1
);
luaL_checktable
(
L
,
1
);
lua_settop
(
L
,
2
);
// Pad a nil into the function slot if necessary
lua_settop
(
L
,
2
);
// Pad a nil into the function slot if necessary
get_opt_field_int
(
1
,
adv_interval_min
,
"interval_min"
);
get_opt_field_int
(
1
,
adv_interval_min
,
"interval_min"
);
...
@@ -501,7 +501,7 @@ static int lbthci_scan_setparams (lua_State *L)
...
@@ -501,7 +501,7 @@ static int lbthci_scan_setparams (lua_State *L)
uint8_t
own_addr_type
=
0
;
uint8_t
own_addr_type
=
0
;
uint8_t
filter_policy
=
0
;
uint8_t
filter_policy
=
0
;
luaL_check
any
table
(
L
,
1
);
luaL_checktable
(
L
,
1
);
lua_settop
(
L
,
2
);
// Pad a nil into the function slot if necessary
lua_settop
(
L
,
2
);
// Pad a nil into the function slot if necessary
get_opt_field_int
(
1
,
scan_mode
,
"mode"
);
get_opt_field_int
(
1
,
scan_mode
,
"mode"
);
...
@@ -557,7 +557,7 @@ static int lbthci_rawhci (lua_State *L)
...
@@ -557,7 +557,7 @@ static int lbthci_rawhci (lua_State *L)
}
}
LROT_BEGIN
(
bthci_adv
)
LROT_BEGIN
(
bthci_adv
,
NULL
,
0
)
LROT_FUNCENTRY
(
enable
,
lbthci_adv_enable
)
LROT_FUNCENTRY
(
enable
,
lbthci_adv_enable
)
LROT_FUNCENTRY
(
setdata
,
lbthci_adv_setdata
)
LROT_FUNCENTRY
(
setdata
,
lbthci_adv_setdata
)
LROT_FUNCENTRY
(
setparams
,
lbthci_adv_setparams
)
LROT_FUNCENTRY
(
setparams
,
lbthci_adv_setparams
)
...
@@ -576,14 +576,14 @@ LROT_BEGIN(bthci_adv)
...
@@ -576,14 +576,14 @@ LROT_BEGIN(bthci_adv)
LROT_END
(
bthci_adv
,
NULL
,
0
)
LROT_END
(
bthci_adv
,
NULL
,
0
)
LROT_BEGIN
(
bthci_scan
)
LROT_BEGIN
(
bthci_scan
,
NULL
,
0
)
LROT_FUNCENTRY
(
enable
,
lbthci_scan
)
LROT_FUNCENTRY
(
enable
,
lbthci_scan
)
LROT_FUNCENTRY
(
setparams
,
lbthci_scan_setparams
)
LROT_FUNCENTRY
(
setparams
,
lbthci_scan_setparams
)
LROT_FUNCENTRY
(
on
,
lbthci_scan_on
)
LROT_FUNCENTRY
(
on
,
lbthci_scan_on
)
LROT_END
(
bthci_scan
,
NULL
,
0
)
LROT_END
(
bthci_scan
,
NULL
,
0
)
LROT_BEGIN
(
bthci
)
LROT_BEGIN
(
bthci
,
NULL
,
0
)
LROT_FUNCENTRY
(
rawhci
,
lbthci_rawhci
)
LROT_FUNCENTRY
(
rawhci
,
lbthci_rawhci
)
LROT_FUNCENTRY
(
reset
,
lbthci_reset
)
LROT_FUNCENTRY
(
reset
,
lbthci_reset
)
LROT_TABENTRY
(
adv
,
bthci_adv
)
LROT_TABENTRY
(
adv
,
bthci_adv
)
...
...
components/modules
-esp32
/can.c
→
components/modules/can.c
View file @
dba57fa0
...
@@ -46,7 +46,7 @@ static void can_data_task( task_param_t param, task_prio_t prio ) {
...
@@ -46,7 +46,7 @@ static void can_data_task( task_param_t param, task_prio_t prio ) {
lua_pushinteger
(
L
,
frame
->
MsgID
);
lua_pushinteger
(
L
,
frame
->
MsgID
);
lua_pushlstring
(
L
,
(
char
*
)
frame
->
data
.
u8
,
frame
->
DLC
);
lua_pushlstring
(
L
,
(
char
*
)
frame
->
data
.
u8
,
frame
->
DLC
);
free
(
frame
);
free
(
frame
);
lua
_
call
(
L
,
3
,
0
);
lua
L_p
call
x
(
L
,
3
,
0
);
}
}
// RTOS
// RTOS
...
@@ -77,9 +77,9 @@ static int can_setup( lua_State *L )
...
@@ -77,9 +77,9 @@ static int can_setup( lua_State *L )
{
{
if
(
xCanTaskHandle
!=
NULL
)
if
(
xCanTaskHandle
!=
NULL
)
luaL_error
(
L
,
"Stop CAN before setup"
);
luaL_error
(
L
,
"Stop CAN before setup"
);
luaL_check
any
table
(
L
,
1
);
luaL_checktable
(
L
,
1
);
luaL_check
any
function
(
L
,
2
);
luaL_checkfunction
(
L
,
2
);
lua_settop
(
L
,
2
);
lua_settop
(
L
,
2
);
if
(
can_on_received
!=
LUA_NOREF
)
luaL_unref
(
L
,
LUA_REGISTRYINDEX
,
can_on_received
);
if
(
can_on_received
!=
LUA_NOREF
)
luaL_unref
(
L
,
LUA_REGISTRYINDEX
,
can_on_received
);
can_on_received
=
luaL_ref
(
L
,
LUA_REGISTRYINDEX
);
can_on_received
=
luaL_ref
(
L
,
LUA_REGISTRYINDEX
);
...
@@ -148,7 +148,7 @@ static int can_send( lua_State *L )
...
@@ -148,7 +148,7 @@ static int can_send( lua_State *L )
}
}
// Module function map
// Module function map
LROT_BEGIN
(
can
)
LROT_BEGIN
(
can
,
NULL
,
0
)
LROT_FUNCENTRY
(
setup
,
can_setup
)
LROT_FUNCENTRY
(
setup
,
can_setup
)
LROT_FUNCENTRY
(
start
,
can_start
)
LROT_FUNCENTRY
(
start
,
can_start
)
LROT_FUNCENTRY
(
stop
,
can_stop
)
LROT_FUNCENTRY
(
stop
,
can_stop
)
...
...
components/modules/common.h
View file @
dba57fa0
...
@@ -2,6 +2,9 @@
...
@@ -2,6 +2,9 @@
#define modules_common_h
#define modules_common_h
#include "lua.h"
#include "lua.h"
#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>
/* Some common code shared between modules */
/* Some common code shared between modules */
...
...
components/modules/crypto.c
View file @
dba57fa0
...
@@ -153,22 +153,22 @@ static int crypto_hash_gc(lua_State* L) {
...
@@ -153,22 +153,22 @@ static int crypto_hash_gc(lua_State* L) {
}
}
// The following table defines methods of the hasher object
// The following table defines methods of the hasher object
LROT_BEGIN
(
crypto_hasher
)
LROT_BEGIN
(
crypto_hasher
,
NULL
,
0
)
LROT_FUNCENTRY
(
update
,
crypto_hash_update
)
LROT_FUNCENTRY
(
finalize
,
crypto_hash_finalize
)
LROT_FUNCENTRY
(
__gc
,
crypto_hash_gc
)
LROT_FUNCENTRY
(
__gc
,
crypto_hash_gc
)
LROT_TABENTRY
(
__index
,
crypto_hasher
)
LROT_TABENTRY
(
__index
,
crypto_hasher
)
LROT_FUNCENTRY
(
update
,
crypto_hash_update
)
LROT_FUNCENTRY
(
finalize
,
crypto_hash_finalize
)
LROT_END
(
crypto_hasher
,
NULL
,
0
)
LROT_END
(
crypto_hasher
,
NULL
,
0
)
// This table defines the functions of the crypto module:
// This table defines the functions of the crypto module:
LROT_BEGIN
(
crypto
)
LROT_BEGIN
(
crypto
,
NULL
,
0
)
LROT_FUNCENTRY
(
new_hash
,
crypto_new_hash
)
LROT_FUNCENTRY
(
new_hash
,
crypto_new_hash
)
LROT_FUNCENTRY
(
new_hmac
,
crypto_new_hmac
)
LROT_FUNCENTRY
(
new_hmac
,
crypto_new_hmac
)
LROT_END
(
crypto
,
NULL
,
0
)
LROT_END
(
crypto
,
NULL
,
0
)
// luaopen_crypto is the crypto module initialization function
// luaopen_crypto is the crypto module initialization function
int
luaopen_crypto
(
lua_State
*
L
)
{
int
luaopen_crypto
(
lua_State
*
L
)
{
luaL_rometatable
(
L
,
HASH_METATABLE
,
(
void
*
)
crypto_hasher
_map
);
// create metatable for crypto.hash
luaL_rometatable
(
L
,
HASH_METATABLE
,
LROT_TABLEREF
(
crypto_hasher
)
);
// create metatable for crypto.hash
return
0
;
return
0
;
}
}
...
...
components/modules
-esp32
/dac.c
→
components/modules/dac.c
View file @
dba57fa0
...
@@ -52,7 +52,7 @@ static int ldac_write( lua_State *L )
...
@@ -52,7 +52,7 @@ static int ldac_write( lua_State *L )
// Module function map
// Module function map
LROT_BEGIN
(
dac
)
LROT_BEGIN
(
dac
,
NULL
,
0
)
LROT_FUNCENTRY
(
enable
,
ldac_enable
)
LROT_FUNCENTRY
(
enable
,
ldac_enable
)
LROT_FUNCENTRY
(
disable
,
ldac_disable
)
LROT_FUNCENTRY
(
disable
,
ldac_disable
)
LROT_FUNCENTRY
(
write
,
ldac_write
)
LROT_FUNCENTRY
(
write
,
ldac_write
)
...
...
components/modules/dht.c
View file @
dba57fa0
...
@@ -91,7 +91,7 @@ static int ldht_read2x( lua_State *L )
...
@@ -91,7 +91,7 @@ static int ldht_read2x( lua_State *L )
}
}
LROT_BEGIN
(
dht
)
LROT_BEGIN
(
dht
,
NULL
,
0
)
LROT_FUNCENTRY
(
read11
,
ldht_read11
)
LROT_FUNCENTRY
(
read11
,
ldht_read11
)
LROT_FUNCENTRY
(
read2x
,
ldht_read2x
)
LROT_FUNCENTRY
(
read2x
,
ldht_read2x
)
LROT_NUMENTRY
(
OK
,
LDHT_OK
)
LROT_NUMENTRY
(
OK
,
LDHT_OK
)
...
...
components/modules/encoder.c
View file @
dba57fa0
...
@@ -116,7 +116,7 @@ static uint8_t *fromHex ( lua_State* L, const uint8_t *msg, size_t *len){
...
@@ -116,7 +116,7 @@ static uint8_t *fromHex ( lua_State* L, const uint8_t *msg, size_t *len){
}
else
if
(
*
p
>=
'A'
&&
*
p
<=
'F'
)
{
}
else
if
(
*
p
>=
'A'
&&
*
p
<=
'F'
)
{
b
=
*
p
++
-
(
'A'
-
10
);
b
=
*
p
++
-
(
'A'
-
10
);
}
else
{
}
else
{
lua
M
_freearray
(
L
,
out
,
*
len
,
uint8_t
);
lua
N
_freearray
(
L
,
out
,
*
len
);
luaL_error
(
L
,
"Invalid hex string"
);
luaL_error
(
L
,
"Invalid hex string"
);
__builtin_unreachable
();
__builtin_unreachable
();
}
}
...
@@ -140,7 +140,7 @@ static int do_func (lua_State *L, uint8_t * (*conv_func)(lua_State *, const uint
...
@@ -140,7 +140,7 @@ static int do_func (lua_State *L, uint8_t * (*conv_func)(lua_State *, const uint
if
(
output
)
{
if
(
output
)
{
lua_pushlstring
(
L
,
(
char
*
)
output
,
len
);
lua_pushlstring
(
L
,
(
char
*
)
output
,
len
);
lua
M
_freearray
(
L
,
output
,
len
,
uint8_t
);
lua
N
_freearray
(
L
,
output
,
len
);
}
else
{
}
else
{
lua_pushstring
(
L
,
""
);
lua_pushstring
(
L
,
""
);
}
}
...
@@ -156,7 +156,7 @@ static int do_func (lua_State *L, uint8_t * (*conv_func)(lua_State *, const uint
...
@@ -156,7 +156,7 @@ static int do_func (lua_State *L, uint8_t * (*conv_func)(lua_State *, const uint
DECLARE_FUNCTION
(
toHex
);
DECLARE_FUNCTION
(
toHex
);
// Module function map
// Module function map
LROT_BEGIN
(
encoder
)
LROT_BEGIN
(
encoder
,
NULL
,
0
)
LROT_FUNCENTRY
(
fromBase64
,
encoder_fromBase64
)
LROT_FUNCENTRY
(
fromBase64
,
encoder_fromBase64
)
LROT_FUNCENTRY
(
toBase64
,
encoder_toBase64
)
LROT_FUNCENTRY
(
toBase64
,
encoder_toBase64
)
LROT_FUNCENTRY
(
fromHex
,
encoder_fromHex
)
LROT_FUNCENTRY
(
fromHex
,
encoder_fromHex
)
...
...
components/modules
-esp32
/eth.c
→
components/modules/eth.c
View file @
dba57fa0
...
@@ -119,7 +119,7 @@ static void on_event(esp_event_base_t base, int32_t id, const void *data)
...
@@ -119,7 +119,7 @@ static void on_event(esp_event_base_t base, int32_t id, const void *data)
lua_pushstring
(
L
,
events
[
idx
].
name
);
lua_pushstring
(
L
,
events
[
idx
].
name
);
lua_createtable
(
L
,
0
,
5
);
lua_createtable
(
L
,
0
,
5
);
events
[
idx
].
fill_cb_arg
(
L
,
data
);
events
[
idx
].
fill_cb_arg
(
L
,
data
);
lua_pcall
(
L
,
2
,
0
,
0
);
lua
L
_pcall
x
(
L
,
2
,
0
);
lua_settop
(
L
,
top
);
lua_settop
(
L
,
top
);
}
}
...
@@ -184,7 +184,7 @@ static int leth_on( lua_State *L )
...
@@ -184,7 +184,7 @@ static int leth_on( lua_State *L )
{
{
const
char
*
event_name
=
luaL_checkstring
(
L
,
1
);
const
char
*
event_name
=
luaL_checkstring
(
L
,
1
);
if
(
!
lua_isnoneornil
(
L
,
2
))
{
if
(
!
lua_isnoneornil
(
L
,
2
))
{
luaL_check
any
function
(
L
,
2
);
luaL_checkfunction
(
L
,
2
);
}
}
lua_settop
(
L
,
2
);
lua_settop
(
L
,
2
);
...
@@ -274,7 +274,7 @@ cleanup_mac_phy:
...
@@ -274,7 +274,7 @@ cleanup_mac_phy:
}
}
LROT_BEGIN
(
eth
)
LROT_BEGIN
(
eth
,
NULL
,
0
)
LROT_FUNCENTRY
(
init
,
leth_init
)
LROT_FUNCENTRY
(
init
,
leth_init
)
LROT_FUNCENTRY
(
on
,
leth_on
)
LROT_FUNCENTRY
(
on
,
leth_on
)
LROT_FUNCENTRY
(
get_speed
,
leth_get_speed
)
LROT_FUNCENTRY
(
get_speed
,
leth_get_speed
)
...
...
components/modules/file.c
View file @
dba57fa0
...
@@ -58,7 +58,7 @@ static int32_t file_rtc_cb( vfs_time *tm )
...
@@ -58,7 +58,7 @@ static int32_t file_rtc_cb( vfs_time *tm )
lua_State
*
L
=
lua_getstate
();
lua_State
*
L
=
lua_getstate
();
lua_rawgeti
(
L
,
LUA_REGISTRYINDEX
,
rtc_cb_ref
);
lua_rawgeti
(
L
,
LUA_REGISTRYINDEX
,
rtc_cb_ref
);
lua
_
call
(
L
,
0
,
1
);
lua
L_p
call
x
(
L
,
0
,
1
);
if
(
lua_type
(
L
,
lua_gettop
(
L
)
)
==
LUA_TTABLE
)
{
if
(
lua_type
(
L
,
lua_gettop
(
L
)
)
==
LUA_TTABLE
)
{
table2tm
(
L
,
tm
);
table2tm
(
L
,
tm
);
...
@@ -86,8 +86,7 @@ static int file_on(lua_State *L)
...
@@ -86,8 +86,7 @@ static int file_on(lua_State *L)
case
ON_RTC
:
case
ON_RTC
:
luaL_unref
(
L
,
LUA_REGISTRYINDEX
,
rtc_cb_ref
);
luaL_unref
(
L
,
LUA_REGISTRYINDEX
,
rtc_cb_ref
);
if
((
lua_type
(
L
,
2
)
==
LUA_TFUNCTION
)
||
if
(
lua_isfunction
(
L
,
2
))
{
(
lua_type
(
L
,
2
)
==
LUA_TLIGHTFUNCTION
))
{
lua_pushvalue
(
L
,
2
);
// copy argument (func) to the top of stack
lua_pushvalue
(
L
,
2
);
// copy argument (func) to the top of stack
rtc_cb_ref
=
luaL_ref
(
L
,
LUA_REGISTRYINDEX
);
rtc_cb_ref
=
luaL_ref
(
L
,
LUA_REGISTRYINDEX
);
vfs_register_rtc_cb
(
file_rtc_cb
);
vfs_register_rtc_cb
(
file_rtc_cb
);
...
@@ -430,7 +429,7 @@ static int file_g_read( lua_State* L, int n, int16_t end_char, int fd )
...
@@ -430,7 +429,7 @@ static int file_g_read( lua_State* L, int n, int16_t end_char, int fd )
}
}
if
(
heap_mem
)
{
if
(
heap_mem
)
{
lua
M
_freearray
(
L
,
heap_mem
,
bufsize
,
char
);
lua
N
_freearray
(
L
,
heap_mem
,
bufsize
);
}
}
if
(
err
){
if
(
err
){
...
@@ -550,7 +549,9 @@ static int file_chdir( lua_State *L )
...
@@ -550,7 +549,9 @@ static int file_chdir( lua_State *L )
}
}
#endif
#endif
LROT_BEGIN
(
file_obj
)
LROT_BEGIN
(
file_obj
,
NULL
,
0
)
LROT_FUNCENTRY
(
__gc
,
file_obj_free
)
LROT_TABENTRY
(
__index
,
file_obj
)
LROT_FUNCENTRY
(
close
,
file_close
)
LROT_FUNCENTRY
(
close
,
file_close
)
LROT_FUNCENTRY
(
read
,
file_read
)
LROT_FUNCENTRY
(
read
,
file_read
)
LROT_FUNCENTRY
(
readline
,
file_readline
)
LROT_FUNCENTRY
(
readline
,
file_readline
)
...
@@ -558,12 +559,10 @@ LROT_BEGIN(file_obj)
...
@@ -558,12 +559,10 @@ LROT_BEGIN(file_obj)
LROT_FUNCENTRY
(
writeline
,
file_writeline
)
LROT_FUNCENTRY
(
writeline
,
file_writeline
)
LROT_FUNCENTRY
(
seek
,
file_seek
)
LROT_FUNCENTRY
(
seek
,
file_seek
)
LROT_FUNCENTRY
(
flush
,
file_flush
)
LROT_FUNCENTRY
(
flush
,
file_flush
)
LROT_FUNCENTRY
(
__gc
,
file_obj_free
)
LROT_TABENTRY
(
__index
,
file_obj
)
LROT_END
(
file_obj
,
NULL
,
0
)
LROT_END
(
file_obj
,
NULL
,
0
)
// Module function map
// Module function map
LROT_BEGIN
(
file
)
LROT_BEGIN
(
file
,
NULL
,
0
)
LROT_FUNCENTRY
(
list
,
file_list
)
LROT_FUNCENTRY
(
list
,
file_list
)
LROT_FUNCENTRY
(
open
,
file_open
)
LROT_FUNCENTRY
(
open
,
file_open
)
LROT_FUNCENTRY
(
close
,
file_close
)
LROT_FUNCENTRY
(
close
,
file_close
)
...
@@ -589,7 +588,7 @@ LROT_BEGIN(file)
...
@@ -589,7 +588,7 @@ LROT_BEGIN(file)
LROT_END
(
file
,
NULL
,
0
)
LROT_END
(
file
,
NULL
,
0
)
int
luaopen_file
(
lua_State
*
L
)
{
int
luaopen_file
(
lua_State
*
L
)
{
luaL_rometatable
(
L
,
"file.obj"
,
(
void
*
)
file_obj
_map
);
luaL_rometatable
(
L
,
"file.obj"
,
LROT_TABLEREF
(
file_obj
)
);
return
0
;
return
0
;
}
}
...
...
components/modules/gpio.c
View file @
dba57fa0
...
@@ -79,7 +79,7 @@ static int lgpio_config (lua_State *L)
...
@@ -79,7 +79,7 @@ static int lgpio_config (lua_State *L)
luaL_checkstack
(
L
,
5
,
"out of mem"
);
luaL_checkstack
(
L
,
5
,
"out of mem"
);
for
(
int
i
=
1
;
i
<=
n
;
++
i
)
for
(
int
i
=
1
;
i
<=
n
;
++
i
)
{
{
luaL_check
any
table
(
L
,
i
);
luaL_checktable
(
L
,
i
);
gpio_config_t
cfg
;
gpio_config_t
cfg
;
cfg
.
intr_type
=
GPIO_INTR_DISABLE
;
cfg
.
intr_type
=
GPIO_INTR_DISABLE
;
...
@@ -141,7 +141,7 @@ static int lgpio_trig (lua_State *L)
...
@@ -141,7 +141,7 @@ static int lgpio_trig (lua_State *L)
int
gpio
=
luaL_checkint
(
L
,
1
);
int
gpio
=
luaL_checkint
(
L
,
1
);
int
intr_type
=
luaL_optint
(
L
,
2
,
GPIO_INTR_DISABLE
);
int
intr_type
=
luaL_optint
(
L
,
2
,
GPIO_INTR_DISABLE
);
if
(
!
lua_isnoneornil
(
L
,
3
))
if
(
!
lua_isnoneornil
(
L
,
3
))
luaL_check
any
function
(
L
,
3
);
luaL_checkfunction
(
L
,
3
);
lua_settop
(
L
,
3
);
lua_settop
(
L
,
3
);
...
@@ -235,7 +235,7 @@ static void nodemcu_gpio_callback_task (task_param_t param, task_prio_t prio)
...
@@ -235,7 +235,7 @@ static void nodemcu_gpio_callback_task (task_param_t param, task_prio_t prio)
lua_rawgeti
(
L
,
LUA_REGISTRYINDEX
,
gpio_cb_refs
[
gpio
]);
lua_rawgeti
(
L
,
LUA_REGISTRYINDEX
,
gpio_cb_refs
[
gpio
]);
lua_pushinteger
(
L
,
gpio
);
lua_pushinteger
(
L
,
gpio
);
lua_pushinteger
(
L
,
level
);
lua_pushinteger
(
L
,
level
);
lua
_
call
(
L
,
2
,
0
);
lua
L_p
call
x
(
L
,
2
,
0
);
gpio_intr_enable
(
gpio
);
gpio_intr_enable
(
gpio
);
}
}
}
}
...
@@ -250,7 +250,7 @@ static int nodemcu_gpio_init (lua_State *L)
...
@@ -250,7 +250,7 @@ static int nodemcu_gpio_init (lua_State *L)
}
}
LROT_BEGIN
(
lgpio
)
LROT_BEGIN
(
lgpio
,
NULL
,
0
)
LROT_FUNCENTRY
(
config
,
lgpio_config
)
LROT_FUNCENTRY
(
config
,
lgpio_config
)
LROT_FUNCENTRY
(
read
,
lgpio_read
)
LROT_FUNCENTRY
(
read
,
lgpio_read
)
LROT_FUNCENTRY
(
trig
,
lgpio_trig
)
LROT_FUNCENTRY
(
trig
,
lgpio_trig
)
...
...
components/modules/http.c
View file @
dba57fa0
...
@@ -335,7 +335,7 @@ static int make_callback(lhttp_context_t *context, int id, void *data, size_t da
...
@@ -335,7 +335,7 @@ static int make_callback(lhttp_context_t *context, int id, void *data, size_t da
// Lowercase all header names
// Lowercase all header names
luaL_getmetafield
(
L
,
-
1
,
"lower"
);
luaL_getmetafield
(
L
,
-
1
,
"lower"
);
lua_insert
(
L
,
-
2
);
lua_insert
(
L
,
-
2
);
lua
_
call
(
L
,
1
,
1
);
lua
L_p
call
x
(
L
,
1
,
1
);
char
*
val
=
item
->
data
+
item
->
len
+
1
;
char
*
val
=
item
->
data
+
item
->
len
+
1
;
lua_pushstring
(
L
,
val
);
lua_pushstring
(
L
,
val
);
lua_settable
(
L
,
-
3
);
lua_settable
(
L
,
-
3
);
...
@@ -366,7 +366,7 @@ static int make_callback(lhttp_context_t *context, int id, void *data, size_t da
...
@@ -366,7 +366,7 @@ static int make_callback(lhttp_context_t *context, int id, void *data, size_t da
if
(
id
!=
HTTP_REQUEST_COMPLETE
)
{
if
(
id
!=
HTTP_REQUEST_COMPLETE
)
{
context_setflag
(
context
,
InCallback
);
context_setflag
(
context
,
InCallback
);
}
}
int
err
=
lua_pcall
(
L
,
lua_gettop
(
L
)
-
1
,
1
,
0
);
int
err
=
lua
L
_pcall
x
(
L
,
lua_gettop
(
L
)
-
1
,
1
);
context_clearflag
(
context
,
InCallback
);
context_clearflag
(
context
,
InCallback
);
if
(
err
)
{
if
(
err
)
{
const
char
*
msg
=
lua_type
(
L
,
-
1
)
==
LUA_TSTRING
?
lua_tostring
(
L
,
-
1
)
:
"<?>"
;
const
char
*
msg
=
lua_type
(
L
,
-
1
)
==
LUA_TSTRING
?
lua_tostring
(
L
,
-
1
)
:
"<?>"
;
...
@@ -657,7 +657,7 @@ static int http_accumulate_complete(lua_State *L)
...
@@ -657,7 +657,7 @@ static int http_accumulate_complete(lua_State *L)
context_setref
(
L
,
context
,
HeadersCallback
);
context_setref
(
L
,
context
,
HeadersCallback
);
}
else
{
}
else
{
lua_rawgeti
(
L
,
cache_table
,
2
);
// headers
lua_rawgeti
(
L
,
cache_table
,
2
);
// headers
lua
_
call
(
L
,
3
,
0
);
lua
L_p
call
x
(
L
,
3
,
0
);
}
}
// unset this since it contains a reference to the context and would prevent the context to be garbage collected
// unset this since it contains a reference to the context and would prevent the context to be garbage collected
context_unsetref
(
L
,
context
,
CompleteCallback
);
context_unsetref
(
L
,
context
,
CompleteCallback
);
...
@@ -692,7 +692,7 @@ static int make_oneshot_request(lua_State *L, int callback_idx)
...
@@ -692,7 +692,7 @@ static int make_oneshot_request(lua_State *L, int callback_idx)
// Finally, call request
// Finally, call request
lua_pushcfunction
(
L
,
http_lapi_request
);
lua_pushcfunction
(
L
,
http_lapi_request
);
lua_pushvalue
(
L
,
-
2
);
// context
lua_pushvalue
(
L
,
-
2
);
// context
lua
_
call
(
L
,
1
,
0
);
lua
L_p
call
x
(
L
,
1
,
0
);
if
(
async
)
{
if
(
async
)
{
return
0
;
return
0
;
...
@@ -736,7 +736,7 @@ static int http_lapi_get(lua_State *L)
...
@@ -736,7 +736,7 @@ static int http_lapi_get(lua_State *L)
lua_pushinteger
(
L
,
HTTP_METHOD_GET
);
lua_pushinteger
(
L
,
HTTP_METHOD_GET
);
lua_pushvalue
(
L
,
2
);
// options
lua_pushvalue
(
L
,
2
);
// options
lua
_
call
(
L
,
3
,
1
);
// returns context
lua
L_p
call
x
(
L
,
3
,
1
);
// returns context
return
make_oneshot_request
(
L
,
3
);
return
make_oneshot_request
(
L
,
3
);
}
}
...
@@ -768,17 +768,17 @@ static int http_lapi_post(lua_State *L)
...
@@ -768,17 +768,17 @@ static int http_lapi_post(lua_State *L)
lua_pushinteger
(
L
,
HTTP_METHOD_POST
);
lua_pushinteger
(
L
,
HTTP_METHOD_POST
);
lua_pushvalue
(
L
,
2
);
// options
lua_pushvalue
(
L
,
2
);
// options
lua
_
call
(
L
,
3
,
1
);
// returns context
lua
L_p
call
x
(
L
,
3
,
1
);
// returns context
lua_pushcfunction
(
L
,
http_lapi_setpostdata
);
lua_pushcfunction
(
L
,
http_lapi_setpostdata
);
lua_pushvalue
(
L
,
-
2
);
// context
lua_pushvalue
(
L
,
-
2
);
// context
lua_pushvalue
(
L
,
3
);
// body
lua_pushvalue
(
L
,
3
);
// body
lua
_
call
(
L
,
2
,
0
);
lua
L_p
call
x
(
L
,
2
,
0
);
return
make_oneshot_request
(
L
,
4
);
// 4 = callback idx
return
make_oneshot_request
(
L
,
4
);
// 4 = callback idx
}
}
LROT_BEGIN
(
http
)
LROT_BEGIN
(
http
,
NULL
,
0
)
LROT_FUNCENTRY
(
createConnection
,
http_lapi_createConnection
)
LROT_FUNCENTRY
(
createConnection
,
http_lapi_createConnection
)
LROT_NUMENTRY
(
GET
,
HTTP_METHOD_GET
)
LROT_NUMENTRY
(
GET
,
HTTP_METHOD_GET
)
LROT_NUMENTRY
(
POST
,
HTTP_METHOD_POST
)
LROT_NUMENTRY
(
POST
,
HTTP_METHOD_POST
)
...
@@ -790,7 +790,9 @@ LROT_BEGIN(http)
...
@@ -790,7 +790,9 @@ LROT_BEGIN(http)
LROT_FUNCENTRY
(
post
,
http_lapi_post
)
LROT_FUNCENTRY
(
post
,
http_lapi_post
)
LROT_END
(
http
,
NULL
,
0
)
LROT_END
(
http
,
NULL
,
0
)
LROT_BEGIN
(
http_context
)
LROT_BEGIN
(
http_context
,
NULL
,
0
)
LROT_FUNCENTRY
(
__gc
,
context_gc
)
LROT_TABENTRY
(
__index
,
http_context
)
LROT_FUNCENTRY
(
on
,
http_lapi_on
)
LROT_FUNCENTRY
(
on
,
http_lapi_on
)
LROT_FUNCENTRY
(
request
,
http_lapi_request
)
LROT_FUNCENTRY
(
request
,
http_lapi_request
)
LROT_FUNCENTRY
(
setmethod
,
http_lapi_setmethod
)
LROT_FUNCENTRY
(
setmethod
,
http_lapi_setmethod
)
...
@@ -799,13 +801,11 @@ LROT_BEGIN(http_context)
...
@@ -799,13 +801,11 @@ LROT_BEGIN(http_context)
LROT_FUNCENTRY
(
setpostdata
,
http_lapi_setpostdata
)
LROT_FUNCENTRY
(
setpostdata
,
http_lapi_setpostdata
)
LROT_FUNCENTRY
(
close
,
context_close
)
LROT_FUNCENTRY
(
close
,
context_close
)
LROT_FUNCENTRY
(
ack
,
http_lapi_ack
)
LROT_FUNCENTRY
(
ack
,
http_lapi_ack
)
LROT_FUNCENTRY
(
__gc
,
context_gc
)
LROT_TABENTRY
(
__index
,
http_context
)
LROT_END
(
http_context
,
NULL
,
0
)
LROT_END
(
http_context
,
NULL
,
0
)
static
int
luaopen_http
(
lua_State
*
L
)
static
int
luaopen_http
(
lua_State
*
L
)
{
{
luaL_rometatable
(
L
,
http_context_mt
,
(
void
*
)
http_context
_map
);
luaL_rometatable
(
L
,
http_context_mt
,
LROT_TABLEREF
(
http_context
)
);
lhttp_request_task_id
=
task_get_id
(
lhttp_request_task
);
lhttp_request_task_id
=
task_get_id
(
lhttp_request_task
);
lhttp_event_task_id
=
task_get_id
(
lhttp_event_task
);
lhttp_event_task_id
=
task_get_id
(
lhttp_event_task
);
return
0
;
return
0
;
...
...
components/modules/i2c.c
View file @
dba57fa0
...
@@ -210,7 +210,7 @@ static int i2c_read( lua_State *L )
...
@@ -210,7 +210,7 @@ static int i2c_read( lua_State *L )
}
}
}
}
LROT_BEGIN
(
i2c
)
LROT_BEGIN
(
i2c
,
NULL
,
0
)
LROT_FUNCENTRY
(
setup
,
i2c_setup
)
LROT_FUNCENTRY
(
setup
,
i2c_setup
)
LROT_FUNCENTRY
(
start
,
i2c_start
)
LROT_FUNCENTRY
(
start
,
i2c_start
)
LROT_FUNCENTRY
(
stop
,
i2c_stop
)
LROT_FUNCENTRY
(
stop
,
i2c_stop
)
...
...
components/modules/i2c_common.h
View file @
dba57fa0
...
@@ -29,7 +29,7 @@ int li2c_hw_master_transfer( lua_State *L );
...
@@ -29,7 +29,7 @@ int li2c_hw_master_transfer( lua_State *L );
// ***************************************************************************
// ***************************************************************************
// Hardware slave prototypes
// Hardware slave prototypes
//
//
LROT_EXTERN
(
li2c_slave
);
extern
LROT_TABLE
(
li2c_slave
);
void
li2c_hw_slave_init
(
lua_State
*
L
);
void
li2c_hw_slave_init
(
lua_State
*
L
);
...
...
components/modules/i2c_hw_master.c
View file @
dba57fa0
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
#include "lmem.h"
#include "lmem.h"
#include "driver/i2c.h"
#include "driver/i2c.h"
#include "soc/i2c_reg.h"
#include "soc/i2c_reg.h"
#include "hal/i2c_ll.h"
#include "i2c_common.h"
#include "i2c_common.h"
...
@@ -110,7 +111,7 @@ static void i2c_transfer_task( task_param_t param, task_prio_t prio )
...
@@ -110,7 +111,7 @@ static void i2c_transfer_task( task_param_t param, task_prio_t prio )
lua_pushnil
(
L
);
lua_pushnil
(
L
);
}
}
lua_pushboolean
(
L
,
job
->
err
==
ESP_OK
);
lua_pushboolean
(
L
,
job
->
err
==
ESP_OK
);
lua
_
call
(
L
,
2
,
0
);
lua
L_p
call
x
(
L
,
2
,
0
);
}
}
// free all memory
// free all memory
...
@@ -219,7 +220,7 @@ int li2c_hw_master_setup( lua_State *L, unsigned id, unsigned sda, unsigned scl,
...
@@ -219,7 +220,7 @@ int li2c_hw_master_setup( lua_State *L, unsigned id, unsigned sda, unsigned scl,
int
timeoutcycles
;
int
timeoutcycles
;
i2c_lua_checkerr
(
L
,
i2c_get_timeout
(
port
,
&
timeoutcycles
)
);
i2c_lua_checkerr
(
L
,
i2c_get_timeout
(
port
,
&
timeoutcycles
)
);
timeoutcycles
=
timeoutcycles
*
stretchfactor
;
timeoutcycles
=
timeoutcycles
*
stretchfactor
;
luaL_argcheck
(
L
,
timeoutcycles
*
stretchfactor
<=
I2C_TIME
_
OUT
_REG_V
,
5
,
"excessive stretch factor"
);
luaL_argcheck
(
L
,
timeoutcycles
*
stretchfactor
<=
I2C_
LL_MAX_
TIMEOUT
,
5
,
"excessive stretch factor"
);
i2c_lua_checkerr
(
L
,
i2c_set_timeout
(
port
,
timeoutcycles
)
);
i2c_lua_checkerr
(
L
,
i2c_set_timeout
(
port
,
timeoutcycles
)
);
i2c_lua_checkerr
(
L
,
i2c_driver_install
(
port
,
cfg
.
mode
,
0
,
0
,
0
));
i2c_lua_checkerr
(
L
,
i2c_driver_install
(
port
,
cfg
.
mode
,
0
,
0
,
0
));
...
@@ -319,7 +320,7 @@ int li2c_hw_master_transfer( lua_State *L )
...
@@ -319,7 +320,7 @@ int li2c_hw_master_transfer( lua_State *L )
luaL_error
(
L
,
"no commands scheduled"
);
luaL_error
(
L
,
"no commands scheduled"
);
stack
++
;
stack
++
;
if
(
lua_isfunction
(
L
,
stack
)
||
lua_islightfunction
(
L
,
stack
))
{
if
(
lua_isfunction
(
L
,
stack
))
{
lua_pushvalue
(
L
,
stack
);
// copy argument (func) to the top of stack
lua_pushvalue
(
L
,
stack
);
// copy argument (func) to the top of stack
luaL_unref
(
L
,
LUA_REGISTRYINDEX
,
job
->
cb_ref
);
luaL_unref
(
L
,
LUA_REGISTRYINDEX
,
job
->
cb_ref
);
job
->
cb_ref
=
luaL_ref
(
L
,
LUA_REGISTRYINDEX
);
job
->
cb_ref
=
luaL_ref
(
L
,
LUA_REGISTRYINDEX
);
...
...
components/modules/i2c_hw_slave.c
View file @
dba57fa0
...
@@ -109,7 +109,7 @@ static void i2c_receive_task( task_param_t param, task_prio_t prio )
...
@@ -109,7 +109,7 @@ static void i2c_receive_task( task_param_t param, task_prio_t prio )
}
else
{
}
else
{
lua_pushnil
(
L
);
lua_pushnil
(
L
);
}
}
lua
_
call
(
L
,
2
,
0
);
lua
L_p
call
x
(
L
,
2
,
0
);
}
}
// free all memory
// free all memory
...
@@ -173,7 +173,7 @@ static int li2c_slave_setup( lua_State *L )
...
@@ -173,7 +173,7 @@ static int li2c_slave_setup( lua_State *L )
ud
->
port
=
port
;
ud
->
port
=
port
;
int
stack
=
1
;
int
stack
=
1
;
luaL_check
any
table
(
L
,
++
stack
);
luaL_checktable
(
L
,
++
stack
);
lua_settop
(
L
,
stack
);
lua_settop
(
L
,
stack
);
i2c_config_t
cfg
;
i2c_config_t
cfg
;
...
@@ -305,7 +305,7 @@ static int li2c_slave_on( lua_State *L )
...
@@ -305,7 +305,7 @@ static int li2c_slave_on( lua_State *L )
luaL_unref
(
L
,
LUA_REGISTRYINDEX
,
ud
->
receivedcb_ref
);
luaL_unref
(
L
,
LUA_REGISTRYINDEX
,
ud
->
receivedcb_ref
);
++
stack
;
++
stack
;
if
(
lua_isfunction
(
L
,
stack
)
||
lua_islightfunction
(
L
,
stack
))
{
if
(
lua_isfunction
(
L
,
stack
))
{
lua_pushvalue
(
L
,
stack
);
// copy argument (func) to the top of stack
lua_pushvalue
(
L
,
stack
);
// copy argument (func) to the top of stack
ud
->
receivedcb_ref
=
luaL_ref
(
L
,
LUA_REGISTRYINDEX
);
ud
->
receivedcb_ref
=
luaL_ref
(
L
,
LUA_REGISTRYINDEX
);
}
}
...
@@ -318,7 +318,7 @@ static int li2c_slave_on( lua_State *L )
...
@@ -318,7 +318,7 @@ static int li2c_slave_on( lua_State *L )
}
}
LROT_
PUBLIC_
BEGIN
(
li2c_slave
)
LROT_BEGIN
(
li2c_slave
,
NULL
,
0
)
LROT_FUNCENTRY
(
on
,
li2c_slave_on
)
LROT_FUNCENTRY
(
on
,
li2c_slave_on
)
LROT_FUNCENTRY
(
setup
,
li2c_slave_setup
)
LROT_FUNCENTRY
(
setup
,
li2c_slave_setup
)
LROT_FUNCENTRY
(
send
,
li2c_slave_send
)
LROT_FUNCENTRY
(
send
,
li2c_slave_send
)
...
...
components/modules
-esp32
/i2s.c
→
components/modules/i2s.c
View file @
dba57fa0
...
@@ -55,7 +55,7 @@ static void i2s_tx_task( task_param_t param, task_prio_t prio ) {
...
@@ -55,7 +55,7 @@ static void i2s_tx_task( task_param_t param, task_prio_t prio ) {
lua_rawgeti
(
L
,
LUA_REGISTRYINDEX
,
is
->
cb
);
lua_rawgeti
(
L
,
LUA_REGISTRYINDEX
,
is
->
cb
);
lua_pushinteger
(
L
,
i2s_id
);
lua_pushinteger
(
L
,
i2s_id
);
lua_pushstring
(
L
,
"tx"
);
lua_pushstring
(
L
,
"tx"
);
lua
_
call
(
L
,
2
,
0
);
lua
L_p
call
x
(
L
,
2
,
0
);
}
}
}
}
...
@@ -68,7 +68,7 @@ static void i2s_rx_task( task_param_t param, task_prio_t prio ) {
...
@@ -68,7 +68,7 @@ static void i2s_rx_task( task_param_t param, task_prio_t prio ) {
lua_rawgeti
(
L
,
LUA_REGISTRYINDEX
,
is
->
cb
);
lua_rawgeti
(
L
,
LUA_REGISTRYINDEX
,
is
->
cb
);
lua_pushinteger
(
L
,
i2s_id
);
lua_pushinteger
(
L
,
i2s_id
);
lua_pushstring
(
L
,
"rx"
);
lua_pushstring
(
L
,
"rx"
);
lua
_
call
(
L
,
2
,
0
);
lua
L_p
call
x
(
L
,
2
,
0
);
}
}
}
}
...
@@ -134,7 +134,7 @@ static int node_i2s_start( lua_State *L )
...
@@ -134,7 +134,7 @@ static int node_i2s_start( lua_State *L )
int
top
=
lua_gettop
(
L
);
int
top
=
lua_gettop
(
L
);
luaL_check
any
table
(
L
,
2
);
luaL_checktable
(
L
,
2
);
i2s_config_t
i2s_config
;
i2s_config_t
i2s_config
;
memset
(
&
i2s_config
,
0
,
sizeof
(
i2s_config
)
);
memset
(
&
i2s_config
,
0
,
sizeof
(
i2s_config
)
);
...
@@ -309,7 +309,7 @@ static int node_i2s_mute( lua_State *L )
...
@@ -309,7 +309,7 @@ static int node_i2s_mute( lua_State *L )
// Module function map
// Module function map
LROT_BEGIN
(
i2s
)
LROT_BEGIN
(
i2s
,
NULL
,
0
)
LROT_FUNCENTRY
(
start
,
node_i2s_start
)
LROT_FUNCENTRY
(
start
,
node_i2s_start
)
LROT_FUNCENTRY
(
stop
,
node_i2s_stop
)
LROT_FUNCENTRY
(
stop
,
node_i2s_stop
)
LROT_FUNCENTRY
(
read
,
node_i2s_read
)
LROT_FUNCENTRY
(
read
,
node_i2s_read
)
...
...
components/modules/ledc.c
View file @
dba57fa0
...
@@ -17,7 +17,7 @@ typedef struct {
...
@@ -17,7 +17,7 @@ typedef struct {
static
int
lledc_new_channel
(
lua_State
*
L
)
static
int
lledc_new_channel
(
lua_State
*
L
)
{
{
const
int
top
=
lua_gettop
(
L
);
const
int
top
=
lua_gettop
(
L
);
luaL_check
any
table
(
L
,
1
);
luaL_checktable
(
L
,
1
);
/* Setup timer */
/* Setup timer */
ledc_timer_config_t
ledc_timer
;
ledc_timer_config_t
ledc_timer
;
...
@@ -231,7 +231,8 @@ static int lledc_set_fade( lua_State *L ) {
...
@@ -231,7 +231,8 @@ static int lledc_set_fade( lua_State *L ) {
}
}
// Module function map
// Module function map
LROT_BEGIN
(
ledc_channel
)
LROT_BEGIN
(
ledc_channel
,
NULL
,
0
)
LROT_TABENTRY
(
__index
,
ledc_channel
)
LROT_FUNCENTRY
(
getduty
,
lledc_get_duty
)
LROT_FUNCENTRY
(
getduty
,
lledc_get_duty
)
LROT_FUNCENTRY
(
setduty
,
lledc_set_duty
)
LROT_FUNCENTRY
(
setduty
,
lledc_set_duty
)
LROT_FUNCENTRY
(
getfreq
,
lledc_get_freq
)
LROT_FUNCENTRY
(
getfreq
,
lledc_get_freq
)
...
@@ -245,11 +246,9 @@ LROT_BEGIN(ledc_channel)
...
@@ -245,11 +246,9 @@ LROT_BEGIN(ledc_channel)
LROT_FUNCENTRY
(
fadewithtime
,
lledc_set_fade_with_time
)
LROT_FUNCENTRY
(
fadewithtime
,
lledc_set_fade_with_time
)
LROT_FUNCENTRY
(
fadewithstep
,
lledc_set_fade_with_step
)
LROT_FUNCENTRY
(
fadewithstep
,
lledc_set_fade_with_step
)
LROT_FUNCENTRY
(
fade
,
lledc_set_fade
)
LROT_FUNCENTRY
(
fade
,
lledc_set_fade
)
LROT_TABENTRY
(
__index
,
ledc_channel
)
LROT_END
(
ledc_channel
,
NULL
,
0
)
LROT_END
(
ledc_channel
,
NULL
,
0
)
LROT_BEGIN
(
ledc
)
LROT_BEGIN
(
ledc
,
NULL
,
0
)
LROT_FUNCENTRY
(
newChannel
,
lledc_new_channel
)
LROT_FUNCENTRY
(
newChannel
,
lledc_new_channel
)
#if SOC_LEDC_SUPPORT_HS_MODE
#if SOC_LEDC_SUPPORT_HS_MODE
...
@@ -295,7 +294,7 @@ LROT_BEGIN(ledc)
...
@@ -295,7 +294,7 @@ LROT_BEGIN(ledc)
LROT_END
(
ledc
,
NULL
,
0
)
LROT_END
(
ledc
,
NULL
,
0
)
int
luaopen_ledc
(
lua_State
*
L
)
{
int
luaopen_ledc
(
lua_State
*
L
)
{
luaL_rometatable
(
L
,
"ledc.channel"
,
(
void
*
)
ledc_channel
_map
);
// create metatable for ledc.channel
luaL_rometatable
(
L
,
"ledc.channel"
,
LROT_TABLEREF
(
ledc_channel
)
);
// create metatable for ledc.channel
return
0
;
return
0
;
}
}
...
...
Prev
1
…
5
6
7
8
9
10
11
12
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment