Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
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 @@
...
@@ -5,13 +5,10 @@
// Modified by BogdanM for eLua
// Modified by BogdanM for eLua
#include "module.h"
#include "c_limits.h"
#include "c_limits.h"
//#include "lua.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "auxmods.h"
// #include "type.h"
#include "lrotable.h"
/* FIXME: Assume size_t is an unsigned lua_Integer */
/* FIXME: Assume size_t is an unsigned lua_Integer */
typedef
size_t
lua_UInteger
;
typedef
size_t
lua_UInteger
;
...
@@ -122,9 +119,7 @@ static int bit_clear( lua_State* L )
...
@@ -122,9 +119,7 @@ static int bit_clear( lua_State* L )
return
1
;
return
1
;
}
}
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
bit_map
[]
=
{
#include "lrodefs.h"
const
LUA_REG_TYPE
bit_map
[]
=
{
{
LSTRKEY
(
"bnot"
),
LFUNCVAL
(
bit_bnot
)
},
{
LSTRKEY
(
"bnot"
),
LFUNCVAL
(
bit_bnot
)
},
{
LSTRKEY
(
"band"
),
LFUNCVAL
(
bit_band
)
},
{
LSTRKEY
(
"band"
),
LFUNCVAL
(
bit_band
)
},
{
LSTRKEY
(
"bor"
),
LFUNCVAL
(
bit_bor
)
},
{
LSTRKEY
(
"bor"
),
LFUNCVAL
(
bit_bor
)
},
...
@@ -140,6 +135,4 @@ const LUA_REG_TYPE bit_map[] = {
...
@@ -140,6 +135,4 @@ const LUA_REG_TYPE bit_map[] = {
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_bit
(
lua_State
*
L
)
{
NODEMCU_MODULE
(
BIT
,
"bit"
,
bit_map
,
NULL
);
LREGISTER
(
L
,
"bit"
,
bit_map
);
}
app/modules/bmp085.c
View file @
c8037568
#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"
...
@@ -185,10 +183,7 @@ static int ICACHE_FLASH_ATTR bmp085_lua_pressure(lua_State* L) {
...
@@ -185,10 +183,7 @@ static int ICACHE_FLASH_ATTR bmp085_lua_pressure(lua_State* L) {
return
1
;
return
1
;
}
}
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
bmp085_map
[]
=
{
#include "lrodefs.h"
const
LUA_REG_TYPE
bmp085_map
[]
=
{
{
LSTRKEY
(
"temperature"
),
LFUNCVAL
(
bmp085_lua_temperature
)},
{
LSTRKEY
(
"temperature"
),
LFUNCVAL
(
bmp085_lua_temperature
)},
{
LSTRKEY
(
"pressure"
),
LFUNCVAL
(
bmp085_lua_pressure
)},
{
LSTRKEY
(
"pressure"
),
LFUNCVAL
(
bmp085_lua_pressure
)},
{
LSTRKEY
(
"pressure_raw"
),
LFUNCVAL
(
bmp085_lua_pressure_raw
)},
{
LSTRKEY
(
"pressure_raw"
),
LFUNCVAL
(
bmp085_lua_pressure_raw
)},
...
@@ -196,8 +191,4 @@ const LUA_REG_TYPE bmp085_map[] =
...
@@ -196,8 +191,4 @@ const LUA_REG_TYPE bmp085_map[] =
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_bmp085
(
lua_State
*
L
)
{
NODEMCU_MODULE
(
BMP085
,
"bmp085"
,
bmp085_map
,
NULL
);
LREGISTER
(
L
,
"bmp085"
,
bmp085_map
);
return
1
;
}
app/modules/cjson.c
View file @
c8037568
...
@@ -37,10 +37,10 @@
...
@@ -37,10 +37,10 @@
*/
*/
// #include <assert.h>
// #include <assert.h>
#include "module.h"
#include "c_string.h"
#include "c_string.h"
#include "c_math.h"
#include "c_math.h"
#include "c_limits.h"
#include "c_limits.h"
#include "lua.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "flash_api.h"
#include "flash_api.h"
...
@@ -1528,53 +1528,7 @@ static int json_protect_conversion(lua_State *l)
...
@@ -1528,53 +1528,7 @@ static int json_protect_conversion(lua_State *l)
* errors are memory related */
* errors are memory related */
return luaL_error(l, "Memory allocation error in CJSON protected call");
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 */
/* Return cjson module table */
static int lua_cjson_new(lua_State *l)
static int lua_cjson_new(lua_State *l)
{
{
...
@@ -1644,5 +1598,34 @@ int luaopen_cjson_safe(lua_State *l)
...
@@ -1644,5 +1598,34 @@ int luaopen_cjson_safe(lua_State *l)
return 1;
return 1;
}
}
#endif
#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:
/* vi:ai et sw=4 ts=4:
*/
*/
app/modules/coap.c
View file @
c8037568
// Module for coapwork
// Module for coapwork
//#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"
...
@@ -561,39 +558,30 @@ static int coap_client_delete( lua_State* L )
...
@@ -561,39 +558,30 @@ static int coap_client_delete( lua_State* L )
}
}
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
coap_server_map
[]
=
{
#include "lrodefs.h"
{
LSTRKEY
(
"listen"
),
LFUNCVAL
(
coap_server_listen
)
},
static
const
LUA_REG_TYPE
coap_server_map
[]
=
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
coap_server_close
)
},
{
{
LSTRKEY
(
"var"
),
LFUNCVAL
(
coap_server_var
)
},
{
LSTRKEY
(
"listen"
),
LFUNCVAL
(
coap_server_listen
)
},
{
LSTRKEY
(
"func"
),
LFUNCVAL
(
coap_server_func
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
coap_server_close
)
},
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
coap_server_delete
)
},
{
LSTRKEY
(
"var"
),
LFUNCVAL
(
coap_server_var
)
},
{
LSTRKEY
(
"__index"
),
LROVAL
(
coap_server_map
)
},
{
LSTRKEY
(
"func"
),
LFUNCVAL
(
coap_server_func
)
},
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
coap_server_delete
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"__index"
),
LROVAL
(
coap_server_map
)
},
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
static
const
LUA_REG_TYPE
coap_client_map
[]
=
static
const
LUA_REG_TYPE
coap_client_map
[]
=
{
{
{
LSTRKEY
(
"get"
),
LFUNCVAL
(
coap_client_get
)
},
{
LSTRKEY
(
"get"
),
LFUNCVAL
(
coap_client_get
)
},
{
LSTRKEY
(
"post"
),
LFUNCVAL
(
coap_client_post
)
},
{
LSTRKEY
(
"post"
),
LFUNCVAL
(
coap_client_post
)
},
{
LSTRKEY
(
"put"
),
LFUNCVAL
(
coap_client_put
)
},
{
LSTRKEY
(
"put"
),
LFUNCVAL
(
coap_client_put
)
},
{
LSTRKEY
(
"delete"
),
LFUNCVAL
(
coap_client_delete
)
},
{
LSTRKEY
(
"delete"
),
LFUNCVAL
(
coap_client_delete
)
},
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
coap_client_gcdelete
)
},
{
LSTRKEY
(
"__gc"
),
LFUNCVAL
(
coap_client_gcdelete
)
},
{
LSTRKEY
(
"__index"
),
LROVAL
(
coap_client_map
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"__index"
),
LROVAL
(
coap_client_map
)
},
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
const
LUA_REG_TYPE
coap_map
[]
=
static
const
LUA_REG_TYPE
coap_map
[]
=
{
{
{
LSTRKEY
(
"Server"
),
LFUNCVAL
(
coap_createServer
)
},
{
LSTRKEY
(
"Server"
),
LFUNCVAL
(
coap_createServer
)
},
{
LSTRKEY
(
"Client"
),
LFUNCVAL
(
coap_createClient
)
},
{
LSTRKEY
(
"Client"
),
LFUNCVAL
(
coap_createClient
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"CON"
),
LNUMVAL
(
COAP_TYPE_CON
)
},
{
LSTRKEY
(
"CON"
),
LNUMVAL
(
COAP_TYPE_CON
)
},
{
LSTRKEY
(
"NON"
),
LNUMVAL
(
COAP_TYPE_NONCON
)
},
{
LSTRKEY
(
"NON"
),
LNUMVAL
(
COAP_TYPE_NONCON
)
},
{
LSTRKEY
(
"TEXT_PLAIN"
),
LNUMVAL
(
COAP_CONTENTTYPE_TEXT_PLAIN
)
},
{
LSTRKEY
(
"TEXT_PLAIN"
),
LNUMVAL
(
COAP_CONTENTTYPE_TEXT_PLAIN
)
},
...
@@ -602,58 +590,16 @@ const LUA_REG_TYPE coap_map[] =
...
@@ -602,58 +590,16 @@ const LUA_REG_TYPE coap_map[] =
{
LSTRKEY
(
"OCTET_STREAM"
),
LNUMVAL
(
COAP_CONTENTTYPE_APPLICATION_OCTET_STREAM
)
},
{
LSTRKEY
(
"OCTET_STREAM"
),
LNUMVAL
(
COAP_CONTENTTYPE_APPLICATION_OCTET_STREAM
)
},
{
LSTRKEY
(
"EXI"
),
LNUMVAL
(
COAP_CONTENTTYPE_APPLICATION_EXI
)
},
{
LSTRKEY
(
"EXI"
),
LNUMVAL
(
COAP_CONTENTTYPE_APPLICATION_EXI
)
},
{
LSTRKEY
(
"JSON"
),
LNUMVAL
(
COAP_CONTENTTYPE_APPLICATION_JSON
)
},
{
LSTRKEY
(
"JSON"
),
LNUMVAL
(
COAP_CONTENTTYPE_APPLICATION_JSON
)
},
{
LSTRKEY
(
"__metatable"
),
LROVAL
(
coap_map
)
},
{
LSTRKEY
(
"__metatable"
),
LROVAL
(
coap_map
)
},
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_coap
(
lua_State
*
L
)
int
luaopen_coap
(
lua_State
*
L
)
{
{
endpoint_setup
();
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_server"
,
(
void
*
)
coap_server_map
);
// create metatable for coap_server
luaL_rometatable
(
L
,
"coap_client"
,
(
void
*
)
coap_client_map
);
// create metatable for coap_client
luaL_rometatable
(
L
,
"coap_client"
,
(
void
*
)
coap_client_map
);
// create metatable for coap_client
return
0
;
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
// Module for cryptography
//#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_stdlib.h"
#include "c_stdlib.h"
#include "../crypto/digests.h"
#include "../crypto/digests.h"
...
@@ -153,31 +150,14 @@ static int crypto_lhmac (lua_State *L)
...
@@ -153,31 +150,14 @@ static int crypto_lhmac (lua_State *L)
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
crypto_map
[]
=
{
#include "lrodefs.h"
const
LUA_REG_TYPE
crypto_map
[]
=
{
{
LSTRKEY
(
"sha1"
),
LFUNCVAL
(
crypto_sha1
)
},
{
LSTRKEY
(
"sha1"
),
LFUNCVAL
(
crypto_sha1
)
},
{
LSTRKEY
(
"toBase64"
),
LFUNCVAL
(
crypto_base64_encode
)
},
{
LSTRKEY
(
"toBase64"
),
LFUNCVAL
(
crypto_base64_encode
)
},
{
LSTRKEY
(
"toHex"
),
LFUNCVAL
(
crypto_hex_encode
)
},
{
LSTRKEY
(
"toHex"
),
LFUNCVAL
(
crypto_hex_encode
)
},
{
LSTRKEY
(
"mask"
),
LFUNCVAL
(
crypto_mask
)
},
{
LSTRKEY
(
"mask"
),
LFUNCVAL
(
crypto_mask
)
},
{
LSTRKEY
(
"hash"
),
LFUNCVAL
(
crypto_lhash
)
},
{
LSTRKEY
(
"hash"
),
LFUNCVAL
(
crypto_lhash
)
},
{
LSTRKEY
(
"hmac"
),
LFUNCVAL
(
crypto_lhmac
)
},
{
LSTRKEY
(
"hmac"
),
LFUNCVAL
(
crypto_lhmac
)
},
#if LUA_OPTIMIZE_MEMORY > 0
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_crypto
(
lua_State
*
L
)
NODEMCU_MODULE
(
CRYPTO
,
"crypto"
,
crypto_map
,
NULL
);
{
#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
}
app/modules/dht.c
View file @
c8037568
// Module for interfacing with the DHTxx sensors (xx = 11-21-22-33-44).
// Module for interfacing with the DHTxx sensors (xx = 11-21-22-33-44).
#include "
lualib
.h"
#include "
module
.h"
#include "lauxlib.h"
#include "lauxlib.h"
#include "auxmods.h"
#include "platform.h"
#include "lrotable.h"
#include "cpu_esp8266.h"
#include "cpu_esp8266.h"
#include "dht.h"
#include "dht.h"
...
@@ -100,30 +99,14 @@ static int dht_lapi_readxx( lua_State *L )
...
@@ -100,30 +99,14 @@ static int dht_lapi_readxx( lua_State *L )
// }
// }
// Module function map
// Module function map
#define MIN_OPT_LEVEL 2
static
const
LUA_REG_TYPE
dht_map
[]
=
{
#include "lrodefs.h"
const
LUA_REG_TYPE
dht_map
[]
=
{
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
dht_lapi_read
)
},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
dht_lapi_read
)
},
{
LSTRKEY
(
"read11"
),
LFUNCVAL
(
dht_lapi_read11
)
},
{
LSTRKEY
(
"read11"
),
LFUNCVAL
(
dht_lapi_read11
)
},
{
LSTRKEY
(
"readxx"
),
LFUNCVAL
(
dht_lapi_readxx
)
},
{
LSTRKEY
(
"readxx"
),
LFUNCVAL
(
dht_lapi_readxx
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"OK"
),
LNUMVAL
(
DHTLIB_OK
)
},
{
LSTRKEY
(
"OK"
),
LNUMVAL
(
DHTLIB_OK
)
},
{
LSTRKEY
(
"ERROR_CHECKSUM"
),
LNUMVAL
(
DHTLIB_ERROR_CHECKSUM
)
},
{
LSTRKEY
(
"ERROR_CHECKSUM"
),
LNUMVAL
(
DHTLIB_ERROR_CHECKSUM
)
},
{
LSTRKEY
(
"ERROR_TIMEOUT"
),
LNUMVAL
(
DHTLIB_ERROR_TIMEOUT
)
},
{
LSTRKEY
(
"ERROR_TIMEOUT"
),
LNUMVAL
(
DHTLIB_ERROR_TIMEOUT
)
},
#endif
{
LNILKEY
,
LNILVAL
}
{
LNILKEY
,
LNILVAL
}
};
};
LUALIB_API
int
luaopen_dht
(
lua_State
*
L
)
NODEMCU_MODULE
(
DHT
,
"dht"
,
dht_map
,
NULL
);
{
#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
}
app/modules/enduser_setup.c
View file @
c8037568
...
@@ -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"
...
@@ -643,6 +640,10 @@ static void enduser_setup_ap_start(void)
...
@@ -643,6 +640,10 @@ static void enduser_setup_ap_start(void)
struct
softap_config
cnf
;
struct
softap_config
cnf
;
c_memset
(
&
(
cnf
),
0
,
sizeof
(
struct
softap_config
));
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
;
char
ssid
[]
=
ENDUSER_SETUP_AP_SSID
;
int
ssid_name_len
=
c_strlen
(
ENDUSER_SETUP_AP_SSID
);
int
ssid_name_len
=
c_strlen
(
ENDUSER_SETUP_AP_SSID
);
c_memcpy
(
&
(
cnf
.
ssid
),
ssid
,
ssid_name_len
);
c_memcpy
(
&
(
cnf
.
ssid
),
ssid
,
ssid_name_len
);
...
@@ -929,17 +930,10 @@ static int enduser_setup_stop(lua_State* L)
...
@@ -929,17 +930,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 @
c8037568
// 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,10 +296,7 @@ static int file_writeline( lua_State* L )
...
@@ -299,10 +296,7 @@ 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"
const
LUA_REG_TYPE
file_map
[]
=
{
{
LSTRKEY
(
"list"
),
LFUNCVAL
(
file_list
)
},
{
LSTRKEY
(
"list"
),
LFUNCVAL
(
file_list
)
},
{
LSTRKEY
(
"open"
),
LFUNCVAL
(
file_open
)
},
{
LSTRKEY
(
"open"
),
LFUNCVAL
(
file_open
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
file_close
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
file_close
)
},
...
@@ -311,30 +305,15 @@ const LUA_REG_TYPE file_map[] =
...
@@ -311,30 +305,15 @@ const LUA_REG_TYPE file_map[] =
{
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 @
c8037568
// 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,19 +220,13 @@ static int lgpio_serout( lua_State* L )
...
@@ -223,19 +220,13 @@ 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"
const
LUA_REG_TYPE
gpio_map
[]
=
{
{
LSTRKEY
(
"mode"
),
LFUNCVAL
(
lgpio_mode
)
},
{
LSTRKEY
(
"mode"
),
LFUNCVAL
(
lgpio_mode
)
},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
lgpio_read
)
},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
lgpio_read
)
},
{
LSTRKEY
(
"write"
),
LFUNCVAL
(
lgpio_write
)
},
{
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
#if LUA_OPTIMIZE_MEMORY > 0
#ifdef GPIO_INTERRUPT_ENABLE
{
LSTRKEY
(
"INT"
),
LNUMVAL
(
INTERRUPT
)
},
{
LSTRKEY
(
"INT"
),
LNUMVAL
(
INTERRUPT
)
},
#endif
#endif
{
LSTRKEY
(
"OUTPUT"
),
LNUMVAL
(
OUTPUT
)
},
{
LSTRKEY
(
"OUTPUT"
),
LNUMVAL
(
OUTPUT
)
},
...
@@ -244,12 +235,10 @@ const LUA_REG_TYPE gpio_map[] =
...
@@ -244,12 +235,10 @@ const LUA_REG_TYPE gpio_map[] =
{
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 @
c8037568
// 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 @
c8037568
// 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"
const
LUA_REG_TYPE
i2c_map
[]
=
{
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
i2c_setup
)
},
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
i2c_setup
)
},
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
i2c_start
)
},
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
i2c_start
)
},
{
LSTRKEY
(
"stop"
),
LFUNCVAL
(
i2c_stop
)
},
{
LSTRKEY
(
"stop"
),
LFUNCVAL
(
i2c_stop
)
},
{
LSTRKEY
(
"address"
),
LFUNCVAL
(
i2c_address
)
},
{
LSTRKEY
(
"address"
),
LFUNCVAL
(
i2c_address
)
},
{
LSTRKEY
(
"write"
),
LFUNCVAL
(
i2c_write
)
},
{
LSTRKEY
(
"write"
),
LFUNCVAL
(
i2c_write
)
},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
i2c_read
)
},
{
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
(
"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 @
c8037568
...
@@ -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[];
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
}
};
LUALIB_API
void
luaL_openlibs
(
lua_State
*
L
)
{
void
luaL_openlibs
(
lua_State
*
L
)
{
const
luaL_Reg
*
lib
=
lualibs
;
const
luaL_Reg
*
lib
=
lua_libs
;
for
(;
lib
->
func
;
lib
++
)
{
for
(;
lib
->
name
;
lib
++
)
{
if
(
lib
->
func
)
{
lua_pushcfunction
(
L
,
lib
->
func
);
lua_pushcfunction
(
L
,
lib
->
func
);
lua_pushstring
(
L
,
lib
->
name
);
lua_pushstring
(
L
,
lib
->
name
);
lua_call
(
L
,
1
,
0
);
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
// 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 @
c8037568
// 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
)
},
#if LUA_OPTIMIZE_MEMORY > 0
{
LSTRKEY
(
"dns"
),
LROVAL
(
net_dns_map
)
},
{
LSTRKEY
(
"dns"
),
LROVAL
(
net_dns_map
)
},
{
LSTRKEY
(
"TCP"
),
LNUMVAL
(
TCP
)
},
{
LSTRKEY
(
"TCP"
),
LNUMVAL
(
TCP
)
},
{
LSTRKEY
(
"UDP"
),
LNUMVAL
(
UDP
)
},
{
LSTRKEY
(
"UDP"
),
LNUMVAL
(
UDP
)
},
{
LSTRKEY
(
"__metatable"
),
LROVAL
(
net_map
)
},
{
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
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
);
return
0
;
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 @
c8037568
// 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 @
c8037568
// 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,10 +280,7 @@ static int ow_crc16( lua_State *L )
...
@@ -282,10 +280,7 @@ 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"
const
LUA_REG_TYPE
ow_map
[]
=
{
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
ow_setup
)
},
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
ow_setup
)
},
{
LSTRKEY
(
"reset"
),
LFUNCVAL
(
ow_reset
)
},
{
LSTRKEY
(
"reset"
),
LFUNCVAL
(
ow_reset
)
},
{
LSTRKEY
(
"skip"
),
LFUNCVAL
(
ow_skip
)
},
{
LSTRKEY
(
"skip"
),
LFUNCVAL
(
ow_skip
)
},
...
@@ -306,22 +301,8 @@ const LUA_REG_TYPE ow_map[] =
...
@@ -306,22 +301,8 @@ const LUA_REG_TYPE ow_map[] =
{
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 @
c8037568
// 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,10 +121,7 @@ static int lpwm_getduty( lua_State* L )
...
@@ -125,10 +121,7 @@ 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"
const
LUA_REG_TYPE
pwm_map
[]
=
{
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
lpwm_setup
)
},
{
LSTRKEY
(
"setup"
),
LFUNCVAL
(
lpwm_setup
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
lpwm_close
)
},
{
LSTRKEY
(
"close"
),
LFUNCVAL
(
lpwm_close
)
},
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
lpwm_start
)
},
{
LSTRKEY
(
"start"
),
LFUNCVAL
(
lpwm_start
)
},
...
@@ -137,18 +130,7 @@ const LUA_REG_TYPE pwm_map[] =
...
@@ -137,18 +130,7 @@ const LUA_REG_TYPE pwm_map[] =
{
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 @
c8037568
#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 @
c8037568
// 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
}
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