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
c8037568
Commit
c8037568
authored
Dec 28, 2015
by
Terry Ellison
Browse files
Merge pull request #883 from nodemcu/dev
Resync master to dev prior to upgrading Dev to SDK 1.5
parents
93421f27
a8359f1d
Changes
62
Show whitespace changes
Inline
Side-by-side
app/modules/bit.c
View file @
c8037568
...
...
@@ -5,13 +5,10 @@
// Modified by BogdanM for eLua
#include "module.h"
#include "c_limits.h"
//#include "lua.h"
#include "lauxlib.h"
#include "auxmods.h"
// #include "type.h"
#include "lrotable.h"
/* FIXME: Assume size_t is an unsigned lua_Integer */
typedef
size_t
lua_UInteger
;
...
...
@@ -122,9 +119,7 @@ static int bit_clear( lua_State* L )
return
1
;
}
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
bit_map
[]
=
{
static
const
LUA_REG_TYPE
bit_map
[]
=
{
{
LSTRKEY
(
"bnot"
),
LFUNCVAL
(
bit_bnot
)
},
{
LSTRKEY
(
"band"
),
LFUNCVAL
(
bit_band
)
},
{
LSTRKEY
(
"bor"
),
LFUNCVAL
(
bit_bor
)
},
...
...
@@ -140,6 +135,4 @@ const LUA_REG_TYPE bit_map[] = {
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_bit
(
lua_State
*
L
)
{
LREGISTER
(
L
,
"bit"
,
bit_map
);
}
NODEMCU_MODULE
(
BIT
,
"bit"
,
bit_map
,
NULL
);
app/modules/bmp085.c
View file @
c8037568
#include "
lualib
.h"
#include "
module
.h"
#include "lauxlib.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_stdlib.h"
#include "c_string.h"
...
...
@@ -185,10 +183,7 @@ static int ICACHE_FLASH_ATTR bmp085_lua_pressure(lua_State* L) {
return
1
;
}
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
bmp085_map
[]
=
{
static
const
LUA_REG_TYPE
bmp085_map
[]
=
{
{
LSTRKEY
(
"temperature"
),
LFUNCVAL
(
bmp085_lua_temperature
)},
{
LSTRKEY
(
"pressure"
),
LFUNCVAL
(
bmp085_lua_pressure
)},
{
LSTRKEY
(
"pressure_raw"
),
LFUNCVAL
(
bmp085_lua_pressure_raw
)},
...
...
@@ -196,8 +191,4 @@ const LUA_REG_TYPE bmp085_map[] =
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_bmp085
(
lua_State
*
L
)
{
LREGISTER
(
L
,
"bmp085"
,
bmp085_map
);
return
1
;
}
NODEMCU_MODULE
(
BMP085
,
"bmp085"
,
bmp085_map
,
NULL
);
app/modules/cjson.c
View file @
c8037568
...
...
@@ -37,10 +37,10 @@
*/
// #include <assert.h>
#include "module.h"
#include "c_string.h"
#include "c_math.h"
#include "c_limits.h"
#include "lua.h"
#include "lauxlib.h"
#include "flash_api.h"
...
...
@@ -1528,53 +1528,7 @@ static int json_protect_conversion(lua_State *l)
* errors are memory related */
return luaL_error(l, "Memory allocation error in CJSON protected call");
}
#endif
// Module function map
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
cjson_map
[]
=
{
{
LSTRKEY
(
"encode"
),
LFUNCVAL
(
json_encode
)
},
{
LSTRKEY
(
"decode"
),
LFUNCVAL
(
json_decode
)
},
// { LSTRKEY( "encode_sparse_array" ), LFUNCVAL( json_cfg_encode_sparse_array ) },
// { LSTRKEY( "encode_max_depth" ), LFUNCVAL( json_cfg_encode_max_depth ) },
// { LSTRKEY( "decode_max_depth" ), LFUNCVAL( json_cfg_decode_max_depth ) },
// { LSTRKEY( "encode_number_precision" ), LFUNCVAL( json_cfg_encode_number_precision ) },
// { LSTRKEY( "encode_keep_buffer" ), LFUNCVAL( json_cfg_encode_keep_buffer ) },
// { LSTRKEY( "encode_invalid_numbers" ), LFUNCVAL( json_cfg_encode_invalid_numbers ) },
// { LSTRKEY( "decode_invalid_numbers" ), LFUNCVAL( json_cfg_decode_invalid_numbers ) },
// { LSTRKEY( "new" ), LFUNCVAL( lua_cjson_new ) },
#if LUA_OPTIMIZE_MEMORY > 0
#endif
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_cjson
(
lua_State
*
L
)
{
cjson_mem_setlua
(
L
);
/* Initialise number conversions */
// fpconv_init(); // not needed for a specific cpu.
if
(
-
1
==
cfg_init
(
&
_cfg
)){
return
luaL_error
(
L
,
"BUG: Unable to init config for cjson"
);;
}
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
luaL_register
(
L
,
AUXLIB_CJSON
,
cjson_map
);
// Add constants
/* Set cjson.null */
lua_pushlightuserdata
(
l
,
NULL
);
lua_setfield
(
l
,
-
2
,
"null"
);
/* Return cjson table */
return
1
;
#endif // #if LUA_OPTIMIZE_MEMORY > 0
}
#if 0
/* Return cjson module table */
static int lua_cjson_new(lua_State *l)
{
...
...
@@ -1644,5 +1598,34 @@ int luaopen_cjson_safe(lua_State *l)
return 1;
}
#endif
// Module function map
static
const
LUA_REG_TYPE
cjson_map
[]
=
{
{
LSTRKEY
(
"encode"
),
LFUNCVAL
(
json_encode
)
},
{
LSTRKEY
(
"decode"
),
LFUNCVAL
(
json_decode
)
},
//{ LSTRKEY( "encode_sparse_array" ), LFUNCVAL( json_cfg_encode_sparse_array ) },
//{ LSTRKEY( "encode_max_depth" ), LFUNCVAL( json_cfg_encode_max_depth ) },
//{ LSTRKEY( "decode_max_depth" ), LFUNCVAL( json_cfg_decode_max_depth ) },
//{ LSTRKEY( "encode_number_precision" ), LFUNCVAL( json_cfg_encode_number_precision ) },
//{ LSTRKEY( "encode_keep_buffer" ), LFUNCVAL( json_cfg_encode_keep_buffer ) },
//{ LSTRKEY( "encode_invalid_numbers" ), LFUNCVAL( json_cfg_encode_invalid_numbers ) },
//{ LSTRKEY( "decode_invalid_numbers" ), LFUNCVAL( json_cfg_decode_invalid_numbers ) },
//{ LSTRKEY( "new" ), LFUNCVAL( lua_cjson_new ) },
{
LNILKEY
,
LNILVAL
}
};
int
luaopen_cjson
(
lua_State
*
L
)
{
cjson_mem_setlua
(
L
);
/* Initialise number conversions */
// fpconv_init(); // not needed for a specific cpu.
if
(
-
1
==
cfg_init
(
&
_cfg
)){
return
luaL_error
(
L
,
"BUG: Unable to init config for cjson"
);;
}
return
0
;
}
NODEMCU_MODULE
(
CJSON
,
"cjson"
,
cjson_map
,
luaopen_cjson
);
/* vi:ai et sw=4 ts=4:
*/
app/modules/coap.c
View file @
c8037568
// Module for coapwork
//#include "lua.h"
#include "lualib.h"
#include "module.h"
#include "lauxlib.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_string.h"
#include "c_stdlib.h"
...
...
@@ -561,39 +558,30 @@ static int coap_client_delete( lua_State* L )
}
// Module function map
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
static
const
LUA_REG_TYPE
coap_server_map
[]
=
{
{
LSTRKEY
(
"listen"
),
LFUNCVAL
(
coap_server_listen
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
coap_server_close
)
},
{
LSTRKEY
(
"var"
),
LFUNCVAL
(
coap_server_var
)
},
{
LSTRKEY
(
"func"
),
LFUNCVAL
(
coap_server_func
)
},
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
coap_server_delete
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"__index"
),
LROVAL
(
coap_server_map
)
},
#endif
static
const
LUA_REG_TYPE
coap_server_map
[]
=
{
{
LSTRKEY
(
"listen"
),
LFUNCVAL
(
coap_server_listen
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
coap_server_close
)
},
{
LSTRKEY
(
"var"
),
LFUNCVAL
(
coap_server_var
)
},
{
LSTRKEY
(
"func"
),
LFUNCVAL
(
coap_server_func
)
},
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
coap_server_delete
)
},
{
LSTRKEY
(
"__index"
),
LROVAL
(
coap_server_map
)
},
{
LNILKEY
,
LNILVAL
}
};
static
const
LUA_REG_TYPE
coap_client_map
[]
=
{
{
LSTRKEY
(
"get"
),
LFUNCVAL
(
coap_client_get
)
},
{
LSTRKEY
(
"post"
),
LFUNCVAL
(
coap_client_post
)
},
{
LSTRKEY
(
"put"
),
LFUNCVAL
(
coap_client_put
)
},
{
LSTRKEY
(
"delete"
),
LFUNCVAL
(
coap_client_delete
)
},
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
coap_client_gcdelete
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"__index"
),
LROVAL
(
coap_client_map
)
},
#endif
static
const
LUA_REG_TYPE
coap_client_map
[]
=
{
{
LSTRKEY
(
"get"
),
LFUNCVAL
(
coap_client_get
)
},
{
LSTRKEY
(
"post"
),
LFUNCVAL
(
coap_client_post
)
},
{
LSTRKEY
(
"put"
),
LFUNCVAL
(
coap_client_put
)
},
{
LSTRKEY
(
"delete"
),
LFUNCVAL
(
coap_client_delete
)
},
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
coap_client_gcdelete
)
},
{
LSTRKEY
(
"__index"
),
LROVAL
(
coap_client_map
)
},
{
LNILKEY
,
LNILVAL
}
};
const
LUA_REG_TYPE
coap_map
[]
=
static
const
LUA_REG_TYPE
coap_map
[]
=
{
{
LSTRKEY
(
"Server"
),
LFUNCVAL
(
coap_createServer
)
},
{
LSTRKEY
(
"Client"
),
LFUNCVAL
(
coap_createClient
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"Server"
),
LFUNCVAL
(
coap_createServer
)
},
{
LSTRKEY
(
"Client"
),
LFUNCVAL
(
coap_createClient
)
},
{
LSTRKEY
(
"CON"
),
LNUMVAL
(
COAP_TYPE_CON
)
},
{
LSTRKEY
(
"NON"
),
LNUMVAL
(
COAP_TYPE_NONCON
)
},
{
LSTRKEY
(
"TEXT_PLAIN"
),
LNUMVAL
(
COAP_CONTENTTYPE_TEXT_PLAIN
)
},
...
...
@@ -602,58 +590,16 @@ const LUA_REG_TYPE coap_map[] =
{
LSTRKEY
(
"OCTET_STREAM"
),
LNUMVAL
(
COAP_CONTENTTYPE_APPLICATION_OCTET_STREAM
)
},
{
LSTRKEY
(
"EXI"
),
LNUMVAL
(
COAP_CONTENTTYPE_APPLICATION_EXI
)
},
{
LSTRKEY
(
"JSON"
),
LNUMVAL
(
COAP_CONTENTTYPE_APPLICATION_JSON
)
},
{
LSTRKEY
(
"__metatable"
),
LROVAL
(
coap_map
)
},
#endif
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_coap
(
lua_State
*
L
)
int
luaopen_coap
(
lua_State
*
L
)
{
endpoint_setup
();
#if LUA_OPTIMIZE_MEMORY > 0
luaL_rometatable
(
L
,
"coap_server"
,
(
void
*
)
coap_server_map
);
// create metatable for coap_server
luaL_rometatable
(
L
,
"coap_client"
,
(
void
*
)
coap_client_map
);
// create metatable for coap_client
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
int
n
;
luaL_register
(
L
,
AUXLIB_COAP
,
coap_map
);
// Set it as its own metatable
lua_pushvalue
(
L
,
-
1
);
lua_setmetatable
(
L
,
-
2
);
// Module constants
MOD_REG_NUMBER
(
L
,
"CON"
,
COAP_TYPE_CON
);
MOD_REG_NUMBER
(
L
,
"NON"
,
COAP_TYPE_NONCON
);
MOD_REG_NUMBER
(
L
,
"TEXT_PLAIN"
,
COAP_CONTENTTYPE_TEXT_PLAIN
);
MOD_REG_NUMBER
(
L
,
"LINKFORMAT"
,
COAP_CONTENTTYPE_APPLICATION_LINKFORMAT
);
MOD_REG_NUMBER
(
L
,
"XML"
,
COAP_CONTENTTYPE_APPLICATION_XML
);
MOD_REG_NUMBER
(
L
,
"OCTET_STREAM"
,
COAP_CONTENTTYPE_APPLICATION_OCTET_STREAM
);
MOD_REG_NUMBER
(
L
,
"EXI"
,
COAP_CONTENTTYPE_APPLICATION_EXI
);
MOD_REG_NUMBER
(
L
,
"JSON"
,
COAP_CONTENTTYPE_APPLICATION_JSON
);
n
=
lua_gettop
(
L
);
// create metatable
luaL_newmetatable
(
L
,
"coap_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
,
coap_server_map
);
lua_settop
(
L
,
n
);
// create metatable
luaL_newmetatable
(
L
,
"coap_client"
);
// metatable.__index = metatable
lua_pushliteral
(
L
,
"__index"
);
lua_pushvalue
(
L
,
-
2
);
lua_rawset
(
L
,
-
3
);
// Setup the methods inside metatable
luaL_register
(
L
,
NULL
,
coap_client_map
);
return
1
;
#endif // #if LUA_OPTIMIZE_MEMORY > 0
}
NODEMCU_MODULE
(
COAP
,
"coap"
,
coap_map
,
luaopen_coap
);
app/modules/crypto.c
View file @
c8037568
// Module for cryptography
//#include "lua.h"
#include "lualib.h"
#include "module.h"
#include "lauxlib.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_types.h"
#include "c_stdlib.h"
#include "../crypto/digests.h"
...
...
@@ -153,31 +150,14 @@ static int crypto_lhmac (lua_State *L)
// Module function map
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
crypto_map
[]
=
{
static
const
LUA_REG_TYPE
crypto_map
[]
=
{
{
LSTRKEY
(
"sha1"
),
LFUNCVAL
(
crypto_sha1
)
},
{
LSTRKEY
(
"toBase64"
),
LFUNCVAL
(
crypto_base64_encode
)
},
{
LSTRKEY
(
"toHex"
),
LFUNCVAL
(
crypto_hex_encode
)
},
{
LSTRKEY
(
"mask"
),
LFUNCVAL
(
crypto_mask
)
},
{
LSTRKEY
(
"hash"
),
LFUNCVAL
(
crypto_lhash
)
},
{
LSTRKEY
(
"hmac"
),
LFUNCVAL
(
crypto_lhmac
)
},
#if LUA_OPTIMIZE_MEMORY > 0
#endif
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_crypto
(
lua_State
*
L
)
{
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
luaL_register
(
L
,
AUXLIB_CRYPTO
,
crypto_map
);
// Add constants
return
1
;
#endif // #if LUA_OPTIMIZE_MEMORY > 0
}
NODEMCU_MODULE
(
CRYPTO
,
"crypto"
,
crypto_map
,
NULL
);
app/modules/dht.c
View file @
c8037568
// Module for interfacing with the DHTxx sensors (xx = 11-21-22-33-44).
#include "
lualib
.h"
#include "
module
.h"
#include "lauxlib.h"
#include "auxmods.h"
#include "lrotable.h"
#include "platform.h"
#include "cpu_esp8266.h"
#include "dht.h"
...
...
@@ -100,30 +99,14 @@ static int dht_lapi_readxx( lua_State *L )
// }
// Module function map
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
dht_map
[]
=
{
static
const
LUA_REG_TYPE
dht_map
[]
=
{
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
dht_lapi_read
)
},
{
LSTRKEY
(
"read11"
),
LFUNCVAL
(
dht_lapi_read11
)
},
{
LSTRKEY
(
"readxx"
),
LFUNCVAL
(
dht_lapi_readxx
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"OK"
),
LNUMVAL
(
DHTLIB_OK
)
},
{
LSTRKEY
(
"ERROR_CHECKSUM"
),
LNUMVAL
(
DHTLIB_ERROR_CHECKSUM
)
},
{
LSTRKEY
(
"ERROR_TIMEOUT"
),
LNUMVAL
(
DHTLIB_ERROR_TIMEOUT
)
},
#endif
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_dht
(
lua_State
*
L
)
{
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
luaL_register
(
L
,
AUXLIB_DHT
,
dht_map
);
// Add the constants
return
1
;
#endif // #if LUA_OPTIMIZE_MEMORY > 0
}
NODEMCU_MODULE
(
DHT
,
"dht"
,
dht_map
,
NULL
);
app/modules/enduser_setup.c
View file @
c8037568
...
...
@@ -31,12 +31,9 @@
* @author Robert Foss <dev@robertfoss.se>
*/
#include "lualib.h"
#include "module.h"
#include "lauxlib.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_stdlib.h"
#include "c_string.h"
#include "user_interface.h"
...
...
@@ -643,6 +640,10 @@ static void enduser_setup_ap_start(void)
struct
softap_config
cnf
;
c_memset
(
&
(
cnf
),
0
,
sizeof
(
struct
softap_config
));
#ifndef ENDUSER_SETUP_AP_SSID
#define ENDUSER_SETUP_AP_SSID "SetupGadget"
#endif
char
ssid
[]
=
ENDUSER_SETUP_AP_SSID
;
int
ssid_name_len
=
c_strlen
(
ENDUSER_SETUP_AP_SSID
);
c_memcpy
(
&
(
cnf
.
ssid
),
ssid
,
ssid_name_len
);
...
...
@@ -929,17 +930,10 @@ static int enduser_setup_stop(lua_State* L)
}
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
enduser_setup_map
[]
=
{
static
const
LUA_REG_TYPE
enduser_setup_map
[]
=
{
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
enduser_setup_start
)},
{
LSTRKEY
(
"stop"
),
LFUNCVAL
(
enduser_setup_stop
)},
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_enduser_setup
(
lua_State
*
L
)
{
LREGISTER
(
L
,
"enduser_setup"
,
enduser_setup_map
);
return
1
;
}
NODEMCU_MODULE
(
ENDUSER_SETUP
,
"enduser_setup"
,
enduser_setup_map
,
NULL
);
app/modules/file.c
View file @
c8037568
// Module for interfacing with file system
#include "lua.h"
#include "lualib.h"
#include "module.h"
#include "lauxlib.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_types.h"
#include "flash_fs.h"
...
...
@@ -299,10 +296,7 @@ static int file_writeline( lua_State* L )
}
// Module function map
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
file_map
[]
=
{
static
const
LUA_REG_TYPE
file_map
[]
=
{
{
LSTRKEY
(
"list"
),
LFUNCVAL
(
file_list
)
},
{
LSTRKEY
(
"open"
),
LFUNCVAL
(
file_open
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
file_close
)
},
...
...
@@ -311,30 +305,15 @@ const LUA_REG_TYPE file_map[] =
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
file_read
)
},
{
LSTRKEY
(
"readline"
),
LFUNCVAL
(
file_readline
)
},
{
LSTRKEY
(
"format"
),
LFUNCVAL
(
file_format
)
},
#if defined(BUILD_WOFS)
#elif defined(BUILD_SPIFFS)
#if defined(BUILD_SPIFFS) && !defined(BUILD_WOFS)
{
LSTRKEY
(
"remove"
),
LFUNCVAL
(
file_remove
)
},
{
LSTRKEY
(
"seek"
),
LFUNCVAL
(
file_seek
)
},
{
LSTRKEY
(
"flush"
),
LFUNCVAL
(
file_flush
)
},
//
{ LSTRKEY( "check" ), LFUNCVAL( file_check ) },
//{ LSTRKEY( "check" ),
LFUNCVAL( file_check ) },
{
LSTRKEY
(
"rename"
),
LFUNCVAL
(
file_rename
)
},
{
LSTRKEY
(
"fsinfo"
),
LFUNCVAL
(
file_fsinfo
)
},
#endif
#if LUA_OPTIMIZE_MEMORY > 0
#endif
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_file
(
lua_State
*
L
)
{
#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
}
NODEMCU_MODULE
(
FILE
,
"file"
,
file_map
,
NULL
);
app/modules/gpio.c
View file @
c8037568
// Module for interfacing with GPIO
//#include "lua.h"
#include "lualib.h"
#include "module.h"
#include "lauxlib.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_types.h"
#include "c_string.h"
...
...
@@ -223,19 +220,13 @@ static int lgpio_serout( lua_State* L )
#undef DELAY_TABLE_MAX_LEN
// Module function map
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
gpio_map
[]
=
{
static
const
LUA_REG_TYPE
gpio_map
[]
=
{
{
LSTRKEY
(
"mode"
),
LFUNCVAL
(
lgpio_mode
)
},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
lgpio_read
)
},
{
LSTRKEY
(
"write"
),
LFUNCVAL
(
lgpio_write
)
},
{
LSTRKEY
(
"serout"
),
LFUNCVAL
(
lgpio_serout
)
},
#ifdef GPIO_INTERRUPT_ENABLE
{
LSTRKEY
(
"trig"
),
LFUNCVAL
(
lgpio_trig
)
},
#endif
#if LUA_OPTIMIZE_MEMORY > 0
#ifdef GPIO_INTERRUPT_ENABLE
{
LSTRKEY
(
"INT"
),
LNUMVAL
(
INTERRUPT
)
},
#endif
{
LSTRKEY
(
"OUTPUT"
),
LNUMVAL
(
OUTPUT
)
},
...
...
@@ -244,12 +235,10 @@ const LUA_REG_TYPE gpio_map[] =
{
LSTRKEY
(
"LOW"
),
LNUMVAL
(
LOW
)
},
{
LSTRKEY
(
"FLOAT"
),
LNUMVAL
(
FLOAT
)
},
{
LSTRKEY
(
"PULLUP"
),
LNUMVAL
(
PULLUP
)
},
#endif
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_gpio
(
lua_State
*
L
)
{
int
luaopen_gpio
(
lua_State
*
L
)
{
#ifdef GPIO_INTERRUPT_ENABLE
int
i
;
for
(
i
=
0
;
i
<
GPIO_PIN_NUM
;
i
++
){
...
...
@@ -257,21 +246,7 @@ LUALIB_API int luaopen_gpio( lua_State *L )
}
platform_gpio_init
(
gpio_intr_callback
);
#endif
#if LUA_OPTIMIZE_MEMORY > 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 @
c8037568
// Module for HX711 load cell amplifier
// https://learn.sparkfun.com/tutorials/load-cell-amplifier-hx711-breakout-hookup-guide
#include "
lualib
.h"
#include "
module
.h"
#include "lauxlib.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_stdlib.h"
#include "c_string.h"
#include "user_interface.h"
...
...
@@ -67,18 +65,16 @@ static int ICACHE_FLASH_ATTR hx711_read(lua_State* L) {
return
1
;
}
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
hx711_map
[]
=
{
// Module function map
static
const
LUA_REG_TYPE
hx711_map
[]
=
{
{
LSTRKEY
(
"init"
),
LFUNCVAL
(
hx711_init
)},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
hx711_read
)},
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_hx711
(
lua_State
*
L
)
{
// TODO: the below todo was inherited from the ws2812 code but is still valid.
int
luaopen_hx711
(
lua_State
*
L
)
{
// TODO: Make sure that the GPIO system is initialized
LREGISTER
(
L
,
"hx711"
,
hx711_map
);
return
1
;
return
0
;
}
NODEMCU_MODULE
(
HX711
,
"hx711"
,
hx711_map
,
luaopen_hx711
);
app/modules/i2c.c
View file @
c8037568
// Module for interfacing with the I2C interface
//#include "lua.h"
#include "lualib.h"
#include "module.h"
#include "lauxlib.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
// Lua: speed = i2c.setup( id, sda, scl, speed )
static
int
i2c_setup
(
lua_State
*
L
)
...
...
@@ -143,39 +140,18 @@ static int i2c_read( lua_State *L )
}
// Module function map
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
i2c_map
[]
=
{
static
const
LUA_REG_TYPE
i2c_map
[]
=
{
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
i2c_setup
)
},
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
i2c_start
)
},
{
LSTRKEY
(
"stop"
),
LFUNCVAL
(
i2c_stop
)
},
{
LSTRKEY
(
"address"
),
LFUNCVAL
(
i2c_address
)
},
{
LSTRKEY
(
"write"
),
LFUNCVAL
(
i2c_write
)
},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
i2c_read
)
},
#if LUA_OPTIMIZE_MEMORY > 0
// { LSTRKEY( "FAST" ), LNUMVAL( PLATFORM_I2C_SPEED_FAST ) },
//{ LSTRKEY( "FAST" ), LNUMVAL( PLATFORM_I2C_SPEED_FAST ) },
{
LSTRKEY
(
"SLOW"
),
LNUMVAL
(
PLATFORM_I2C_SPEED_SLOW
)
},
{
LSTRKEY
(
"TRANSMITTER"
),
LNUMVAL
(
PLATFORM_I2C_DIRECTION_TRANSMITTER
)
},
{
LSTRKEY
(
"RECEIVER"
),
LNUMVAL
(
PLATFORM_I2C_DIRECTION_RECEIVER
)
},
#endif
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_i2c
(
lua_State
*
L
)
{
#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
}
NODEMCU_MODULE
(
I2C
,
"i2c"
,
i2c_map
,
NULL
);
app/modules/linit.c
View file @
c8037568
...
...
@@ -13,124 +13,61 @@
#include "lualib.h"
#include "lauxlib.h"
#include "lrotable.h"
#include "luaconf.h"
#include "module.h"
#include "user_modules.h"
#if defined(LUA_USE_MODULES)
#include "modules.h"
#endif
#if defined(LUA_MODULES_ROM)
#undef _ROM
#define _ROM( name, openf, table ) extern int openf(lua_State *);
LUA_MODULES_ROM
#endif
BUILTIN_LIB_INIT
(
BASE
,
""
,
luaopen_base
);
BUILTIN_LIB_INIT
(
LOADLIB
,
LUA_LOADLIBNAME
,
luaopen_package
);
static
const
luaL_Reg
lualibs
[]
=
{
{
""
,
luaopen_base
},
{
LUA_LOADLIBNAME
,
luaopen_package
},
#if defined(LUA_USE_BUILTIN_IO)
{
LUA_IOLIBNAME
,
luaopen_io
},
BUILTIN_LIB_INIT
(
IO
,
LUA_IOLIBNAME
,
luaopen_io
);
#endif
#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)
#if defined (LUA_USE_BUILTIN_STRING)
extern
const
luaR_entry
strlib
[];
#endif
#if defined(LUA_USE_BUILTIN_OS)
extern
const
luaR_entry
syslib
[];
BUILTIN_LIB_INIT
(
STRING
,
LUA_STRLIBNAME
,
luaopen_string
);
BUILTIN_LIB
(
STRING
,
LUA_STRLIBNAME
,
strlib
);
#endif
#if defined(LUA_USE_BUILTIN_TABLE)
extern
const
luaR_entry
tab_funcs
[];
BUILTIN_LIB_INIT
(
TABLE
,
LUA_TABLIBNAME
,
luaopen_table
);
BUILTIN_LIB
(
TABLE
,
LUA_TABLIBNAME
,
tab_funcs
);
#endif
#if defined(LUA_USE_BUILTIN_DEBUG) || defined(LUA_USE_BUILTIN_DEBUG_MINIMAL)
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
#if defined(LUA_USE_BUILTIN_COROUTINE)
extern
const
luaR_entry
co_funcs
[];
BUILTIN_LIB
(
CO
,
LUA_COLIBNAME
,
co_funcs
);
#endif
#if defined(LUA_USE_BUILTIN_MATH)
extern
const
luaR_entry
math_map
[];
BUILTIN_LIB
(
MATH
,
LUA_MATHLIBNAME
,
math_map
);
#endif
#if defined(LUA_MODULES_ROM) && LUA_OPTIMIZE_MEMORY == 2
#undef _ROM
#define _ROM( name, openf, table ) extern const luaR_entry table[];
LUA_MODULES_ROM
#endif
const
luaR_table
lua_rotable
[]
=
{
#if LUA_OPTIMIZE_MEMORY > 0
#if defined(LUA_USE_BUILTIN_STRING)
{
LUA_STRLIBNAME
,
strlib
},
#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
}
};
extern
const
luaL_Reg
lua_libs
[];
LUALIB_API
void
luaL_openlibs
(
lua_State
*
L
)
{
const
luaL_Reg
*
lib
=
lualibs
;
for
(;
lib
->
func
;
lib
++
)
{
void
luaL_openlibs
(
lua_State
*
L
)
{
const
luaL_Reg
*
lib
=
lua_libs
;
for
(;
lib
->
name
;
lib
++
)
{
if
(
lib
->
func
)
{
lua_pushcfunction
(
L
,
lib
->
func
);
lua_pushstring
(
L
,
lib
->
name
);
lua_call
(
L
,
1
,
0
);
}
}
}
app/modules/modules.h
deleted
100644 → 0
View file @
93421f27
/**
* 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 @
c8037568
// Module for mqtt
//#include "lua.h"
#include "lualib.h"
#include "module.h"
#include "lauxlib.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_string.h"
#include "c_stdlib.h"
...
...
@@ -1392,59 +1389,28 @@ static int mqtt_socket_lwt( lua_State* L )
}
// Module function map
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
static
const
LUA_REG_TYPE
mqtt_socket_map
[]
=
{
{
LSTRKEY
(
"connect"
),
LFUNCVAL
(
mqtt_socket_connect
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
mqtt_socket_close
)
},
{
LSTRKEY
(
"publish"
),
LFUNCVAL
(
mqtt_socket_publish
)
},
{
LSTRKEY
(
"subscribe"
),
LFUNCVAL
(
mqtt_socket_subscribe
)
},
{
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
static
const
LUA_REG_TYPE
mqtt_socket_map
[]
=
{
{
LSTRKEY
(
"connect"
),
LFUNCVAL
(
mqtt_socket_connect
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
mqtt_socket_close
)
},
{
LSTRKEY
(
"publish"
),
LFUNCVAL
(
mqtt_socket_publish
)
},
{
LSTRKEY
(
"subscribe"
),
LFUNCVAL
(
mqtt_socket_subscribe
)
},
{
LSTRKEY
(
"lwt"
),
LFUNCVAL
(
mqtt_socket_lwt
)
},
{
LSTRKEY
(
"on"
),
LFUNCVAL
(
mqtt_socket_on
)
},
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
mqtt_delete
)
},
{
LSTRKEY
(
"__index"
),
LROVAL
(
mqtt_socket_map
)
},
{
LNILKEY
,
LNILVAL
}
};
const
LUA_REG_TYPE
mqtt_map
[]
=
{
{
LSTRKEY
(
"Client"
),
LFUNCVAL
(
mqtt_socket_client
)
},
#if LUA_OPTIMIZE_MEMORY > 0
static
const
LUA_REG_TYPE
mqtt_map
[]
=
{
{
LSTRKEY
(
"Client"
),
LFUNCVAL
(
mqtt_socket_client
)
},
{
LSTRKEY
(
"__metatable"
),
LROVAL
(
mqtt_map
)
},
#endif
{
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
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 @
c8037568
// Module for network
//#include "lua.h"
#include "lualib.h"
#include "module.h"
#include "lauxlib.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_string.h"
#include "c_stdlib.h"
...
...
@@ -1508,132 +1505,72 @@ static int expose_array(lua_State* L, char *array, unsigned short len) {
#endif
// Module function map
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
static
const
LUA_REG_TYPE
net_server_map
[]
=
{
{
LSTRKEY
(
"listen"
),
LFUNCVAL
(
net_server_listen
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
net_server_close
)
},
{
LSTRKEY
(
"on"
),
LFUNCVAL
(
net_udpserver_on
)
},
{
LSTRKEY
(
"send"
),
LFUNCVAL
(
net_udpserver_send
)
},
// { LSTRKEY( "delete" ), LFUNCVAL ( net_server_delete ) },
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
net_server_delete
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"__index"
),
LROVAL
(
net_server_map
)
},
#endif
static
const
LUA_REG_TYPE
net_server_map
[]
=
{
{
LSTRKEY
(
"listen"
),
LFUNCVAL
(
net_server_listen
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
net_server_close
)
},
{
LSTRKEY
(
"on"
),
LFUNCVAL
(
net_udpserver_on
)
},
{
LSTRKEY
(
"send"
),
LFUNCVAL
(
net_udpserver_send
)
},
//{ LSTRKEY( "delete" ), LFUNCVAL( net_server_delete ) },
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
net_server_delete
)
},
{
LSTRKEY
(
"__index"
),
LROVAL
(
net_server_map
)
},
{
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
(
"close"
),
LFUNCVAL
(
net_socket_close
)
},
{
LSTRKEY
(
"on"
),
LFUNCVAL
(
net_socket_on
)
},
{
LSTRKEY
(
"send"
),
LFUNCVAL
(
net_socket_send
)
},
{
LSTRKEY
(
"hold"
),
LFUNCVAL
(
net_socket_hold
)
},
{
LSTRKEY
(
"unhold"
),
LFUNCVAL
(
net_socket_unhold
)
},
{
LSTRKEY
(
"dns"
),
LFUNCVAL
(
net_socket_dns
)
},
{
LSTRKEY
(
"getpeer"
),
LFUNCVAL
(
net_socket_getpeer
)
},
// { LSTRKEY( "delete" ), LFUNCVAL ( net_socket_delete ) },
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
net_socket_delete
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"__index"
),
LROVAL
(
net_socket_map
)
},
#endif
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
net_socket_close
)
},
{
LSTRKEY
(
"on"
),
LFUNCVAL
(
net_socket_on
)
},
{
LSTRKEY
(
"send"
),
LFUNCVAL
(
net_socket_send
)
},
{
LSTRKEY
(
"hold"
),
LFUNCVAL
(
net_socket_hold
)
},
{
LSTRKEY
(
"unhold"
),
LFUNCVAL
(
net_socket_unhold
)
},
{
LSTRKEY
(
"dns"
),
LFUNCVAL
(
net_socket_dns
)
},
{
LSTRKEY
(
"getpeer"
),
LFUNCVAL
(
net_socket_getpeer
)
},
//{ LSTRKEY( "delete" ), LFUNCVAL( net_socket_delete ) },
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
net_socket_delete
)
},
{
LSTRKEY
(
"__index"
),
LROVAL
(
net_socket_map
)
},
{
LNILKEY
,
LNILVAL
}
};
#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( "__newindex" ), LFUNCVAL( net_array_newindex ) },
{ LNILKEY, LNILVAL }
};
#endif
static
const
LUA_REG_TYPE
net_dns_map
[]
=
{
{
LSTRKEY
(
"setdnsserver"
),
LFUNCVAL
(
net_setdnsserver
)
},
{
LSTRKEY
(
"getdnsserver"
),
LFUNCVAL
(
net_getdnsserver
)
},
{
LSTRKEY
(
"resolve"
),
LFUNCVAL
(
net_dns_static
)
},
static
const
LUA_REG_TYPE
net_dns_map
[]
=
{
{
LSTRKEY
(
"setdnsserver"
),
LFUNCVAL
(
net_setdnsserver
)
},
{
LSTRKEY
(
"getdnsserver"
),
LFUNCVAL
(
net_getdnsserver
)
},
{
LSTRKEY
(
"resolve"
),
LFUNCVAL
(
net_dns_static
)
},
{
LNILKEY
,
LNILVAL
}
};
const
LUA_REG_TYPE
net_map
[]
=
{
{
LSTRKEY
(
"createServer"
),
LFUNCVAL
(
net_createServer
)
},
{
LSTRKEY
(
"createConnection"
),
LFUNCVAL
(
net_createConnection
)
},
static
const
LUA_REG_TYPE
net_map
[]
=
{
{
LSTRKEY
(
"createServer"
),
LFUNCVAL
(
net_createServer
)
},
{
LSTRKEY
(
"createConnection"
),
LFUNCVAL
(
net_createConnection
)
},
{
LSTRKEY
(
"multicastJoin"
),
LFUNCVAL
(
net_multicastJoin
)
},
{
LSTRKEY
(
"multicastLeave"
),
LFUNCVAL
(
net_multicastLeave
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"dns"
),
LROVAL
(
net_dns_map
)
},
{
LSTRKEY
(
"TCP"
),
LNUMVAL
(
TCP
)
},
{
LSTRKEY
(
"UDP"
),
LNUMVAL
(
UDP
)
},
{
LSTRKEY
(
"__metatable"
),
LROVAL
(
net_map
)
},
#endif
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_net
(
lua_State
*
L
)
{
int
luaopen_net
(
lua_State
*
L
)
{
int
i
;
for
(
i
=
0
;
i
<
MAX_SOCKET
;
i
++
)
{
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.socket"
,
(
void
*
)
net_socket_map
);
// create metatable for net.socket
#if 0
luaL_rometatable(L, "net.array", (void *)net_array_map); // create metatable for net.array
#endif
return
0
;
#else // #if LUA_OPTIMIZE_MEMORY > 0
int
n
;
luaL_register
(
L
,
AUXLIB_NET
,
net_map
);
// Set it as its own metatable
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
return
0
;
}
NODEMCU_MODULE
(
NET
,
"net"
,
net_map
,
luaopen_net
);
app/modules/node.c
View file @
c8037568
// Module for interfacing with system
#include "
lua
.h"
#include "
module
.h"
#include "lauxlib.h"
#include "ldebug.h"
...
...
@@ -15,14 +15,12 @@
#include "lundump.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "lrodefs.h"
#include "c_types.h"
#include "romfs.h"
#include "c_string.h"
#include "driver/uart.h"
//#include "spi_flash.h"
#include "user_interface.h"
#include "flash_api.h"
#include "flash_fs.h"
...
...
@@ -550,9 +548,7 @@ static int node_stripdebug (lua_State *L) {
#endif
// Module function map
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
node_map
[]
=
static
const
LUA_REG_TYPE
node_map
[]
=
{
{
LSTRKEY
(
"restart"
),
LFUNCVAL
(
node_restart
)
},
{
LSTRKEY
(
"dsleep"
),
LFUNCVAL
(
node_deepsleep
)
},
...
...
@@ -581,20 +577,7 @@ const LUA_REG_TYPE node_map[] =
// Combined to dsleep(us, option)
// { LSTRKEY( "dsleepsetoption" ), LFUNCVAL( node_deepsleep_setoption) },
#if LUA_OPTIMIZE_MEMORY > 0
#endif
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_node
(
lua_State
*
L
)
{
#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
}
NODEMCU_MODULE
(
NODE
,
"node"
,
node_map
,
NULL
);
app/modules/ow.c
View file @
c8037568
// Module for interfacing with the OneWire interface
//#include "lua.h"
#include "lualib.h"
#include "module.h"
#include "lauxlib.h"
#include "auxmods.h"
#include "lrotable.h"
#include "platform.h"
#include "driver/onewire.h"
// Lua: ow.setup( id )
...
...
@@ -282,10 +280,7 @@ static int ow_crc16( lua_State *L )
#endif
// Module function map
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
ow_map
[]
=
{
static
const
LUA_REG_TYPE
ow_map
[]
=
{
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
ow_setup
)
},
{
LSTRKEY
(
"reset"
),
LFUNCVAL
(
ow_reset
)
},
{
LSTRKEY
(
"skip"
),
LFUNCVAL
(
ow_skip
)
},
...
...
@@ -306,22 +301,8 @@ const LUA_REG_TYPE ow_map[] =
{
LSTRKEY
(
"check_crc16"
),
LFUNCVAL
(
ow_check_crc16
)
},
{
LSTRKEY
(
"crc16"
),
LFUNCVAL
(
ow_crc16
)
},
#endif
#endif
#if LUA_OPTIMIZE_MEMORY > 0
#endif
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_ow
(
lua_State
*
L
)
{
#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
}
NODEMCU_MODULE
(
OW
,
"ow"
,
ow_map
,
NULL
);
app/modules/pwm.c
View file @
c8037568
// Module for interfacing with PWM
//#include "lua.h"
#include "lualib.h"
#include "module.h"
#include "lauxlib.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
#include "c_types.h"
// Lua: realfrequency = setup( id, frequency, duty )
...
...
@@ -125,10 +121,7 @@ static int lpwm_getduty( lua_State* L )
}
// Module function map
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
pwm_map
[]
=
{
static
const
LUA_REG_TYPE
pwm_map
[]
=
{
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
lpwm_setup
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
lpwm_close
)
},
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
lpwm_start
)
},
...
...
@@ -137,18 +130,7 @@ const LUA_REG_TYPE pwm_map[] =
{
LSTRKEY
(
"getclock"
),
LFUNCVAL
(
lpwm_getclock
)
},
{
LSTRKEY
(
"setduty"
),
LFUNCVAL
(
lpwm_setduty
)
},
{
LSTRKEY
(
"getduty"
),
LFUNCVAL
(
lpwm_getduty
)
},
#if LUA_OPTIMIZE_MEMORY > 0
#endif
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_pwm
(
lua_State
*
L
)
{
#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
}
NODEMCU_MODULE
(
PWM
,
"pwm"
,
pwm_map
,
NULL
);
app/modules/rc.c
View file @
c8037568
#include "
lualib
.h"
#include "
module
.h"
#include "lauxlib.h"
#include "platform.h"
#include "auxmods.h"
#include "lrotable.h"
//#include "driver/easygpio.h"
//static Ping_Data pingA;
#define defPulseLen 185
...
...
@@ -80,17 +78,16 @@ static int ICACHE_FLASH_ATTR rc_send(lua_State* L) {
return
1
;
}
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
rc_map
[]
=
{
// Module function map
static
const
LUA_REG_TYPE
rc_map
[]
=
{
{
LSTRKEY
(
"send"
),
LFUNCVAL
(
rc_send
)},
{
LNILKEY
,
LNILVAL
}
};
//LUALIB_API int luaopen_ultra(lua_State *L) {
LUALIB_API
int
luaopen_rc
(
lua_State
*
L
)
{
int
luaopen_rc
(
lua_State
*
L
)
{
// TODO: Make sure that the GPIO system is initialized
LREGISTER
(
L
,
"rc"
,
rc_map
);
return
1
;
return
0
;
}
NODEMCU_MODULE
(
RC
,
"rc"
,
rc_map
,
luaopen_rc
);
app/modules/rtcfifo.c
View file @
c8037568
// Module for RTC sample FIFO storage
#include "module.h"
#include "lauxlib.h"
#include "user_modules.h"
#include "rtc/rtctime.h"
...
...
@@ -164,10 +165,7 @@ static int rtcfifo_dsleep_until_sample (lua_State *L)
#endif
// Module function map
#define MIN_OPT_LEVEL 2
#include "lrodefs.h"
const
LUA_REG_TYPE
rtcfifo_map
[]
=
{
static
const
LUA_REG_TYPE
rtcfifo_map
[]
=
{
{
LSTRKEY
(
"prepare"
),
LFUNCVAL
(
rtcfifo_prepare
)
},
{
LSTRKEY
(
"ready"
),
LFUNCVAL
(
rtcfifo_ready
)
},
{
LSTRKEY
(
"put"
),
LFUNCVAL
(
rtcfifo_put
)
},
...
...
@@ -181,12 +179,4 @@ const LUA_REG_TYPE rtcfifo_map[] =
{
LNILKEY
,
LNILVAL
}
};
LUALIB_API
int
luaopen_rtcfifo
(
lua_State
*
L
)
{
#if LUA_OPTIMIZE_MEMORY > 0
return
0
;
#else
luaL_register
(
L
,
AUXLIB_RTCFIFO
,
rtcfifo_map
);
return
1
;
#endif
}
NODEMCU_MODULE
(
RTCFIFO
,
"rtcfifo"
,
rtcfifo_map
,
NULL
);
Prev
1
2
3
4
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