Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
1462d00e
Commit
1462d00e
authored
Dec 19, 2015
by
Terry Ellison
Browse files
Merge pull request #842 from jmattsson/module-ltr-cleanup
Cleanup: LTR module registration
parents
4708b2ac
9003d3e8
Changes
48
Hide whitespace changes
Inline
Side-by-side
app/modules/enduser_setup.c
View file @
1462d00e
...
@@ -31,12 +31,9 @@
...
@@ -31,12 +31,9 @@
* @author Robert Foss <dev@robertfoss.se>
* @author Robert Foss <dev@robertfoss.se>
*/
*/
#include "module.h"
#include "lualib.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "platform.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_stdlib.h"
#include "c_stdlib.h"
#include "c_string.h"
#include "c_string.h"
#include "user_interface.h"
#include "user_interface.h"
...
@@ -929,17 +926,10 @@ static int enduser_setup_stop(lua_State* L)
...
@@ -929,17 +926,10 @@ static int enduser_setup_stop(lua_State* L)
}
}
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
enduser_setup_map
[]
=
{
#include "lrodefs.h"
const
LUA_REG_TYPE
enduser_setup_map
[]
=
{
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
enduser_setup_start
)},
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
enduser_setup_start
)},
{
LSTRKEY
(
"stop"
),
LFUNCVAL
(
enduser_setup_stop
)},
{
LSTRKEY
(
"stop"
),
LFUNCVAL
(
enduser_setup_stop
)},
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_enduser_setup
(
lua_State
*
L
)
{
NODEMCU_MODULE
(
ENDUSER_SETUP
,
"enduser_setup"
,
enduser_setup_map
,
NULL
);
LREGISTER
(
L
,
"enduser_setup"
,
enduser_setup_map
);
return
1
;
}
app/modules/file.c
View file @
1462d00e
// Module for interfacing with file system
// Module for interfacing with file system
#include "lua.h"
#include "module.h"
#include "lualib.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "platform.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_types.h"
#include "c_types.h"
#include "flash_fs.h"
#include "flash_fs.h"
...
@@ -299,42 +296,24 @@ static int file_writeline( lua_State* L )
...
@@ -299,42 +296,24 @@ static int file_writeline( lua_State* L )
}
}
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
file_map
[]
=
{
#include "lrodefs.h"
{
LSTRKEY
(
"list"
),
LFUNCVAL
(
file_list
)
},
const
LUA_REG_TYPE
file_map
[]
=
{
LSTRKEY
(
"open"
),
LFUNCVAL
(
file_open
)
},
{
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
file_close
)
},
{
LSTRKEY
(
"list"
),
LFUNCVAL
(
file_list
)
},
{
LSTRKEY
(
"write"
),
LFUNCVAL
(
file_write
)
},
{
LSTRKEY
(
"open"
),
LFUNCVAL
(
file_open
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
file_close
)
},
{
LSTRKEY
(
"write"
),
LFUNCVAL
(
file_write
)
},
{
LSTRKEY
(
"writeline"
),
LFUNCVAL
(
file_writeline
)
},
{
LSTRKEY
(
"writeline"
),
LFUNCVAL
(
file_writeline
)
},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
file_read
)
},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
file_read
)
},
{
LSTRKEY
(
"readline"
),
LFUNCVAL
(
file_readline
)
},
{
LSTRKEY
(
"readline"
),
LFUNCVAL
(
file_readline
)
},
{
LSTRKEY
(
"format"
),
LFUNCVAL
(
file_format
)
},
{
LSTRKEY
(
"format"
),
LFUNCVAL
(
file_format
)
},
#if defined(BUILD_WOFS)
#if defined(BUILD_SPIFFS) && !defined(BUILD_WOFS)
#elif defined(BUILD_SPIFFS)
{
LSTRKEY
(
"remove"
),
LFUNCVAL
(
file_remove
)
},
{
LSTRKEY
(
"remove"
),
LFUNCVAL
(
file_remove
)
},
{
LSTRKEY
(
"seek"
),
LFUNCVAL
(
file_seek
)
},
{
LSTRKEY
(
"seek"
),
LFUNCVAL
(
file_seek
)
},
{
LSTRKEY
(
"flush"
),
LFUNCVAL
(
file_flush
)
},
{
LSTRKEY
(
"flush"
),
LFUNCVAL
(
file_flush
)
},
//{ LSTRKEY( "check" ), LFUNCVAL( file_check ) },
// { LSTRKEY( "check" ), LFUNCVAL( file_check ) },
{
LSTRKEY
(
"rename"
),
LFUNCVAL
(
file_rename
)
},
{
LSTRKEY
(
"rename"
),
LFUNCVAL
(
file_rename
)
},
{
LSTRKEY
(
"fsinfo"
),
LFUNCVAL
(
file_fsinfo
)
},
{
LSTRKEY
(
"fsinfo"
),
LFUNCVAL
(
file_fsinfo
)
},
#endif
#if LUA_OPTIMIZE_MEMORY > 0
#endif
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_file
(
lua_State
*
L
)
NODEMCU_MODULE
(
FILE
,
"file"
,
file_map
,
NULL
);
{
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
luaL_register
(
L
,
AUXLIB_FILE
,
file_map
);
// Add constants
return
1
;
#endif // #if LUA_OPTIMIZE_MEMORY > 0
}
app/modules/gpio.c
View file @
1462d00e
// Module for interfacing with GPIO
// Module for interfacing with GPIO
//#include "lua.h"
#include "module.h"
#include "lualib.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "platform.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_types.h"
#include "c_types.h"
#include "c_string.h"
#include "c_string.h"
...
@@ -223,33 +220,25 @@ static int lgpio_serout( lua_State* L )
...
@@ -223,33 +220,25 @@ static int lgpio_serout( lua_State* L )
#undef DELAY_TABLE_MAX_LEN
#undef DELAY_TABLE_MAX_LEN
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
gpio_map
[]
=
{
#include "lrodefs.h"
{
LSTRKEY
(
"mode"
),
LFUNCVAL
(
lgpio_mode
)
},
const
LUA_REG_TYPE
gpio_map
[]
=
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
lgpio_read
)
},
{
{
LSTRKEY
(
"write"
),
LFUNCVAL
(
lgpio_write
)
},
{
LSTRKEY
(
"mode"
),
LFUNCVAL
(
lgpio_mode
)
},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
lgpio_read
)
},
{
LSTRKEY
(
"write"
),
LFUNCVAL
(
lgpio_write
)
},
{
LSTRKEY
(
"serout"
),
LFUNCVAL
(
lgpio_serout
)
},
{
LSTRKEY
(
"serout"
),
LFUNCVAL
(
lgpio_serout
)
},
#ifdef GPIO_INTERRUPT_ENABLE
#ifdef GPIO_INTERRUPT_ENABLE
{
LSTRKEY
(
"trig"
),
LFUNCVAL
(
lgpio_trig
)
},
{
LSTRKEY
(
"trig"
),
LFUNCVAL
(
lgpio_trig
)
},
#endif
{
LSTRKEY
(
"INT"
),
LNUMVAL
(
INTERRUPT
)
},
#if LUA_OPTIMIZE_MEMORY > 0
#ifdef GPIO_INTERRUPT_ENABLE
{
LSTRKEY
(
"INT"
),
LNUMVAL
(
INTERRUPT
)
},
#endif
#endif
{
LSTRKEY
(
"OUTPUT"
),
LNUMVAL
(
OUTPUT
)
},
{
LSTRKEY
(
"OUTPUT"
),
LNUMVAL
(
OUTPUT
)
},
{
LSTRKEY
(
"INPUT"
),
LNUMVAL
(
INPUT
)
},
{
LSTRKEY
(
"INPUT"
),
LNUMVAL
(
INPUT
)
},
{
LSTRKEY
(
"HIGH"
),
LNUMVAL
(
HIGH
)
},
{
LSTRKEY
(
"HIGH"
),
LNUMVAL
(
HIGH
)
},
{
LSTRKEY
(
"LOW"
),
LNUMVAL
(
LOW
)
},
{
LSTRKEY
(
"LOW"
),
LNUMVAL
(
LOW
)
},
{
LSTRKEY
(
"FLOAT"
),
LNUMVAL
(
FLOAT
)
},
{
LSTRKEY
(
"FLOAT"
),
LNUMVAL
(
FLOAT
)
},
{
LSTRKEY
(
"PULLUP"
),
LNUMVAL
(
PULLUP
)
},
{
LSTRKEY
(
"PULLUP"
),
LNUMVAL
(
PULLUP
)
},
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_gpio
(
lua_State
*
L
)
int
luaopen_gpio
(
lua_State
*
L
)
{
{
#ifdef GPIO_INTERRUPT_ENABLE
#ifdef GPIO_INTERRUPT_ENABLE
int
i
;
int
i
;
for
(
i
=
0
;
i
<
GPIO_PIN_NUM
;
i
++
){
for
(
i
=
0
;
i
<
GPIO_PIN_NUM
;
i
++
){
...
@@ -257,21 +246,7 @@ LUALIB_API int luaopen_gpio( lua_State *L )
...
@@ -257,21 +246,7 @@ LUALIB_API int luaopen_gpio( lua_State *L )
}
}
platform_gpio_init
(
gpio_intr_callback
);
platform_gpio_init
(
gpio_intr_callback
);
#endif
#endif
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
luaL_register
(
L
,
AUXLIB_GPIO
,
gpio_map
);
// Add constants
#ifdef GPIO_INTERRUPT_ENABLE
MOD_REG_NUMBER
(
L
,
"INT"
,
INTERRUPT
);
#endif
MOD_REG_NUMBER
(
L
,
"OUTPUT"
,
OUTPUT
);
MOD_REG_NUMBER
(
L
,
"INPUT"
,
INPUT
);
MOD_REG_NUMBER
(
L
,
"HIGH"
,
HIGH
);
MOD_REG_NUMBER
(
L
,
"LOW"
,
LOW
);
MOD_REG_NUMBER
(
L
,
"FLOAT"
,
FLOAT
);
MOD_REG_NUMBER
(
L
,
"PULLUP"
,
PULLUP
);
return
1
;
#endif // #if LUA_OPTIMIZE_MEMORY > 0
}
}
NODEMCU_MODULE
(
GPIO
,
"gpio"
,
gpio_map
,
luaopen_gpio
);
app/modules/hx711.c
View file @
1462d00e
// Module for HX711 load cell amplifier
// Module for HX711 load cell amplifier
// https://learn.sparkfun.com/tutorials/load-cell-amplifier-hx711-breakout-hookup-guide
// https://learn.sparkfun.com/tutorials/load-cell-amplifier-hx711-breakout-hookup-guide
#include "
lualib
.h"
#include "
module
.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "platform.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_stdlib.h"
#include "c_stdlib.h"
#include "c_string.h"
#include "c_string.h"
#include "user_interface.h"
#include "user_interface.h"
...
@@ -67,18 +65,16 @@ static int ICACHE_FLASH_ATTR hx711_read(lua_State* L) {
...
@@ -67,18 +65,16 @@ static int ICACHE_FLASH_ATTR hx711_read(lua_State* L) {
return
1
;
return
1
;
}
}
#define MIN_OPT_LEVEL 2
// Module function map
#include "lrodefs.h"
static
const
LUA_REG_TYPE
hx711_map
[]
=
{
const
LUA_REG_TYPE
hx711_map
[]
=
{
{
LSTRKEY
(
"init"
),
LFUNCVAL
(
hx711_init
)},
{
LSTRKEY
(
"init"
),
LFUNCVAL
(
hx711_init
)},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
hx711_read
)},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
hx711_read
)},
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_hx711
(
lua_State
*
L
)
{
int
luaopen_hx711
(
lua_State
*
L
)
{
// TODO: the below todo was inherited from the ws2812 code but is still valid.
// TODO: Make sure that the GPIO system is initialized
// TODO: Make sure that the GPIO system is initialized
LREGISTER
(
L
,
"hx711"
,
hx711_map
);
return
0
;
return
1
;
}
}
NODEMCU_MODULE
(
HX711
,
"hx711"
,
hx711_map
,
luaopen_hx711
);
app/modules/i2c.c
View file @
1462d00e
// Module for interfacing with the I2C interface
// Module for interfacing with the I2C interface
//#include "lua.h"
#include "module.h"
#include "lualib.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "platform.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
// Lua: speed = i2c.setup( id, sda, scl, speed )
// Lua: speed = i2c.setup( id, sda, scl, speed )
static
int
i2c_setup
(
lua_State
*
L
)
static
int
i2c_setup
(
lua_State
*
L
)
...
@@ -143,39 +140,18 @@ static int i2c_read( lua_State *L )
...
@@ -143,39 +140,18 @@ static int i2c_read( lua_State *L )
}
}
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
i2c_map
[]
=
{
#include "lrodefs.h"
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
i2c_setup
)
},
const
LUA_REG_TYPE
i2c_map
[]
=
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
i2c_start
)
},
{
{
LSTRKEY
(
"stop"
),
LFUNCVAL
(
i2c_stop
)
},
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
i2c_setup
)
},
{
LSTRKEY
(
"address"
),
LFUNCVAL
(
i2c_address
)
},
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
i2c_start
)
},
{
LSTRKEY
(
"write"
),
LFUNCVAL
(
i2c_write
)
},
{
LSTRKEY
(
"stop"
),
LFUNCVAL
(
i2c_stop
)
},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
i2c_read
)
},
{
LSTRKEY
(
"address"
),
LFUNCVAL
(
i2c_address
)
},
//{ LSTRKEY( "FAST" ), LNUMVAL( PLATFORM_I2C_SPEED_FAST ) },
{
LSTRKEY
(
"write"
),
LFUNCVAL
(
i2c_write
)
},
{
LSTRKEY
(
"SLOW"
),
LNUMVAL
(
PLATFORM_I2C_SPEED_SLOW
)
},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
i2c_read
)
},
#if LUA_OPTIMIZE_MEMORY > 0
// { LSTRKEY( "FAST" ), LNUMVAL( PLATFORM_I2C_SPEED_FAST ) },
{
LSTRKEY
(
"SLOW"
),
LNUMVAL
(
PLATFORM_I2C_SPEED_SLOW
)
},
{
LSTRKEY
(
"TRANSMITTER"
),
LNUMVAL
(
PLATFORM_I2C_DIRECTION_TRANSMITTER
)
},
{
LSTRKEY
(
"TRANSMITTER"
),
LNUMVAL
(
PLATFORM_I2C_DIRECTION_TRANSMITTER
)
},
{
LSTRKEY
(
"RECEIVER"
),
LNUMVAL
(
PLATFORM_I2C_DIRECTION_RECEIVER
)
},
{
LSTRKEY
(
"RECEIVER"
),
LNUMVAL
(
PLATFORM_I2C_DIRECTION_RECEIVER
)
},
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_i2c
(
lua_State
*
L
)
NODEMCU_MODULE
(
I2C
,
"i2c"
,
i2c_map
,
NULL
);
{
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
luaL_register
(
L
,
AUXLIB_I2C
,
i2c_map
);
// Add the stop bits and parity constants (for i2c.setup)
// MOD_REG_NUMBER( L, "FAST", PLATFORM_I2C_SPEED_FAST );
MOD_REG_NUMBER
(
L
,
"SLOW"
,
PLATFORM_I2C_SPEED_SLOW
);
MOD_REG_NUMBER
(
L
,
"TRANSMITTER"
,
PLATFORM_I2C_DIRECTION_TRANSMITTER
);
MOD_REG_NUMBER
(
L
,
"RECEIVER"
,
PLATFORM_I2C_DIRECTION_RECEIVER
);
return
1
;
#endif // #if LUA_OPTIMIZE_MEMORY > 0
}
app/modules/linit.c
View file @
1462d00e
...
@@ -13,124 +13,61 @@
...
@@ -13,124 +13,61 @@
#include "lualib.h"
#include "lualib.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "lrotable.h"
#include "luaconf.h"
#include "luaconf.h"
#include "module.h"
#include "user_modules.h"
#if defined(LUA_USE_MODULES)
BUILTIN_LIB_INIT
(
BASE
,
""
,
luaopen_base
);
#include "modules.h"
BUILTIN_LIB_INIT
(
LOADLIB
,
LUA_LOADLIBNAME
,
luaopen_package
);
#endif
#if defined(LUA_MODULES_ROM)
#undef _ROM
#define _ROM( name, openf, table ) extern int openf(lua_State *);
LUA_MODULES_ROM
#endif
static
const
luaL_Reg
lualibs
[]
=
{
{
""
,
luaopen_base
},
{
LUA_LOADLIBNAME
,
luaopen_package
},
#if defined(LUA_USE_BUILTIN_IO)
#if defined(LUA_USE_BUILTIN_IO)
{
LUA_IOLIBNAME
,
luaopen_io
},
BUILTIN_LIB_INIT
(
IO
,
LUA_IOLIBNAME
,
luaopen_io
);
#endif
#endif
#if defined(LUA_USE_BUILTIN_STRING)
#if defined (LUA_USE_BUILTIN_STRING)
{
LUA_STRLIBNAME
,
luaopen_string
},
#endif
#if LUA_OPTIMIZE_MEMORY == 0
#if defined(LUA_USE_BUILTIN_MATH)
{
LUA_MATHLIBNAME
,
luaopen_math
},
#endif
#if defined(LUA_USE_BUILTIN_TABLE)
{
LUA_TABLIBNAME
,
luaopen_table
},
#endif
#if defined(LUA_USE_BUILTIN_DEBUG) || defined(LUA_USE_BUILTIN_DEBUG_MINIMAL)
{
LUA_DBLIBNAME
,
luaopen_debug
},
#endif
#endif
#if defined(LUA_MODULES_ROM)
#undef _ROM
#define _ROM( name, openf, table ) { name, openf },
LUA_MODULES_ROM
#endif
{
NULL
,
NULL
}
};
#if defined(LUA_USE_BUILTIN_STRING)
extern
const
luaR_entry
strlib
[];
extern
const
luaR_entry
strlib
[];
#endif
BUILTIN_LIB_INIT
(
STRING
,
LUA_STRLIBNAME
,
luaopen_string
);
BUILTIN_LIB
(
STRING
,
LUA_STRLIBNAME
,
strlib
);
#if defined(LUA_USE_BUILTIN_OS)
extern
const
luaR_entry
syslib
[];
#endif
#endif
#if defined(LUA_USE_BUILTIN_TABLE)
#if defined(LUA_USE_BUILTIN_TABLE)
extern
const
luaR_entry
tab_funcs
[];
extern
const
luaR_entry
tab_funcs
[];
BUILTIN_LIB_INIT
(
TABLE
,
LUA_TABLIBNAME
,
luaopen_table
);
BUILTIN_LIB
(
TABLE
,
LUA_TABLIBNAME
,
tab_funcs
);
#endif
#endif
#if defined(LUA_USE_BUILTIN_DEBUG) || defined(LUA_USE_BUILTIN_DEBUG_MINIMAL)
#if defined(LUA_USE_BUILTIN_DEBUG) || defined(LUA_USE_BUILTIN_DEBUG_MINIMAL)
extern
const
luaR_entry
dblib
[];
extern
const
luaR_entry
dblib
[];
BUILTIN_LIB_INIT
(
DBG
,
LUA_DBLIBNAME
,
luaopen_debug
);
BUILTIN_LIB
(
DBG
,
LUA_DBLIBNAME
,
dblib
);
#endif
#if defined(LUA_USE_BUILTIN_OS)
extern
const
luaR_entry
syslib
[];
BUILTIN_LIB
(
OS
,
LUA_OSLIBNAME
,
syslib
);
#endif
#endif
#if defined(LUA_USE_BUILTIN_COROUTINE)
#if defined(LUA_USE_BUILTIN_COROUTINE)
extern
const
luaR_entry
co_funcs
[];
extern
const
luaR_entry
co_funcs
[];
BUILTIN_LIB
(
CO
,
LUA_COLIBNAME
,
co_funcs
);
#endif
#endif
#if defined(LUA_USE_BUILTIN_MATH)
#if defined(LUA_USE_BUILTIN_MATH)
extern
const
luaR_entry
math_map
[];
extern
const
luaR_entry
math_map
[];
BUILTIN_LIB
(
MATH
,
LUA_MATHLIBNAME
,
math_map
);
#endif
#endif
#if defined(LUA_MODULES_ROM) && LUA_OPTIMIZE_MEMORY == 2
extern
const
luaL_Reg
lua_libs
[];
#undef _ROM
#define _ROM( name, openf, table ) extern const luaR_entry table[];
void
luaL_openlibs
(
lua_State
*
L
)
{
LUA_MODULES_ROM
const
luaL_Reg
*
lib
=
lua_libs
;
#endif
for
(;
lib
->
name
;
lib
++
)
{
const
luaR_table
lua_rotable
[]
=
if
(
lib
->
func
)
{
{
#if LUA_OPTIMIZE_MEMORY > 0
lua_pushcfunction
(
L
,
lib
->
func
);
#if defined(LUA_USE_BUILTIN_STRING)
lua_pushstring
(
L
,
lib
->
name
);
{
LUA_STRLIBNAME
,
strlib
},
lua_call
(
L
,
1
,
0
);
#endif
}
#if defined(LUA_USE_BUILTIN_TABLE)
{
LUA_TABLIBNAME
,
tab_funcs
},
#endif
#if defined(LUA_USE_BUILTIN_DEBUG) || defined(LUA_USE_BUILTIN_DEBUG_MINIMAL)
{
LUA_DBLIBNAME
,
dblib
},
#endif
#if defined(LUA_USE_BUILTIN_COROUTINE)
{
LUA_COLIBNAME
,
co_funcs
},
#endif
#if defined(LUA_USE_BUILTIN_MATH)
{
LUA_MATHLIBNAME
,
math_map
},
#endif
#if defined(LUA_USE_BUILTIN_OS)
{
LUA_OSLIBNAME
,
syslib
},
#endif
#if defined(LUA_MODULES_ROM) && LUA_OPTIMIZE_MEMORY == 2
#undef _ROM
#define _ROM( name, openf, table ) { name, table },
LUA_MODULES_ROM
#endif
#endif
{
NULL
,
NULL
}
};
LUALIB_API
void
luaL_openlibs
(
lua_State
*
L
)
{
const
luaL_Reg
*
lib
=
lualibs
;
for
(;
lib
->
func
;
lib
++
)
{
lua_pushcfunction
(
L
,
lib
->
func
);
lua_pushstring
(
L
,
lib
->
name
);
lua_call
(
L
,
1
,
0
);
}
}
}
}
app/modules/modules.h
deleted
100644 → 0
View file @
4708b2ac
/**
* External modules library
*/
#ifndef __MODULES_H__
#define __MODULES_H__
#if defined(LUA_USE_MODULES_GPIO)
#define MODULES_GPIO "gpio"
#define ROM_MODULES_GPIO \
_ROM(MODULES_GPIO, luaopen_gpio, gpio_map)
#else
#define ROM_MODULES_GPIO
#endif
#if defined(LUA_USE_MODULES_PWM)
#define MODULES_PWM "pwm"
#define ROM_MODULES_PWM \
_ROM(MODULES_PWM, luaopen_pwm, pwm_map)
#else
#define ROM_MODULES_PWM
#endif
#if defined(LUA_USE_MODULES_WIFI)
#define MODULES_WIFI "wifi"
#define ROM_MODULES_WIFI \
_ROM(MODULES_WIFI, luaopen_wifi, wifi_map)
#else
#define ROM_MODULES_WIFI
#endif
#if defined(LUA_USE_MODULES_NET)
#define MODULES_NET "net"
#define ROM_MODULES_NET \
_ROM(MODULES_NET, luaopen_net, net_map)
#else
#define ROM_MODULES_NET
#endif
#if defined(LUA_USE_MODULES_COAP)
#define MODULES_COAP "coap"
#define ROM_MODULES_COAP \
_ROM(MODULES_COAP, luaopen_coap, coap_map)
#else
#define ROM_MODULES_COAP
#endif
#if defined(LUA_USE_MODULES_MQTT)
#define MODULES_MQTT "mqtt"
#define ROM_MODULES_MQTT \
_ROM(MODULES_MQTT, luaopen_mqtt, mqtt_map)
#else
#define ROM_MODULES_MQTT
#endif
#if defined(LUA_USE_MODULES_U8G)
#define MODULES_U8G "u8g"
#define ROM_MODULES_U8G \
_ROM(MODULES_U8G, luaopen_u8g, lu8g_map)
#else
#define ROM_MODULES_U8G
#endif
#if defined(LUA_USE_MODULES_UCG)
#define MODULES_UCG "ucg"
#define ROM_MODULES_UCG \
_ROM(MODULES_UCG, luaopen_ucg, lucg_map)
#else
#define ROM_MODULES_UCG
#endif
#if defined(LUA_USE_MODULES_I2C)
#define MODULES_I2C "i2c"
#define ROM_MODULES_I2C \
_ROM(MODULES_I2C, luaopen_i2c, i2c_map)
#else
#define ROM_MODULES_I2C
#endif
#if defined(LUA_USE_MODULES_SPI)
#define MODULES_SPI "spi"
#define ROM_MODULES_SPI \
_ROM(MODULES_SPI, luaopen_spi, spi_map)
#else
#define ROM_MODULES_SPI
#endif
#if defined(LUA_USE_MODULES_TMR)
#define MODULES_TMR "tmr"
#define ROM_MODULES_TMR \
_ROM(MODULES_TMR, luaopen_tmr, tmr_map)
#else
#define ROM_MODULES_TMR
#endif
#if defined(LUA_USE_MODULES_NODE)
#define MODULES_NODE "node"
#define ROM_MODULES_NODE \
_ROM(MODULES_NODE, luaopen_node, node_map)
#else
#define ROM_MODULES_NODE
#endif
#if defined(LUA_USE_MODULES_FILE)
#define MODULES_FILE "file"
#define ROM_MODULES_FILE \
_ROM(MODULES_FILE, luaopen_file, file_map)
#else
#define ROM_MODULES_FILE
#endif
#if defined(LUA_USE_MODULES_ADC)
#define MODULES_ADC "adc"
#define ROM_MODULES_ADC \
_ROM(MODULES_ADC, luaopen_adc, adc_map)
#else
#define ROM_MODULES_ADC
#endif
#if defined(LUA_USE_MODULES_UART)
#define MODULES_UART "uart"
#define ROM_MODULES_UART \
_ROM(MODULES_UART, luaopen_uart, uart_map)
#else
#define ROM_MODULES_UART
#endif
#if defined(LUA_USE_MODULES_OW)
#define MODULES_OW "ow"
#define ROM_MODULES_OW \
_ROM(MODULES_OW, luaopen_ow, ow_map)
#else
#define ROM_MODULES_OW
#endif
#if defined(LUA_USE_MODULES_BIT)
#define MODULES_BIT "bit"
#define ROM_MODULES_BIT \
_ROM(MODULES_BIT, luaopen_bit, bit_map)
#else
#define ROM_MODULES_BIT
#endif
#if defined(LUA_USE_MODULES_WS2801)
#define MODULES_WS2801 "ws2801"
#define ROM_MODULES_WS2801 \
_ROM(MODULES_WS2801, luaopen_ws2801, ws2801_map)
#else
#define ROM_MODULES_WS2801
#endif
#if defined(LUA_USE_MODULES_WS2812)
#define MODULES_WS2812 "ws2812"
#define ROM_MODULES_WS2812 \
_ROM(MODULES_WS2812, luaopen_ws2812, ws2812_map)
#else
#define ROM_MODULES_WS2812
#endif
#if defined(LUA_USE_MODULES_ENDUSER_SETUP)
#define MODULES_ENDUSER_SETUP "enduser_setup"
#define ROM_MODULES_ENDUSER_SETUP \
_ROM(MODULES_ENDUSER_SETUP, luaopen_enduser_setup, enduser_setup_map)
#else
#define ROM_MODULES_ENDUSER_SETUP
#endif
#if defined(LUA_USE_MODULES_CJSON)
#define MODULES_CJSON "cjson"
#define ROM_MODULES_CJSON \
_ROM(MODULES_CJSON, luaopen_cjson, cjson_map)
#else
#define ROM_MODULES_CJSON
#endif
#if defined(LUA_USE_MODULES_CRYPTO)
#define MODULES_CRYPTO "crypto"
#define ROM_MODULES_CRYPTO \
_ROM(MODULES_CRYPTO, luaopen_crypto, crypto_map)
#else
#define ROM_MODULES_CRYPTO
#endif
#if defined(LUA_USE_MODULES_RC)
#define MODULES_RC "rc"
#define ROM_MODULES_RC \
_ROM(MODULES_RC, luaopen_rc, rc_map)
#else
#define ROM_MODULES_RC
#endif
#if defined(LUA_USE_MODULES_DHT)
#define MODULES_DHT "dht"
#define ROM_MODULES_DHT \
_ROM(MODULES_DHT, luaopen_dht, dht_map)
#else
#define ROM_MODULES_DHT
#endif
#if defined(LUA_USE_MODULES_RTCMEM)
#define MODULES_RTCMEM "rtcmem"
#define ROM_MODULES_RTCMEM \
_ROM(MODULES_RTCMEM, luaopen_rtcmem, rtcmem_map)
#else
#define ROM_MODULES_RTCMEM
#endif
#if defined(LUA_USE_MODULES_RTCTIME)
#define MODULES_RTCTIME "rtctime"
#define ROM_MODULES_RTCTIME \
_ROM(MODULES_RTCTIME, luaopen_rtctime, rtctime_map)
#else
#define ROM_MODULES_RTCTIME
#endif
#if defined(LUA_USE_MODULES_RTCFIFO)
#define MODULES_RTCFIFO "rtcfifo"
#define ROM_MODULES_RTCFIFO \
_ROM(MODULES_RTCFIFO, luaopen_rtcfifo, rtcfifo_map)
#else
#define ROM_MODULES_RTCFIFO
#endif
#if defined(LUA_USE_MODULES_SNTP)
#define MODULES_SNTP "sntp"
#define ROM_MODULES_SNTP \
_ROM(MODULES_SNTP, luaopen_sntp, sntp_map)
#else
#define ROM_MODULES_SNTP
#endif
#if defined(LUA_USE_MODULES_BMP085)
#define MODULES_BMP085 "bmp085"
#define ROM_MODULES_BMP085 \
_ROM(MODULES_BMP085, luaopen_bmp085, bmp085_map)
#else
#define ROM_MODULES_BMP085
#endif
#if defined(LUA_USE_MODULES_TSL2561)
#define MODULES_TSL2561 "tsl2561"
#define ROM_MODULES_TSL2561 \
_ROM(MODULES_TSL2561, luaopen_tsl2561, tsl2561_map)
#else
#define ROM_MODULES_TSL2561
#endif
#if defined(LUA_USE_MODULES_HX711)
#define MODULES_HX711 "hx711"
#define ROM_MODULES_HX711 \
_ROM(MODULES_HX711, luaopen_hx711, hx711_map)
#else
#define ROM_MODULES_HX711
#endif
#define LUA_MODULES_ROM \
ROM_MODULES_GPIO \
ROM_MODULES_PWM \
ROM_MODULES_WIFI \
ROM_MODULES_COAP \
ROM_MODULES_MQTT \
ROM_MODULES_U8G \
ROM_MODULES_UCG \
ROM_MODULES_I2C \
ROM_MODULES_SPI \
ROM_MODULES_TMR \
ROM_MODULES_NODE \
ROM_MODULES_FILE \
ROM_MODULES_NET \
ROM_MODULES_ADC \
ROM_MODULES_UART \
ROM_MODULES_OW \
ROM_MODULES_BIT \
ROM_MODULES_ENDUSER_SETUP \
ROM_MODULES_WS2801 \
ROM_MODULES_WS2812 \
ROM_MODULES_CJSON \
ROM_MODULES_CRYPTO \
ROM_MODULES_RC \
ROM_MODULES_DHT \
ROM_MODULES_RTCMEM \
ROM_MODULES_RTCTIME \
ROM_MODULES_RTCFIFO \
ROM_MODULES_SNTP \
ROM_MODULES_BMP085 \
ROM_MODULES_TSL2561 \
ROM_MODULES_HX711
#endif
app/modules/mqtt.c
View file @
1462d00e
// Module for mqtt
// Module for mqtt
//#include "lua.h"
#include "module.h"
#include "lualib.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "platform.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_string.h"
#include "c_string.h"
#include "c_stdlib.h"
#include "c_stdlib.h"
...
@@ -1392,59 +1389,28 @@ static int mqtt_socket_lwt( lua_State* L )
...
@@ -1392,59 +1389,28 @@ static int mqtt_socket_lwt( lua_State* L )
}
}
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
mqtt_socket_map
[]
=
{
#include "lrodefs.h"
{
LSTRKEY
(
"connect"
),
LFUNCVAL
(
mqtt_socket_connect
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
mqtt_socket_close
)
},
static
const
LUA_REG_TYPE
mqtt_socket_map
[]
=
{
LSTRKEY
(
"publish"
),
LFUNCVAL
(
mqtt_socket_publish
)
},
{
{
LSTRKEY
(
"subscribe"
),
LFUNCVAL
(
mqtt_socket_subscribe
)
},
{
LSTRKEY
(
"connect"
),
LFUNCVAL
(
mqtt_socket_connect
)
},
{
LSTRKEY
(
"lwt"
),
LFUNCVAL
(
mqtt_socket_lwt
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
mqtt_socket_close
)
},
{
LSTRKEY
(
"on"
),
LFUNCVAL
(
mqtt_socket_on
)
},
{
LSTRKEY
(
"publish"
),
LFUNCVAL
(
mqtt_socket_publish
)
},
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
mqtt_delete
)
},
{
LSTRKEY
(
"subscribe"
),
LFUNCVAL
(
mqtt_socket_subscribe
)
},
{
LSTRKEY
(
"__index"
),
LROVAL
(
mqtt_socket_map
)
},
{
LSTRKEY
(
"lwt"
),
LFUNCVAL
(
mqtt_socket_lwt
)
},
{
LSTRKEY
(
"on"
),
LFUNCVAL
(
mqtt_socket_on
)
},
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
mqtt_delete
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"__index"
),
LROVAL
(
mqtt_socket_map
)
},
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
const
LUA_REG_TYPE
mqtt_map
[]
=
static
const
LUA_REG_TYPE
mqtt_map
[]
=
{
{
{
LSTRKEY
(
"Client"
),
LFUNCVAL
(
mqtt_socket_client
)
},
{
LSTRKEY
(
"Client"
),
LFUNCVAL
(
mqtt_socket_client
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"__metatable"
),
LROVAL
(
mqtt_map
)
},
{
LSTRKEY
(
"__metatable"
),
LROVAL
(
mqtt_map
)
},
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_mqtt
(
lua_State
*
L
)
int
luaopen_mqtt
(
lua_State
*
L
)
{
{
#if LUA_OPTIMIZE_MEMORY > 0
luaL_rometatable
(
L
,
"mqtt.socket"
,
(
void
*
)
mqtt_socket_map
);
// create metatable for mqtt.socket
luaL_rometatable
(
L
,
"mqtt.socket"
,
(
void
*
)
mqtt_socket_map
);
// create metatable for mqtt.socket
return
0
;
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
int
n
;
luaL_register
(
L
,
AUXLIB_MQTT
,
mqtt_map
);
// Set it as its own metatable
lua_pushvalue
(
L
,
-
1
);
lua_setmetatable
(
L
,
-
2
);
// Module constants
// MOD_REG_NUMBER( L, "TCP", TCP );
// create metatable
luaL_newmetatable
(
L
,
"mqtt.socket"
);
// metatable.__index = metatable
lua_pushliteral
(
L
,
"__index"
);
lua_pushvalue
(
L
,
-
2
);
lua_rawset
(
L
,
-
3
);
// Setup the methods inside metatable
luaL_register
(
L
,
NULL
,
mqtt_socket_map
);
return
1
;
#endif // #if LUA_OPTIMIZE_MEMORY > 0
}
}
NODEMCU_MODULE
(
MQTT
,
"mqtt"
,
mqtt_map
,
luaopen_mqtt
);
app/modules/net.c
View file @
1462d00e
// Module for network
// Module for network
//#include "lua.h"
#include "module.h"
#include "lualib.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "platform.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_string.h"
#include "c_string.h"
#include "c_stdlib.h"
#include "c_stdlib.h"
...
@@ -1508,132 +1505,72 @@ static int expose_array(lua_State* L, char *array, unsigned short len) {
...
@@ -1508,132 +1505,72 @@ static int expose_array(lua_State* L, char *array, unsigned short len) {
#endif
#endif
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
net_server_map
[]
=
{
#include "lrodefs.h"
{
LSTRKEY
(
"listen"
),
LFUNCVAL
(
net_server_listen
)
},
static
const
LUA_REG_TYPE
net_server_map
[]
=
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
net_server_close
)
},
{
{
LSTRKEY
(
"on"
),
LFUNCVAL
(
net_udpserver_on
)
},
{
LSTRKEY
(
"listen"
),
LFUNCVAL
(
net_server_listen
)
},
{
LSTRKEY
(
"send"
),
LFUNCVAL
(
net_udpserver_send
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
net_server_close
)
},
//{ LSTRKEY( "delete" ), LFUNCVAL( net_server_delete ) },
{
LSTRKEY
(
"on"
),
LFUNCVAL
(
net_udpserver_on
)
},
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
net_server_delete
)
},
{
LSTRKEY
(
"send"
),
LFUNCVAL
(
net_udpserver_send
)
},
{
LSTRKEY
(
"__index"
),
LROVAL
(
net_server_map
)
},
// { LSTRKEY( "delete" ), LFUNCVAL ( net_server_delete ) },
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
net_server_delete
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"__index"
),
LROVAL
(
net_server_map
)
},
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
static
const
LUA_REG_TYPE
net_socket_map
[]
=
static
const
LUA_REG_TYPE
net_socket_map
[]
=
{
{
{
LSTRKEY
(
"connect"
),
LFUNCVAL
(
net_socket_connect
)
},
{
LSTRKEY
(
"connect"
),
LFUNCVAL
(
net_socket_connect
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
net_socket_close
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
net_socket_close
)
},
{
LSTRKEY
(
"on"
),
LFUNCVAL
(
net_socket_on
)
},
{
LSTRKEY
(
"on"
),
LFUNCVAL
(
net_socket_on
)
},
{
LSTRKEY
(
"send"
),
LFUNCVAL
(
net_socket_send
)
},
{
LSTRKEY
(
"send"
),
LFUNCVAL
(
net_socket_send
)
},
{
LSTRKEY
(
"hold"
),
LFUNCVAL
(
net_socket_hold
)
},
{
LSTRKEY
(
"hold"
),
LFUNCVAL
(
net_socket_hold
)
},
{
LSTRKEY
(
"unhold"
),
LFUNCVAL
(
net_socket_unhold
)
},
{
LSTRKEY
(
"unhold"
),
LFUNCVAL
(
net_socket_unhold
)
},
{
LSTRKEY
(
"dns"
),
LFUNCVAL
(
net_socket_dns
)
},
{
LSTRKEY
(
"dns"
),
LFUNCVAL
(
net_socket_dns
)
},
{
LSTRKEY
(
"getpeer"
),
LFUNCVAL
(
net_socket_getpeer
)
},
{
LSTRKEY
(
"getpeer"
),
LFUNCVAL
(
net_socket_getpeer
)
},
// { LSTRKEY( "delete" ), LFUNCVAL ( net_socket_delete ) },
//{ LSTRKEY( "delete" ), LFUNCVAL( net_socket_delete ) },
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
net_socket_delete
)
},
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
net_socket_delete
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"__index"
),
LROVAL
(
net_socket_map
)
},
{
LSTRKEY
(
"__index"
),
LROVAL
(
net_socket_map
)
},
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
#if 0
#if 0
static const LUA_REG_TYPE net_array_map[] =
static const LUA_REG_TYPE net_array_map[] = {
{
{ LSTRKEY( "__index" ), LFUNCVAL( net_array_index ) },
{ LSTRKEY( "__index" ), LFUNCVAL( net_array_index ) },
{ LSTRKEY( "__newindex" ), LFUNCVAL( net_array_newindex ) },
{ LSTRKEY( "__newindex" ), LFUNCVAL( net_array_newindex ) },
{ LNILKEY, LNILVAL }
{ LNILKEY, LNILVAL }
};
};
#endif
#endif
static
const
LUA_REG_TYPE
net_dns_map
[]
=
static
const
LUA_REG_TYPE
net_dns_map
[]
=
{
{
{
LSTRKEY
(
"setdnsserver"
),
LFUNCVAL
(
net_setdnsserver
)
},
{
LSTRKEY
(
"setdnsserver"
),
LFUNCVAL
(
net_setdnsserver
)
},
{
LSTRKEY
(
"getdnsserver"
),
LFUNCVAL
(
net_getdnsserver
)
},
{
LSTRKEY
(
"getdnsserver"
),
LFUNCVAL
(
net_getdnsserver
)
},
{
LSTRKEY
(
"resolve"
),
LFUNCVAL
(
net_dns_static
)
},
{
LSTRKEY
(
"resolve"
),
LFUNCVAL
(
net_dns_static
)
},
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
const
LUA_REG_TYPE
net_map
[]
=
static
const
LUA_REG_TYPE
net_map
[]
=
{
{
{
LSTRKEY
(
"createServer"
),
LFUNCVAL
(
net_createServer
)
},
{
LSTRKEY
(
"createServer"
),
LFUNCVAL
(
net_createServer
)
},
{
LSTRKEY
(
"createConnection"
),
LFUNCVAL
(
net_createConnection
)
},
{
LSTRKEY
(
"createConnection"
),
LFUNCVAL
(
net_createConnection
)
},
{
LSTRKEY
(
"multicastJoin"
),
LFUNCVAL
(
net_multicastJoin
)
},
{
LSTRKEY
(
"multicastJoin"
),
LFUNCVAL
(
net_multicastJoin
)
},
{
LSTRKEY
(
"multicastLeave"
),
LFUNCVAL
(
net_multicastLeave
)
},
{
LSTRKEY
(
"multicastLeave"
),
LFUNCVAL
(
net_multicastLeave
)
},
{
LSTRKEY
(
"dns"
),
LROVAL
(
net_dns_map
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"TCP"
),
LNUMVAL
(
TCP
)
},
{
LSTRKEY
(
"dns"
),
LROVAL
(
net_dns_map
)
},
{
LSTRKEY
(
"UDP"
),
LNUMVAL
(
UDP
)
},
{
LSTRKEY
(
"TCP"
),
LNUMVAL
(
TCP
)
},
{
LSTRKEY
(
"__metatable"
),
LROVAL
(
net_map
)
},
{
LSTRKEY
(
"UDP"
),
LNUMVAL
(
UDP
)
},
{
LSTRKEY
(
"__metatable"
),
LROVAL
(
net_map
)
},
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_net
(
lua_State
*
L
)
int
luaopen_net
(
lua_State
*
L
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
MAX_SOCKET
;
i
++
)
for
(
i
=
0
;
i
<
MAX_SOCKET
;
i
++
)
{
{
socket
[
i
]
=
LUA_NOREF
;
socket
[
i
]
=
LUA_NOREF
;
}
}
#if LUA_OPTIMIZE_MEMORY > 0
luaL_rometatable
(
L
,
"net.server"
,
(
void
*
)
net_server_map
);
// create metatable for net.server
luaL_rometatable
(
L
,
"net.server"
,
(
void
*
)
net_server_map
);
// create metatable for net.server
luaL_rometatable
(
L
,
"net.socket"
,
(
void
*
)
net_socket_map
);
// create metatable for net.socket
luaL_rometatable
(
L
,
"net.socket"
,
(
void
*
)
net_socket_map
);
// create metatable for net.socket
#if 0
#if 0
luaL_rometatable(L, "net.array", (void *)net_array_map); // create metatable for net.array
luaL_rometatable(L, "net.array", (void *)net_array_map);
// create metatable for net.array
#endif
#endif
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
int
n
;
luaL_register
(
L
,
AUXLIB_NET
,
net_map
);
// Set it as its own metatable
return
0
;
lua_pushvalue
(
L
,
-
1
);
lua_setmetatable
(
L
,
-
2
);
// Module constants
MOD_REG_NUMBER
(
L
,
"TCP"
,
TCP
);
MOD_REG_NUMBER
(
L
,
"UDP"
,
UDP
);
n
=
lua_gettop
(
L
);
// create metatable
luaL_newmetatable
(
L
,
"net.server"
);
// metatable.__index = metatable
lua_pushliteral
(
L
,
"__index"
);
lua_pushvalue
(
L
,
-
2
);
lua_rawset
(
L
,
-
3
);
// Setup the methods inside metatable
luaL_register
(
L
,
NULL
,
net_server_map
);
lua_settop
(
L
,
n
);
// create metatable
luaL_newmetatable
(
L
,
"net.socket"
);
// metatable.__index = metatable
lua_pushliteral
(
L
,
"__index"
);
lua_pushvalue
(
L
,
-
2
);
lua_rawset
(
L
,
-
3
);
// Setup the methods inside metatable
luaL_register
(
L
,
NULL
,
net_socket_map
);
#if 0
lua_settop(L, n);
// create metatable
luaL_newmetatable(L, "net.array");
// Setup the methods inside metatable
luaL_register( L, NULL, net_array_map );
#endif
lua_settop
(
L
,
n
);
lua_newtable
(
L
);
luaL_register
(
L
,
NULL
,
net_dns_map
);
lua_setfield
(
L
,
-
2
,
"dns"
);
return
1
;
#endif // #if LUA_OPTIMIZE_MEMORY > 0
}
}
NODEMCU_MODULE
(
NET
,
"net"
,
net_map
,
luaopen_net
);
app/modules/node.c
View file @
1462d00e
// Module for interfacing with system
// Module for interfacing with system
#include "
lua
.h"
#include "
module
.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "ldebug.h"
#include "ldebug.h"
...
@@ -15,14 +15,12 @@
...
@@ -15,14 +15,12 @@
#include "lundump.h"
#include "lundump.h"
#include "platform.h"
#include "platform.h"
#include "auxmods.h"
#include "lrodefs.h"
#include "lrotable.h"
#include "c_types.h"
#include "c_types.h"
#include "romfs.h"
#include "romfs.h"
#include "c_string.h"
#include "c_string.h"
#include "driver/uart.h"
#include "driver/uart.h"
//#include "spi_flash.h"
#include "user_interface.h"
#include "user_interface.h"
#include "flash_api.h"
#include "flash_api.h"
#include "flash_fs.h"
#include "flash_fs.h"
...
@@ -550,9 +548,7 @@ static int node_stripdebug (lua_State *L) {
...
@@ -550,9 +548,7 @@ static int node_stripdebug (lua_State *L) {
#endif
#endif
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
node_map
[]
=
#include "lrodefs.h"
const
LUA_REG_TYPE
node_map
[]
=
{
{
{
LSTRKEY
(
"restart"
),
LFUNCVAL
(
node_restart
)
},
{
LSTRKEY
(
"restart"
),
LFUNCVAL
(
node_restart
)
},
{
LSTRKEY
(
"dsleep"
),
LFUNCVAL
(
node_deepsleep
)
},
{
LSTRKEY
(
"dsleep"
),
LFUNCVAL
(
node_deepsleep
)
},
...
@@ -581,20 +577,7 @@ const LUA_REG_TYPE node_map[] =
...
@@ -581,20 +577,7 @@ const LUA_REG_TYPE node_map[] =
// Combined to dsleep(us, option)
// Combined to dsleep(us, option)
// { LSTRKEY( "dsleepsetoption" ), LFUNCVAL( node_deepsleep_setoption) },
// { LSTRKEY( "dsleepsetoption" ), LFUNCVAL( node_deepsleep_setoption) },
#if LUA_OPTIMIZE_MEMORY > 0
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_node
(
lua_State
*
L
)
NODEMCU_MODULE
(
NODE
,
"node"
,
node_map
,
NULL
);
{
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
luaL_register
(
L
,
AUXLIB_NODE
,
node_map
);
// Add constants
return
1
;
#endif // #if LUA_OPTIMIZE_MEMORY > 0
}
app/modules/ow.c
View file @
1462d00e
// Module for interfacing with the OneWire interface
// Module for interfacing with the OneWire interface
//#include "lua.h"
#include "module.h"
#include "lualib.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "auxmods.h"
#include "platform.h"
#include "lrotable.h"
#include "driver/onewire.h"
#include "driver/onewire.h"
// Lua: ow.setup( id )
// Lua: ow.setup( id )
...
@@ -282,46 +280,29 @@ static int ow_crc16( lua_State *L )
...
@@ -282,46 +280,29 @@ static int ow_crc16( lua_State *L )
#endif
#endif
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
ow_map
[]
=
{
#include "lrodefs.h"
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
ow_setup
)
},
const
LUA_REG_TYPE
ow_map
[]
=
{
LSTRKEY
(
"reset"
),
LFUNCVAL
(
ow_reset
)
},
{
{
LSTRKEY
(
"skip"
),
LFUNCVAL
(
ow_skip
)
},
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
ow_setup
)
},
{
LSTRKEY
(
"select"
),
LFUNCVAL
(
ow_select
)
},
{
LSTRKEY
(
"reset"
),
LFUNCVAL
(
ow_reset
)
},
{
LSTRKEY
(
"write"
),
LFUNCVAL
(
ow_write
)
},
{
LSTRKEY
(
"skip"
),
LFUNCVAL
(
ow_skip
)
},
{
LSTRKEY
(
"write_bytes"
),
LFUNCVAL
(
ow_write_bytes
)
},
{
LSTRKEY
(
"select"
),
LFUNCVAL
(
ow_select
)
},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
ow_read
)
},
{
LSTRKEY
(
"write"
),
LFUNCVAL
(
ow_write
)
},
{
LSTRKEY
(
"read_bytes"
),
LFUNCVAL
(
ow_read_bytes
)
},
{
LSTRKEY
(
"write_bytes"
),
LFUNCVAL
(
ow_write_bytes
)
},
{
LSTRKEY
(
"depower"
),
LFUNCVAL
(
ow_depower
)
},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
ow_read
)
},
{
LSTRKEY
(
"read_bytes"
),
LFUNCVAL
(
ow_read_bytes
)
},
{
LSTRKEY
(
"depower"
),
LFUNCVAL
(
ow_depower
)
},
#if ONEWIRE_SEARCH
#if ONEWIRE_SEARCH
{
LSTRKEY
(
"reset_search"
),
LFUNCVAL
(
ow_reset_search
)
},
{
LSTRKEY
(
"reset_search"
),
LFUNCVAL
(
ow_reset_search
)
},
{
LSTRKEY
(
"target_search"
),
LFUNCVAL
(
ow_target_search
)
},
{
LSTRKEY
(
"target_search"
),
LFUNCVAL
(
ow_target_search
)
},
{
LSTRKEY
(
"search"
),
LFUNCVAL
(
ow_search
)
},
{
LSTRKEY
(
"search"
),
LFUNCVAL
(
ow_search
)
},
#endif
#endif
#if ONEWIRE_CRC
#if ONEWIRE_CRC
{
LSTRKEY
(
"crc8"
),
LFUNCVAL
(
ow_crc8
)
},
{
LSTRKEY
(
"crc8"
),
LFUNCVAL
(
ow_crc8
)
},
#if ONEWIRE_CRC16
#if ONEWIRE_CRC16
{
LSTRKEY
(
"check_crc16"
),
LFUNCVAL
(
ow_check_crc16
)
},
{
LSTRKEY
(
"check_crc16"
),
LFUNCVAL
(
ow_check_crc16
)
},
{
LSTRKEY
(
"crc16"
),
LFUNCVAL
(
ow_crc16
)
},
{
LSTRKEY
(
"crc16"
),
LFUNCVAL
(
ow_crc16
)
},
#endif
#endif
#endif
#if LUA_OPTIMIZE_MEMORY > 0
#endif
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_ow
(
lua_State
*
L
)
NODEMCU_MODULE
(
OW
,
"ow"
,
ow_map
,
NULL
);
{
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
luaL_register
(
L
,
AUXLIB_OW
,
ow_map
);
// Add the constants
return
1
;
#endif // #if LUA_OPTIMIZE_MEMORY > 0
}
app/modules/pwm.c
View file @
1462d00e
// Module for interfacing with PWM
// Module for interfacing with PWM
//#include "lua.h"
#include "module.h"
#include "lualib.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "platform.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_types.h"
#include "c_types.h"
// Lua: realfrequency = setup( id, frequency, duty )
// Lua: realfrequency = setup( id, frequency, duty )
...
@@ -125,30 +121,16 @@ static int lpwm_getduty( lua_State* L )
...
@@ -125,30 +121,16 @@ static int lpwm_getduty( lua_State* L )
}
}
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
pwm_map
[]
=
{
#include "lrodefs.h"
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
lpwm_setup
)
},
const
LUA_REG_TYPE
pwm_map
[]
=
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
lpwm_close
)
},
{
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
lpwm_start
)
},
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
lpwm_setup
)
},
{
LSTRKEY
(
"stop"
),
LFUNCVAL
(
lpwm_stop
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
lpwm_close
)
},
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
lpwm_start
)
},
{
LSTRKEY
(
"stop"
),
LFUNCVAL
(
lpwm_stop
)
},
{
LSTRKEY
(
"setclock"
),
LFUNCVAL
(
lpwm_setclock
)
},
{
LSTRKEY
(
"setclock"
),
LFUNCVAL
(
lpwm_setclock
)
},
{
LSTRKEY
(
"getclock"
),
LFUNCVAL
(
lpwm_getclock
)
},
{
LSTRKEY
(
"getclock"
),
LFUNCVAL
(
lpwm_getclock
)
},
{
LSTRKEY
(
"setduty"
),
LFUNCVAL
(
lpwm_setduty
)
},
{
LSTRKEY
(
"setduty"
),
LFUNCVAL
(
lpwm_setduty
)
},
{
LSTRKEY
(
"getduty"
),
LFUNCVAL
(
lpwm_getduty
)
},
{
LSTRKEY
(
"getduty"
),
LFUNCVAL
(
lpwm_getduty
)
},
#if LUA_OPTIMIZE_MEMORY > 0
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_pwm
(
lua_State
*
L
)
NODEMCU_MODULE
(
PWM
,
"pwm"
,
pwm_map
,
NULL
);
{
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
luaL_register
(
L
,
AUXLIB_PWM
,
pwm_map
);
return
1
;
#endif // #if LUA_OPTIMIZE_MEMORY > 0
}
app/modules/rc.c
View file @
1462d00e
#include "
lualib
.h"
#include "
module
.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "platform.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
//#include "driver/easygpio.h"
//#include "driver/easygpio.h"
//static Ping_Data pingA;
//static Ping_Data pingA;
#define defPulseLen 185
#define defPulseLen 185
...
@@ -80,17 +78,16 @@ static int ICACHE_FLASH_ATTR rc_send(lua_State* L) {
...
@@ -80,17 +78,16 @@ static int ICACHE_FLASH_ATTR rc_send(lua_State* L) {
return
1
;
return
1
;
}
}
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
// Module function map
const
LUA_REG_TYPE
rc_map
[]
=
static
const
LUA_REG_TYPE
rc_map
[]
=
{
{
{
LSTRKEY
(
"send"
),
LFUNCVAL
(
rc_send
)},
{
LSTRKEY
(
"send"
),
LFUNCVAL
(
rc_send
)},
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
//LUALIB_API int luaopen_ultra(lua_State *L) {
int
luaopen_rc
(
lua_State
*
L
)
{
LUALIB_API
int
luaopen_rc
(
lua_State
*
L
)
{
// TODO: Make sure that the GPIO system is initialized
// TODO: Make sure that the GPIO system is initialized
LREGISTER
(
L
,
"rc"
,
rc_map
);
return
0
;
return
1
;
}
}
NODEMCU_MODULE
(
RC
,
"rc"
,
rc_map
,
luaopen_rc
);
app/modules/rtcfifo.c
View file @
1462d00e
// Module for RTC sample FIFO storage
// Module for RTC sample FIFO storage
#include "module.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "user_modules.h"
#include "user_modules.h"
#include "rtc/rtctime.h"
#include "rtc/rtctime.h"
...
@@ -164,10 +165,7 @@ static int rtcfifo_dsleep_until_sample (lua_State *L)
...
@@ -164,10 +165,7 @@ static int rtcfifo_dsleep_until_sample (lua_State *L)
#endif
#endif
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
rtcfifo_map
[]
=
{
#include "lrodefs.h"
const
LUA_REG_TYPE
rtcfifo_map
[]
=
{
{
LSTRKEY
(
"prepare"
),
LFUNCVAL
(
rtcfifo_prepare
)
},
{
LSTRKEY
(
"prepare"
),
LFUNCVAL
(
rtcfifo_prepare
)
},
{
LSTRKEY
(
"ready"
),
LFUNCVAL
(
rtcfifo_ready
)
},
{
LSTRKEY
(
"ready"
),
LFUNCVAL
(
rtcfifo_ready
)
},
{
LSTRKEY
(
"put"
),
LFUNCVAL
(
rtcfifo_put
)
},
{
LSTRKEY
(
"put"
),
LFUNCVAL
(
rtcfifo_put
)
},
...
@@ -181,12 +179,4 @@ const LUA_REG_TYPE rtcfifo_map[] =
...
@@ -181,12 +179,4 @@ const LUA_REG_TYPE rtcfifo_map[] =
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_rtcfifo
(
lua_State
*
L
)
NODEMCU_MODULE
(
RTCFIFO
,
"rtcfifo"
,
rtcfifo_map
,
NULL
);
{
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else
luaL_register
(
L
,
AUXLIB_RTCFIFO
,
rtcfifo_map
);
return
1
;
#endif
}
app/modules/rtcmem.c
View file @
1462d00e
// Module for RTC user memory access
// Module for RTC user memory access
#include "module.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "rtc/rtcaccess.h"
#include "rtc/rtcaccess.h"
...
@@ -40,21 +41,10 @@ static int rtcmem_write32 (lua_State *L)
...
@@ -40,21 +41,10 @@ static int rtcmem_write32 (lua_State *L)
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
rtcmem_map
[]
=
{
#include "lrodefs.h"
const
LUA_REG_TYPE
rtcmem_map
[]
=
{
{
LSTRKEY
(
"read32"
),
LFUNCVAL
(
rtcmem_read32
)
},
{
LSTRKEY
(
"read32"
),
LFUNCVAL
(
rtcmem_read32
)
},
{
LSTRKEY
(
"write32"
),
LFUNCVAL
(
rtcmem_write32
)
},
{
LSTRKEY
(
"write32"
),
LFUNCVAL
(
rtcmem_write32
)
},
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_rtcmem
(
lua_State
*
L
)
NODEMCU_MODULE
(
RTCMEM
,
"rtcmem"
,
rtcmem_map
,
NULL
);
{
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else
luaL_register
(
L
,
AUXLIB_RTCMEM
,
rtcmem_map
);
return
1
;
#endif
}
app/modules/rtctime.c
View file @
1462d00e
// Module for RTC time keeping
// Module for RTC time keeping
#include "module.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "rtc/rtctime_internal.h"
#include "rtc/rtctime_internal.h"
...
@@ -115,23 +116,12 @@ static int rtctime_dsleep_aligned (lua_State *L)
...
@@ -115,23 +116,12 @@ static int rtctime_dsleep_aligned (lua_State *L)
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
rtctime_map
[]
=
{
#include "lrodefs.h"
{
LSTRKEY
(
"set"
),
LFUNCVAL
(
rtctime_set
)
},
const
LUA_REG_TYPE
rtctime_map
[]
=
{
LSTRKEY
(
"get"
),
LFUNCVAL
(
rtctime_get
)
},
{
{
LSTRKEY
(
"dsleep"
),
LFUNCVAL
(
rtctime_dsleep
)
},
{
LSTRKEY
(
"set"
),
LFUNCVAL
(
rtctime_set
)
},
{
LSTRKEY
(
"get"
),
LFUNCVAL
(
rtctime_get
)
},
{
LSTRKEY
(
"dsleep"
),
LFUNCVAL
(
rtctime_dsleep
)
},
{
LSTRKEY
(
"dsleep_aligned"
),
LFUNCVAL
(
rtctime_dsleep_aligned
)
},
{
LSTRKEY
(
"dsleep_aligned"
),
LFUNCVAL
(
rtctime_dsleep_aligned
)
},
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_rtctime
(
lua_State
*
L
)
NODEMCU_MODULE
(
RTCTIME
,
"rtctime"
,
rtctime_map
,
NULL
);
{
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else
luaL_register
(
L
,
AUXLIB_RTCTIME
,
rtctime_map
);
return
1
;
#endif
}
app/modules/sntp.c
View file @
1462d00e
...
@@ -33,6 +33,7 @@
...
@@ -33,6 +33,7 @@
// Module for Simple Network Time Protocol (SNTP)
// Module for Simple Network Time Protocol (SNTP)
#include "module.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "os_type.h"
#include "os_type.h"
#include "osapi.h"
#include "osapi.h"
...
@@ -375,20 +376,9 @@ error:
...
@@ -375,20 +376,9 @@ error:
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
sntp_map
[]
=
{
#include "lrodefs.h"
const
LUA_REG_TYPE
sntp_map
[]
=
{
{
LSTRKEY
(
"sync"
),
LFUNCVAL
(
sntp_sync
)
},
{
LSTRKEY
(
"sync"
),
LFUNCVAL
(
sntp_sync
)
},
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_sntp
(
lua_State
*
L
)
NODEMCU_MODULE
(
SNTP
,
"sntp"
,
sntp_map
,
NULL
);
{
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else
luaL_register
(
L
,
AUXLIB_SNTP
,
sntp_map
);
return
1
;
#endif
}
app/modules/spi.c
View file @
1462d00e
// Module for interfacing with the SPI interface
// Module for interfacing with the SPI interface
//#include "lua.h"
#include "module.h"
#include "lualib.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "platform.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#define SPI_HALFDUPLEX 0
#define SPI_HALFDUPLEX 0
#define SPI_FULLDUPLEX 1
#define SPI_FULLDUPLEX 1
...
@@ -313,48 +310,23 @@ static int spi_transaction( lua_State *L )
...
@@ -313,48 +310,23 @@ static int spi_transaction( lua_State *L )
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
spi_map
[]
=
{
#include "lrodefs.h"
const
LUA_REG_TYPE
spi_map
[]
=
{
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
spi_setup
)
},
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
spi_setup
)
},
{
LSTRKEY
(
"send"
),
LFUNCVAL
(
spi_send_recv
)
},
{
LSTRKEY
(
"send"
),
LFUNCVAL
(
spi_send_recv
)
},
{
LSTRKEY
(
"recv"
),
LFUNCVAL
(
spi_recv
)
},
{
LSTRKEY
(
"recv"
),
LFUNCVAL
(
spi_recv
)
},
{
LSTRKEY
(
"set_mosi"
),
LFUNCVAL
(
spi_set_mosi
)
},
{
LSTRKEY
(
"set_mosi"
),
LFUNCVAL
(
spi_set_mosi
)
},
{
LSTRKEY
(
"get_miso"
),
LFUNCVAL
(
spi_get_miso
)
},
{
LSTRKEY
(
"get_miso"
),
LFUNCVAL
(
spi_get_miso
)
},
{
LSTRKEY
(
"transaction"
),
LFUNCVAL
(
spi_transaction
)
},
{
LSTRKEY
(
"transaction"
),
LFUNCVAL
(
spi_transaction
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"MASTER"
),
LNUMVAL
(
PLATFORM_SPI_MASTER
)
},
{
LSTRKEY
(
"MASTER"
),
LNUMVAL
(
PLATFORM_SPI_MASTER
)
},
{
LSTRKEY
(
"SLAVE"
),
LNUMVAL
(
PLATFORM_SPI_SLAVE
)
},
{
LSTRKEY
(
"SLAVE"
),
LNUMVAL
(
PLATFORM_SPI_SLAVE
)
},
{
LSTRKEY
(
"CPHA_LOW"
),
LNUMVAL
(
PLATFORM_SPI_CPHA_LOW
)
},
{
LSTRKEY
(
"CPHA_LOW"
),
LNUMVAL
(
PLATFORM_SPI_CPHA_LOW
)
},
{
LSTRKEY
(
"CPHA_HIGH"
),
LNUMVAL
(
PLATFORM_SPI_CPHA_HIGH
)
},
{
LSTRKEY
(
"CPHA_HIGH"
),
LNUMVAL
(
PLATFORM_SPI_CPHA_HIGH
)
},
{
LSTRKEY
(
"CPOL_LOW"
),
LNUMVAL
(
PLATFORM_SPI_CPOL_LOW
)
},
{
LSTRKEY
(
"CPOL_LOW"
),
LNUMVAL
(
PLATFORM_SPI_CPOL_LOW
)
},
{
LSTRKEY
(
"CPOL_HIGH"
),
LNUMVAL
(
PLATFORM_SPI_CPOL_HIGH
)
},
{
LSTRKEY
(
"CPOL_HIGH"
),
LNUMVAL
(
PLATFORM_SPI_CPOL_HIGH
)
},
{
LSTRKEY
(
"DATABITS_8"
),
LNUMVAL
(
8
)
},
{
LSTRKEY
(
"DATABITS_8"
),
LNUMVAL
(
8
)
},
{
LSTRKEY
(
"HALFDUPLEX"
),
LNUMVAL
(
SPI_HALFDUPLEX
)
},
{
LSTRKEY
(
"HALFDUPLEX"
),
LNUMVAL
(
SPI_HALFDUPLEX
)
},
{
LSTRKEY
(
"FULLDUPLEX"
),
LNUMVAL
(
SPI_FULLDUPLEX
)
},
{
LSTRKEY
(
"FULLDUPLEX"
),
LNUMVAL
(
SPI_FULLDUPLEX
)
},
#endif // #if LUA_OPTIMIZE_MEMORY > 0
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_spi
(
lua_State
*
L
)
NODEMCU_MODULE
(
SPI
,
"spi"
,
spi_map
,
NULL
);
{
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
luaL_register
(
L
,
AUXLIB_SPI
,
spi_map
);
// Add constants
MOD_REG_NUMBER
(
L
,
"MASTER"
,
PLATFORM_SPI_MASTER
);
MOD_REG_NUMBER
(
L
,
"SLAVE"
,
PLATFORM_SPI_SLAVE
);
MOD_REG_NUMBER
(
L
,
"CPHA_LOW"
,
PLATFORM_SPI_CPHA_LOW
);
MOD_REG_NUMBER
(
L
,
"CPHA_HIGH"
,
PLATFORM_SPI_CPHA_HIGH
);
MOD_REG_NUMBER
(
L
,
"CPOL_LOW"
,
PLATFORM_SPI_CPOL_LOW
);
MOD_REG_NUMBER
(
L
,
"CPOL_HIGH"
,
PLATFORM_SPI_CPOL_HIGH
);
MOD_REG_NUMBER
(
L
,
"DATABITS_8"
,
8
);
MOD_REG_NUMBER
(
L
,
"HALFDUPLEX"
,
SPI_HALFDUPLEX
);
MOD_REG_NUMBER
(
L
,
"FULLDUPLEX"
,
SPI_FULLDUPLEX
);
return
1
;
#endif // #if LUA_OPTIMIZE_MEMORY > 0
}
app/modules/tmr.c
View file @
1462d00e
...
@@ -48,14 +48,9 @@ tmr.softwd(int)
...
@@ -48,14 +48,9 @@ tmr.softwd(int)
the timer units are seconds
the timer units are seconds
*/
*/
#define MIN_OPT_LEVEL 2
#include "module.h"
#include "lualib.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "platform.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "lrodefs.h"
#include "c_types.h"
#include "c_types.h"
#define TIMER_MODE_OFF 3
#define TIMER_MODE_OFF 3
...
@@ -311,28 +306,26 @@ static int tmr_softwd( lua_State* L ){
...
@@ -311,28 +306,26 @@ static int tmr_softwd( lua_State* L ){
// Module function map
// Module function map
const
LUA_REG_TYPE
tmr_map
[]
=
{
static
const
LUA_REG_TYPE
tmr_map
[]
=
{
{
LSTRKEY
(
"delay"
),
LFUNCVAL
(
tmr_delay
)
},
{
LSTRKEY
(
"delay"
),
LFUNCVAL
(
tmr_delay
)
},
{
LSTRKEY
(
"now"
),
LFUNCVAL
(
tmr_now
)
},
{
LSTRKEY
(
"now"
),
LFUNCVAL
(
tmr_now
)
},
{
LSTRKEY
(
"wdclr"
),
LFUNCVAL
(
tmr_wdclr
)
},
{
LSTRKEY
(
"wdclr"
),
LFUNCVAL
(
tmr_wdclr
)
},
{
LSTRKEY
(
"softwd"
),
LFUNCVAL
(
tmr_softwd
)
},
{
LSTRKEY
(
"softwd"
),
LFUNCVAL
(
tmr_softwd
)
},
{
LSTRKEY
(
"time"
),
LFUNCVAL
(
tmr_time
)
},
{
LSTRKEY
(
"time"
),
LFUNCVAL
(
tmr_time
)
},
{
LSTRKEY
(
"register"
),
LFUNCVAL
(
tmr_register
)
},
{
LSTRKEY
(
"register"
),
LFUNCVAL
(
tmr_register
)
},
{
LSTRKEY
(
"alarm"
),
LFUNCVAL
(
tmr_alarm
)
},
{
LSTRKEY
(
"alarm"
),
LFUNCVAL
(
tmr_alarm
)
},
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
tmr_start
)
},
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
tmr_start
)
},
{
LSTRKEY
(
"stop"
),
LFUNCVAL
(
tmr_stop
)
},
{
LSTRKEY
(
"stop"
),
LFUNCVAL
(
tmr_stop
)
},
{
LSTRKEY
(
"unregister"
),
LFUNCVAL
(
tmr_unregister
)
},
{
LSTRKEY
(
"unregister"
),
LFUNCVAL
(
tmr_unregister
)
},
{
LSTRKEY
(
"state"
),
LFUNCVAL
(
tmr_state
)
},
{
LSTRKEY
(
"state"
),
LFUNCVAL
(
tmr_state
)
},
{
LSTRKEY
(
"interval"
),
LFUNCVAL
(
tmr_interval
)
},
{
LSTRKEY
(
"interval"
),
LFUNCVAL
(
tmr_interval
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"ALARM_SINGLE"
),
LNUMVAL
(
TIMER_MODE_SINGLE
)
},
{
LSTRKEY
(
"ALARM_SINGLE"
),
LNUMVAL
(
TIMER_MODE_SINGLE
)
},
{
LSTRKEY
(
"ALARM_SEMI"
),
LNUMVAL
(
TIMER_MODE_SEMI
)
},
{
LSTRKEY
(
"ALARM_SEMI"
),
LNUMVAL
(
TIMER_MODE_SEMI
)
},
{
LSTRKEY
(
"ALARM_AUTO"
),
LNUMVAL
(
TIMER_MODE_AUTO
)
},
{
LSTRKEY
(
"ALARM_AUTO"
),
LNUMVAL
(
TIMER_MODE_AUTO
)
},
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_tmr
(
lua_State
*
L
){
int
luaopen_tmr
(
lua_State
*
L
){
int
i
;
int
i
;
for
(
i
=
0
;
i
<
NUM_TMR
;
i
++
){
for
(
i
=
0
;
i
<
NUM_TMR
;
i
++
){
alarm_timers
[
i
].
lua_ref
=
LUA_NOREF
;
alarm_timers
[
i
].
lua_ref
=
LUA_NOREF
;
...
@@ -343,17 +336,7 @@ LUALIB_API int luaopen_tmr( lua_State *L ){
...
@@ -343,17 +336,7 @@ LUALIB_API int luaopen_tmr( lua_State *L ){
ets_timer_disarm
(
&
rtc_timer
);
ets_timer_disarm
(
&
rtc_timer
);
ets_timer_setfn
(
&
rtc_timer
,
rtc_callback
,
NULL
);
ets_timer_setfn
(
&
rtc_timer
,
rtc_callback
,
NULL
);
ets_timer_arm_new
(
&
rtc_timer
,
1000
,
1
,
1
);
ets_timer_arm_new
(
&
rtc_timer
,
1000
,
1
,
1
);
return
0
;
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else
luaL_register
(
L
,
AUXLIB_TMR
,
tmr_map
);
lua_pushvalue
(
L
,
-
1
);
lua_setmetatable
(
L
,
-
2
);
MOD_REG_NUMBER
(
L
,
"ALARM_SINGLE"
,
TIMER_MODE_SINGLE
);
MOD_REG_NUMBER
(
L
,
"ALARM_SEMI"
,
TIMER_MODE_SEMI
);
MOD_REG_NUMBER
(
L
,
"ALARM_AUTO"
,
TIMER_MODE_AUTO
);
return
1
;
#endif
}
}
NODEMCU_MODULE
(
TMR
,
"tmr"
,
tmr_map
,
luaopen_tmr
);
app/modules/tsl2561.c
View file @
1462d00e
...
@@ -4,11 +4,9 @@
...
@@ -4,11 +4,9 @@
* Created on: Aug 21, 2015
* Created on: Aug 21, 2015
* Author: Michael Lucas (Aeprox @github)
* Author: Michael Lucas (Aeprox @github)
*/
*/
#include "
lualib
.h"
#include "
module
.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "platform.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "../tsl2561/tsl2561.h"
#include "../tsl2561/tsl2561.h"
static
uint16_t
ch0
;
static
uint16_t
ch0
;
...
@@ -102,38 +100,28 @@ static int ICACHE_FLASH_ATTR tsl2561_lua_getchannels(lua_State* L) {
...
@@ -102,38 +100,28 @@ static int ICACHE_FLASH_ATTR tsl2561_lua_getchannels(lua_State* L) {
return
3
;
return
3
;
}
}
#define MIN_OPT_LEVEL 2
// Module function map
#include "lrodefs.h"
static
const
LUA_REG_TYPE
tsl2561_map
[]
=
{
const
LUA_REG_TYPE
tsl2561_map
[]
=
{
LSTRKEY
(
"settiming"
),
LFUNCVAL
(
tsl2561_lua_settiming
)},
{
{
LSTRKEY
(
"getlux"
),
LFUNCVAL
(
tsl2561_lua_calclux
)},
{
LSTRKEY
(
"settiming"
),
LFUNCVAL
(
tsl2561_lua_settiming
)},
{
LSTRKEY
(
"getrawchannels"
),
LFUNCVAL
(
tsl2561_lua_getchannels
)},
{
LSTRKEY
(
"getlux"
),
LFUNCVAL
(
tsl2561_lua_calclux
)},
{
LSTRKEY
(
"init"
),
LFUNCVAL
(
tsl2561_init
)},
{
LSTRKEY
(
"getrawchannels"
),
LFUNCVAL
(
tsl2561_lua_getchannels
)},
{
LSTRKEY
(
"TSL2561_OK"
),
LNUMVAL
(
TSL2561_ERROR_OK
)},
{
LSTRKEY
(
"init"
),
LFUNCVAL
(
tsl2561_init
)},
{
LSTRKEY
(
"TSL2561_OK"
),
LNUMVAL
(
TSL2561_ERROR_OK
)},
{
LSTRKEY
(
"TSL2561_ERROR_I2CINIT"
),
LNUMVAL
(
TSL2561_ERROR_I2CINIT
)},
{
LSTRKEY
(
"TSL2561_ERROR_I2CINIT"
),
LNUMVAL
(
TSL2561_ERROR_I2CINIT
)},
{
LSTRKEY
(
"TSL2561_ERROR_I2CBUSY"
),
LNUMVAL
(
TSL2561_ERROR_I2CBUSY
)},
{
LSTRKEY
(
"TSL2561_ERROR_I2CBUSY"
),
LNUMVAL
(
TSL2561_ERROR_I2CBUSY
)},
{
LSTRKEY
(
"TSL2561_ERROR_NOINIT"
),
LNUMVAL
(
TSL2561_ERROR_NOINIT
)},
{
LSTRKEY
(
"TSL2561_ERROR_NOINIT"
),
LNUMVAL
(
TSL2561_ERROR_NOINIT
)},
{
LSTRKEY
(
"TSL2561_ERROR_LAST"
),
LNUMVAL
(
TSL2561_ERROR_LAST
)},
{
LSTRKEY
(
"TSL2561_ERROR_LAST"
),
LNUMVAL
(
TSL2561_ERROR_LAST
)},
{
LSTRKEY
(
"INTEGRATIONTIME_13MS"
),
LNUMVAL
(
TSL2561_INTEGRATIONTIME_13MS
)},
{
LSTRKEY
(
"INTEGRATIONTIME_13MS"
),
LNUMVAL
(
TSL2561_INTEGRATIONTIME_13MS
)},
{
LSTRKEY
(
"INTEGRATIONTIME_101MS"
),
LNUMVAL
(
TSL2561_INTEGRATIONTIME_101MS
)},
{
LSTRKEY
(
"INTEGRATIONTIME_101MS"
),
LNUMVAL
(
TSL2561_INTEGRATIONTIME_101MS
)},
{
LSTRKEY
(
"INTEGRATIONTIME_402MS"
),
LNUMVAL
(
TSL2561_INTEGRATIONTIME_402MS
)},
{
LSTRKEY
(
"INTEGRATIONTIME_402MS"
),
LNUMVAL
(
TSL2561_INTEGRATIONTIME_402MS
)},
{
LSTRKEY
(
"GAIN_1X"
),
LNUMVAL
(
TSL2561_GAIN_1X
)},
{
LSTRKEY
(
"GAIN_1X"
),
LNUMVAL
(
TSL2561_GAIN_1X
)},
{
LSTRKEY
(
"GAIN_16X"
),
LNUMVAL
(
TSL2561_GAIN_16X
)},
{
LSTRKEY
(
"GAIN_16X"
),
LNUMVAL
(
TSL2561_GAIN_16X
)},
{
LSTRKEY
(
"PACKAGE_CS"
),
LNUMVAL
(
TSL2561_PACKAGE_CS
)},
{
LSTRKEY
(
"PACKAGE_CS"
),
LNUMVAL
(
TSL2561_PACKAGE_CS
)},
{
LSTRKEY
(
"PACKAGE_T_FN_CL"
),
LNUMVAL
(
TSL2561_PACKAGE_T_FN_CL
)},
{
LSTRKEY
(
"PACKAGE_T_FN_CL"
),
LNUMVAL
(
TSL2561_PACKAGE_T_FN_CL
)},
{
LSTRKEY
(
"ADDRESS_GND"
),
LNUMVAL
(
TSL2561_ADDRESS_GND
)},
{
LSTRKEY
(
"ADDRESS_FLOAT"
),
LNUMVAL
(
TSL2561_ADDRESS_FLOAT
)},
{
LSTRKEY
(
"ADDRESS_GND"
),
LNUMVAL
(
TSL2561_ADDRESS_GND
)},
{
LSTRKEY
(
"ADDRESS_VDD"
),
LNUMVAL
(
TSL2561_ADDRESS_VDD
)},
{
LSTRKEY
(
"ADDRESS_FLOAT"
),
LNUMVAL
(
TSL2561_ADDRESS_FLOAT
)},
{
LSTRKEY
(
"ADDRESS_VDD"
),
LNUMVAL
(
TSL2561_ADDRESS_VDD
)},
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_tsl2561
(
lua_State
*
L
)
{
NODEMCU_MODULE
(
TSL2561
,
"tsl2561"
,
tsl2561_map
,
NULL
);
LREGISTER
(
L
,
"tsl2561"
,
tsl2561_map
);
return
1
;
}
Prev
1
2
3
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