const LUA_REG_TYPE tmr_map[] = { { LSTRKEY( "delay" ), LFUNCVAL( tmr_delay ) }, { LSTRKEY( "read" ), LFUNCVAL( tmr_read ) }, { LSTRKEY( "start" ), LFUNCVAL( tmr_start ) }, { LSTRKEY( "gettimediff" ), LFUNCVAL( tmr_gettimediff ) }, { LSTRKEY( "getdiffnow" ), LFUNCVAL( tmr_getdiffnow ) }, { LSTRKEY( "getmindelay" ), LFUNCVAL( tmr_getmindelay ) }, { LSTRKEY( "getmaxdelay" ), LFUNCVAL( tmr_getmaxdelay ) }, { LSTRKEY( "setclock" ), LFUNCVAL( tmr_setclock ) }, { LSTRKEY( "getclock" ), LFUNCVAL( tmr_getclock ) }, #ifdef BUILD_LUA_INT_HANDLERS { LSTRKEY( "set_match_int" ), LFUNCVAL( tmr_set_match_int ) }, #endif #if LUA_OPTIMIZE_MEMORY > 0 && VTMR_NUM_TIMERS > 0 { LSTRKEY( "__metatable" ), LROVAL( tmr_map ) }, #endif #if VTMR_NUM_TIMERS > 0 { LSTRKEY( "__index" ), LFUNCVAL( tmr_mt_index ) }, #endif #if LUA_OPTIMIZE_MEMORY > 0 { LSTRKEY( "SYS_TIMER" ), LNUMVAL( PLATFORM_TIMER_SYS_ID ) }, #endif #if LUA_OPTIMIZE_MEMORY > 0 && defined( BUILD_LUA_INT_HANDLERS ) { LSTRKEY( "INT_ONESHOT" ), LNUMVAL( PLATFORM_TIMER_INT_ONESHOT ) }, { LSTRKEY( "INT_CYCLIC" ), LNUMVAL( PLATFORM_TIMER_INT_CYCLIC ) }, #endif { LNILKEY, LNILVAL } }; LUALIB_API int luaopen_tmr( lua_State *L )
{ LSTRKEY( "setdir" ), LFUNCVAL( pio_port_setdir ) }, { LSTRKEY( "output" ), LFUNCVAL( pio_port_output ) }, { LSTRKEY( "input" ), LFUNCVAL( pio_port_input ) }, { LSTRKEY( "setpull" ), LFUNCVAL( pio_port_setpull ) }, { LSTRKEY( "setval" ), LFUNCVAL( pio_port_setval ) }, { LSTRKEY( "sethigh" ), LFUNCVAL( pio_port_sethigh ) }, { LSTRKEY( "setlow" ), LFUNCVAL( pio_port_setlow ) }, { LSTRKEY( "getval" ), LFUNCVAL( pio_port_getval ) }, { LNILKEY, LNILVAL } }; const LUA_REG_TYPE pio_map[] = { { LSTRKEY( "decode" ), LFUNCVAL( pio_decode ) }, #if LUA_OPTIMIZE_MEMORY > 0 { LSTRKEY( "pin" ), LROVAL( pio_pin_map ) }, { LSTRKEY( "port" ), LROVAL( pio_port_map ) }, { LSTRKEY( "INPUT" ), LNUMVAL( PIO_DIR_INPUT ) }, { LSTRKEY( "OUTPUT" ), LNUMVAL( PIO_DIR_OUTPUT ) }, { LSTRKEY( "PULLUP" ), LNUMVAL( PLATFORM_IO_PIN_PULLUP ) }, { LSTRKEY( "PULLDOWN" ), LNUMVAL( PLATFORM_IO_PIN_PULLDOWN ) }, { LSTRKEY( "NOPULL" ), LNUMVAL( PLATFORM_IO_PIN_NOPULL ) }, { LSTRKEY( "__metatable" ), LROVAL( pio_map ) }, #endif { LSTRKEY( "__index" ), LFUNCVAL( pio_mt_index ) }, { LNILKEY, LNILVAL } }; LUALIB_API int luaopen_pio( lua_State *L ) { #if LUA_OPTIMIZE_MEMORY > 0
#undef MIN_OPT_LEVEL #define MIN_OPT_LEVEL 1 #include "lrodefs.h" const LUA_REG_TYPE flib[] = { {LSTRKEY("close"), LFUNCVAL(io_close)}, {LSTRKEY("flush"), LFUNCVAL(f_flush)}, {LSTRKEY("lines"), LFUNCVAL(f_lines)}, {LSTRKEY("read"), LFUNCVAL(f_read)}, {LSTRKEY("seek"), LFUNCVAL(f_seek)}, {LSTRKEY("setvbuf"), LFUNCVAL(f_setvbuf)}, {LSTRKEY("write"), LFUNCVAL(f_write)}, {LSTRKEY("__gc"), LFUNCVAL(io_gc)}, {LSTRKEY("__tostring"), LFUNCVAL(io_tostring)}, #if LUA_OPTIMIZE_MEMORY > 0 {LSTRKEY("__index"), LROVAL(flib)}, #endif {LNILKEY, LNILVAL} }; static void createmeta (lua_State *L) { #if LUA_OPTIMIZE_MEMORY == 0 luaL_newmetatable(L, LUA_FILEHANDLE); /* create metatable for file handles */ lua_pushvalue(L, -1); /* push metatable */ lua_setfield(L, -2, "__index"); /* metatable.__index = metatable */ luaL_register(L, NULL, flib); /* file methods */ #else luaL_rometatable(L, LUA_FILEHANDLE, (void *)flib); /* create metatable for file handles */ #endif }
if( sz == -1 ) return 0; else { lua_pushinteger( L, sz ); return 1; } } // Module function map #define MIN_OPT_LEVEL 2 #include "lrodefs.h" const LUA_REG_TYPE mbed_pio_map[] = { #if LUA_OPTIMIZE_MEMORY > 0 { LSTRKEY( "__metatable" ), LROVAL( mbed_pio_map ) }, { LSTRKEY( "RES_PULLUP" ), LNUMVAL( PINSEL_PINMODE_PULLUP )}, { LSTRKEY( "RES_TRISTATE" ), LNUMVAL( PINSEL_PINMODE_TRISTATE )}, { LSTRKEY( "RES_PULLDOWN" ), LNUMVAL( PINSEL_PINMODE_PULLDOWN )}, { LSTRKEY( "FUNCTION_0" ), LNUMVAL( PINSEL_FUNC_0 )}, { LSTRKEY( "FUNCTION_1" ), LNUMVAL( PINSEL_FUNC_1 )}, { LSTRKEY( "FUNCTION_2" ), LNUMVAL( PINSEL_FUNC_2 )}, { LSTRKEY( "FUNCTION_3" ), LNUMVAL( PINSEL_FUNC_3 )}, { LSTRKEY( "MODE_DEFAULT" ), LNUMVAL( PINSEL_PINMODE_NORMAL )}, { LSTRKEY( "MODE_OD" ), LNUMVAL( PINSEL_PINMODE_OPENDRAIN )}, #endif { LSTRKEY( "configpin" ), LFUNCVAL( configpin ) }, { LSTRKEY( "__index" ), LFUNCVAL( mbed_pio_mt_index ) }, { LNILKEY, LNILVAL } };
{ LSTRKEY( "getMrgn" ), LFUNCVAL( llora_get_Mrgn ) }, { LSTRKEY( "getGwNb" ), LFUNCVAL( llora_nothing ) }, { LSTRKEY( "getStatus" ), LFUNCVAL( llora_nothing ) }, { LSTRKEY( "getCha" ), LFUNCVAL( llora_nothing ) }, { LSTRKEY( "join" ), LFUNCVAL( llora_join ) }, { LSTRKEY( "tx" ), LFUNCVAL( llora_tx ) }, { LSTRKEY( "whenReceived" ), LFUNCVAL( llora_rx ) }, // Constant definitions { LSTRKEY( "BAND868" ), LINTVAL( 868 ) }, { LSTRKEY( "BAND433" ), LINTVAL( 433 ) }, { LSTRKEY( "OTAA" ), LINTVAL( 1 ) }, { LSTRKEY( "ABP" ), LINTVAL( 2 ) }, // Error definitions {LSTRKEY("error"), LROVAL( lora_error_map )}, {LNILKEY, LNILVAL} }; int luaopen_lora(lua_State* L) { #if !LUA_USE_ROTABLE luaL_newlib(L, lora_map); return 1; #else return 0; #endif } LUA_OS_MODULE(LORA, lora, lora_map);
#if LUA_OPTIMIZE_MEMORY > 0 && defined(LUA_COMPAT_GFIND) {LSTRKEY("gfind"), LFUNCVAL(gmatch)}, #else {LSTRKEY("gfind"), LFUNCVAL(gfind_nodef)}, #endif {LSTRKEY("gmatch"), LFUNCVAL(gmatch)}, {LSTRKEY("gsub"), LFUNCVAL(str_gsub)}, {LSTRKEY("len"), LFUNCVAL(str_len)}, {LSTRKEY("lower"), LFUNCVAL(str_lower)}, {LSTRKEY("match"), LFUNCVAL(str_match)}, {LSTRKEY("rep"), LFUNCVAL(str_rep)}, {LSTRKEY("reverse"), LFUNCVAL(str_reverse)}, {LSTRKEY("sub"), LFUNCVAL(str_sub)}, {LSTRKEY("upper"), LFUNCVAL(str_upper)}, #if LUA_OPTIMIZE_MEMORY > 0 {LSTRKEY("__index"), LROVAL(strlib)}, #endif {LNILKEY, LNILVAL} }; #if LUA_OPTIMIZE_MEMORY != 2 static void createmetatable (lua_State *L) { lua_createtable(L, 0, 1); /* create metatable for strings */ lua_pushliteral(L, ""); /* dummy string */ lua_pushvalue(L, -2); lua_setmetatable(L, -2); /* set string metatable */ lua_pop(L, 1); /* pop dummy string */ lua_pushvalue(L, -2); /* string library... */ lua_setfield(L, -2, "__index"); /* ...is the __index metamethod */ lua_pop(L, 1); /* pop metatable */
{ LSTRKEY( "heap" ), LFUNCVAL( node_heap ) }, #ifdef DEVKIT_VERSION_0_9 { LSTRKEY( "key" ), LFUNCVAL( node_key ) }, { LSTRKEY( "led" ), LFUNCVAL( node_led ) }, #endif { LSTRKEY( "input" ), LFUNCVAL( node_input ) }, { LSTRKEY( "output" ), LFUNCVAL( node_output ) }, // Moved to adc module, use adc.readvdd33() // { LSTRKEY( "readvdd33" ), LFUNCVAL( node_readvdd33) }, { LSTRKEY( "compile" ), LFUNCVAL( node_compile) }, { LSTRKEY( "CPU80MHZ" ), LNUMVAL( CPU80MHZ ) }, { LSTRKEY( "CPU160MHZ" ), LNUMVAL( CPU160MHZ ) }, { LSTRKEY( "setcpufreq" ), LFUNCVAL( node_setcpufreq) }, { LSTRKEY( "bootreason" ), LFUNCVAL( node_bootreason) }, { LSTRKEY( "restore" ), LFUNCVAL( node_restore) }, #ifdef LUA_OPTIMIZE_DEBUG { LSTRKEY( "stripdebug" ), LFUNCVAL( node_stripdebug ) }, #endif { LSTRKEY( "egc" ), LROVAL( node_egc_map ) }, { LSTRKEY( "task" ), LROVAL( node_task_map ) }, #ifdef DEVELOPMENT_TOOLS { LSTRKEY( "osprint" ), LFUNCVAL( node_osprint ) }, #endif // Combined to dsleep(us, option) // { LSTRKEY( "dsleepsetoption" ), LFUNCVAL( node_deepsleep_setoption) }, { LNILKEY, LNILVAL } }; NODEMCU_MODULE(NODE, "node", node_map, NULL);
UDL_FUNC_DECL; const char *parg = luaL_checkstring( L, 1 ); printf( UDL_PTR( "Called with argument '%s'\n" ), parg ); lua_pushinteger( L, 666 ); return 1; } UDL_MOD_FUNC static int test_meta( lua_State *L ) { lua_pushinteger( L, 777 ); return 1; } // Module function map #define MIN_OPT_LEVEL 2 #include "lrodefs.h" UDL_MOD_LTRMAP const LUA_REG_TYPE testmod_map[] = { { LSTRKEY( "testfunc" ), LFUNCVAL( test_func ) }, { LSTRKEY( "__index" ), LFUNCVAL( test_meta ) }, { LSTRKEY( "__metatable" ), LROVAL( testmod_map ) }, { LNILKEY, LNILVAL } }; UDL_MOD_FUNC int luaopen_testmod( lua_State *L ) { return 1; }
} #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 { LNILKEY, LNILVAL } }; 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( "dns" ), LFUNCVAL ( net_socket_dns ) }, // { LSTRKEY( "delete" ), LFUNCVAL ( net_socket_delete ) }, { LSTRKEY( "__gc" ), LFUNCVAL ( net_socket_delete ) }, #if LUA_OPTIMIZE_MEMORY > 0 { LSTRKEY( "__index" ), LROVAL ( net_socket_map ) },
return 1; } #pragma mark - Tables #ifdef TLS_MODULE_PRESENT extern const LUA_REG_TYPE tls_cert_map[]; #endif // Module function map static const LUA_REG_TYPE net_tcpserver_map[] = { { LSTRKEY( "listen" ), LFUNCVAL( net_listen ) }, { LSTRKEY( "getaddr" ), LFUNCVAL( net_getaddr ) }, { LSTRKEY( "close" ), LFUNCVAL( net_close ) }, { LSTRKEY( "__gc" ), LFUNCVAL( net_delete ) }, { LSTRKEY( "__index" ), LROVAL( net_tcpserver_map ) }, { LNILKEY, LNILVAL } }; static const LUA_REG_TYPE net_tcpsocket_map[] = { { LSTRKEY( "connect" ), LFUNCVAL( net_connect ) }, { LSTRKEY( "close" ), LFUNCVAL( net_close ) }, { LSTRKEY( "on" ), LFUNCVAL( net_on ) }, { LSTRKEY( "send" ), LFUNCVAL( net_send ) }, { LSTRKEY( "hold" ), LFUNCVAL( net_hold ) }, { LSTRKEY( "unhold" ), LFUNCVAL( net_unhold ) }, { LSTRKEY( "dns" ), LFUNCVAL( net_dns ) }, { LSTRKEY( "ttl" ), LFUNCVAL( net_ttl ) }, { LSTRKEY( "getpeer" ), LFUNCVAL( net_getpeer ) }, { LSTRKEY( "getaddr" ), LFUNCVAL( net_getaddr ) }, { LSTRKEY( "__gc" ), LFUNCVAL( net_delete ) },
{ { LSTRKEY( "clrscr" ), LFUNCVAL( luaterm_clrscr ) }, { LSTRKEY( "clreol" ), LFUNCVAL( luaterm_clreol ) }, { LSTRKEY( "moveto" ), LFUNCVAL( luaterm_moveto ) }, { LSTRKEY( "moveup" ), LFUNCVAL( luaterm_moveup ) }, { LSTRKEY( "movedown" ), LFUNCVAL( luaterm_movedown ) }, { LSTRKEY( "moveleft" ), LFUNCVAL( luaterm_moveleft ) }, { LSTRKEY( "moveright" ), LFUNCVAL( luaterm_moveright ) }, { LSTRKEY( "getlines" ), LFUNCVAL( luaterm_getlines ) }, { LSTRKEY( "getcols" ), LFUNCVAL( luaterm_getcols ) }, { LSTRKEY( "print" ), LFUNCVAL( luaterm_print ) }, { LSTRKEY( "getcx" ), LFUNCVAL( luaterm_getcx ) }, { LSTRKEY( "getcy" ), LFUNCVAL( luaterm_getcy ) }, { LSTRKEY( "getchar" ), LFUNCVAL( luaterm_getchar ) }, #if LUA_OPTIMIZE_MEMORY > 0 { LSTRKEY( "__metatable" ), LROVAL( term_map ) }, { LSTRKEY( "NOWAIT" ), LNUMVAL( TERM_INPUT_DONT_WAIT ) }, { LSTRKEY( "WAIT" ), LNUMVAL( TERM_INPUT_WAIT ) }, #endif { LSTRKEY( "__index" ), LFUNCVAL( term_mt_index ) }, { LNILKEY, LNILVAL } }; LUALIB_API int luaopen_term( lua_State* L ) { #ifdef BUILD_TERM #if LUA_OPTIMIZE_MEMORY > 0 return 0; #else // #if LUA_OPTIMIZE_MEMORY > 0 // Register methods luaL_register( L, AUXLIB_TERM, term_map );
const LUA_REG_TYPE cpu_map[] = { { LSTRKEY( "w32" ), LFUNCVAL( cpu_w32 ) }, { LSTRKEY( "r32" ), LFUNCVAL( cpu_r32 ) }, { LSTRKEY( "w16" ), LFUNCVAL( cpu_w16 ) }, { LSTRKEY( "r16" ), LFUNCVAL( cpu_r16 ) }, { LSTRKEY( "w8" ), LFUNCVAL( cpu_w8 ) }, { LSTRKEY( "r8" ), LFUNCVAL( cpu_r8 ) }, { LSTRKEY( "cli" ), LFUNCVAL( cpu_cli ) }, { LSTRKEY( "sei" ), LFUNCVAL( cpu_sei ) }, { LSTRKEY( "clock" ), LFUNCVAL( cpu_clock ) }, #ifdef BUILD_LUA_INT_HANDLERS { LSTRKEY( "set_int_handler" ), LFUNCVAL( cpu_set_int_handler ) }, #endif #if defined( PLATFORM_CPU_CONSTANTS ) && LUA_OPTIMIZE_MEMORY > 0 { LSTRKEY( "__metatable" ), LROVAL( cpu_map ) }, #endif #ifdef PLATFORM_CPU_CONSTANTS { LSTRKEY( "__index" ), LFUNCVAL( cpu_mt_index ) }, #endif { LNILKEY, LNILVAL } }; LUALIB_API int luaopen_cpu( lua_State *L ) { #ifdef BUILD_LUA_INT_HANDLERS cpu_int_handler_active = 0; #endif #if LUA_OPTIMIZE_MEMORY > 0 return 0; #else // #if LUA_OPTIMIZE_MEMORY > 0
{ LSTRKEY( "stop" ), LFUNCVAL ( lwifi_ap_stop ) }, #if LUA_OPTIMIZE_MEMORY > 0 #endif { LNILKEY, LNILVAL } }; const LUA_REG_TYPE wifi_map[] = { { LSTRKEY( "startap" ), LFUNCVAL( lwifi_startap )}, { LSTRKEY( "startsta" ), LFUNCVAL( lwifi_startsta )}, { LSTRKEY( "scan" ), LFUNCVAL( lwifi_scan ) }, { LSTRKEY( "stop" ), LFUNCVAL( lwifi_stop ) }, { LSTRKEY( "powersave" ), LFUNCVAL( lwifi_powersave ) }, //{ LSTRKEY( "poweron" ), LFUNCVAL( lwifi_poweron ) }, { LSTRKEY( "poweroff" ), LFUNCVAL( lwifi_poweroff ) }, #if LUA_OPTIMIZE_MEMORY > 0 { LSTRKEY( "sta" ), LROVAL( wifi_station_map ) }, { LSTRKEY( "ap" ), LROVAL( wifi_ap_map ) }, #endif {LNILKEY, LNILVAL} }; LUALIB_API int luaopen_wifi(lua_State *L) { #if LUA_OPTIMIZE_MEMORY > 0 return 0; #else luaL_register( L, EXLIB_WIFI, wifi_map ); // Setup the new tables (station and ap) inside wifi lua_newtable( L ); luaL_register( L, NULL, wifi_station_map ); lua_setfield( L, -2, "sta" );
// Send the buffer ws2812_write(buffer->values, buffer->colorsPerLed*buffer->size); return 0; } static const LUA_REG_TYPE ws2812_buffer_map[] = { { LSTRKEY( "fade" ), LFUNCVAL( ws2812_buffer_fade )}, { LSTRKEY( "fill" ), LFUNCVAL( ws2812_buffer_fill )}, { LSTRKEY( "get" ), LFUNCVAL( ws2812_buffer_get )}, { LSTRKEY( "set" ), LFUNCVAL( ws2812_buffer_set )}, { LSTRKEY( "size" ), LFUNCVAL( ws2812_buffer_size )}, { LSTRKEY( "write" ), LFUNCVAL( ws2812_buffer_write )}, { LSTRKEY( "__index" ), LROVAL ( ws2812_buffer_map )}, { LNILKEY, LNILVAL} }; static const LUA_REG_TYPE ws2812_map[] = { { LSTRKEY( "write" ), LFUNCVAL( ws2812_writegrb )}, { LSTRKEY( "newBuffer" ), LFUNCVAL( ws2812_new_buffer )}, { LSTRKEY( "init" ), LFUNCVAL( ws2812_init )}, { LNILKEY, LNILVAL} }; int luaopen_ws2812(lua_State *L) { // TODO: Make sure that the GPIO system is initialized luaL_rometatable(L, "ws2812.buffer", (void *)ws2812_buffer_map); // create metatable for ws2812.buffer return 0;
{ LSTRKEY( "stop" ), LFUNCVAL( wifi_ap_dhcp_stop ) }, { LNILKEY, LNILVAL } }; static const LUA_REG_TYPE wifi_ap_map[] = { { LSTRKEY( "config" ), LFUNCVAL( wifi_ap_config ) }, { LSTRKEY( "getip" ), LFUNCVAL ( wifi_ap_getip ) }, { LSTRKEY( "setip" ), LFUNCVAL ( wifi_ap_setip ) }, { LSTRKEY( "getbroadcast" ), LFUNCVAL ( wifi_ap_getbroadcast) }, { LSTRKEY( "getmac" ), LFUNCVAL ( wifi_ap_getmac ) }, { LSTRKEY( "setmac" ), LFUNCVAL ( wifi_ap_setmac ) }, { LSTRKEY( "getclient" ), LFUNCVAL ( wifi_ap_listclient ) }, { LSTRKEY( "getconfig" ), LFUNCVAL( wifi_ap_getconfig ) }, #if LUA_OPTIMIZE_MEMORY > 0 { LSTRKEY( "dhcp" ), LROVAL( wifi_ap_dhcp_map ) }, // { LSTRKEY( "__metatable" ), LROVAL( wifi_ap_map ) }, #endif { LNILKEY, LNILVAL } }; const LUA_REG_TYPE wifi_map[] = { { LSTRKEY( "setmode" ), LFUNCVAL( wifi_setmode ) }, { LSTRKEY( "getmode" ), LFUNCVAL( wifi_getmode ) }, { LSTRKEY( "getchannel" ), LFUNCVAL( wifi_getchannel ) }, { LSTRKEY( "setphymode" ), LFUNCVAL( wifi_setphymode ) }, { LSTRKEY( "getphymode" ), LFUNCVAL( wifi_getphymode ) }, { LSTRKEY( "startsmart" ), LFUNCVAL( wifi_start_smart ) }, { LSTRKEY( "stopsmart" ), LFUNCVAL( wifi_exit_smart ) },
{ LSTRKEY( "setFontPosBottom" ), LFUNCVAL( lucg_setFontPosBottom ) }, { LSTRKEY( "setFontPosCenter" ), LFUNCVAL( lucg_setFontPosCenter ) }, { LSTRKEY( "setFontPosTop" ), LFUNCVAL( lucg_setFontPosTop ) }, { LSTRKEY( "setMaxClipRange" ), LFUNCVAL( lucg_setMaxClipRange ) }, { LSTRKEY( "setPrintDir" ), LFUNCVAL( lucg_setPrintDir ) }, { LSTRKEY( "setPrintPos" ), LFUNCVAL( lucg_setPrintPos ) }, { LSTRKEY( "setRotate90" ), LFUNCVAL( lucg_setRotate90 ) }, { LSTRKEY( "setRotate180" ), LFUNCVAL( lucg_setRotate180 ) }, { LSTRKEY( "setRotate270" ), LFUNCVAL( lucg_setRotate270 ) }, { LSTRKEY( "setScale2x2" ), LFUNCVAL( lucg_setScale2x2 ) }, { LSTRKEY( "undoClipRange" ), LFUNCVAL( lucg_setMaxClipRange ) }, { LSTRKEY( "undoRotate" ), LFUNCVAL( lucg_undoRotate ) }, { LSTRKEY( "undoScale" ), LFUNCVAL( lucg_undoScale ) }, { LSTRKEY( "__gc" ), LFUNCVAL( lucg_close_display ) }, { LSTRKEY( "__index" ), LROVAL ( lucg_display_map ) }, { LNILKEY, LNILVAL } }; static const LUA_REG_TYPE lucg_map[] = { #undef UCG_DISPLAY_TABLE_ENTRY #define UCG_DISPLAY_TABLE_ENTRY(binding, device, extension) { LSTRKEY( #binding ), LFUNCVAL ( lucg_ ##binding ) }, UCG_DISPLAY_TABLE // Register fonts #undef UCG_FONT_TABLE_ENTRY #define UCG_FONT_TABLE_ENTRY(font) { LSTRKEY( #font ), LUDATA( (void *)(ucg_ ## font) ) }, UCG_FONT_TABLE // Font modes
{ LSTRKEY( "PAR_EVEN" ), LNUMVAL( PLATFORM_UART_PARITY_EVEN ) }, { LSTRKEY( "PAR_ODD" ), LNUMVAL( PLATFORM_UART_PARITY_ODD ) }, { LSTRKEY( "PAR_NONE" ), LNUMVAL( PLATFORM_UART_PARITY_NONE ) }, { LSTRKEY( "PAR_MARK" ), LNUMVAL( PLATFORM_UART_PARITY_MARK ) }, { LSTRKEY( "PAR_SPACE" ), LNUMVAL( PLATFORM_UART_PARITY_SPACE ) }, { LSTRKEY( "STOP_1" ), LNUMVAL( PLATFORM_UART_STOPBITS_1 ) }, { LSTRKEY( "STOP_1_5" ), LNUMVAL( PLATFORM_UART_STOPBITS_1_5 ) }, { LSTRKEY( "STOP_2" ), LNUMVAL( PLATFORM_UART_STOPBITS_2 ) }, { LSTRKEY( "NO_TIMEOUT" ), LNUMVAL( 0 ) }, { LSTRKEY( "INF_TIMEOUT" ), LNUMVAL( UART_INFINITE_TIMEOUT ) }, { LSTRKEY( "FLOW_NONE" ), LNUMVAL( PLATFORM_UART_FLOW_NONE ) }, { LSTRKEY( "FLOW_RTS" ), LNUMVAL( PLATFORM_UART_FLOW_RTS ) }, { LSTRKEY( "FLOW_CTS" ), LNUMVAL( PLATFORM_UART_FLOW_CTS ) }, #endif #if LUA_OPTIMIZE_MEMORY > 0 && ( defined( BUILD_SERMUX ) || defined( BUILD_USB_CDC ) ) { LSTRKEY( "__metatable" ), LROVAL( uart_map ) }, { LSTRKEY( "__index" ), LFUNCVAL( uart_mt_index ) }, #endif { LNILKEY, LNILVAL } }; LUALIB_API int luaopen_uart( lua_State *L ) { #if LUA_OPTIMIZE_MEMORY > 0 return 0; #else // #if LUA_OPTIMIZE_MEMORY > 0 luaL_register( L, AUXLIB_UART, uart_map ); MOD_REG_NUMBER( L, "PAR_EVEN", PLATFORM_UART_PARITY_EVEN ); MOD_REG_NUMBER( L, "PAR_ODD", PLATFORM_UART_PARITY_ODD ); MOD_REG_NUMBER( L, "PAR_NONE", PLATFORM_UART_PARITY_NONE );
return 1; } else { pud->drv = NULL; return 0; } } static const LUA_REG_TYPE pcm_driver_map[] = { { LSTRKEY( "play" ), LFUNCVAL( pcm_drv_play ) }, { LSTRKEY( "pause" ), LFUNCVAL( pcm_drv_pause ) }, { LSTRKEY( "stop" ), LFUNCVAL( pcm_drv_stop ) }, { LSTRKEY( "close" ), LFUNCVAL( pcm_drv_close ) }, { LSTRKEY( "on" ), LFUNCVAL( pcm_drv_on ) }, { LSTRKEY( "__gc" ), LFUNCVAL( pcm_drv_free ) }, { LSTRKEY( "__index" ), LROVAL( pcm_driver_map ) }, { LNILKEY, LNILVAL } }; // Module function map static const LUA_REG_TYPE pcm_map[] = { { LSTRKEY( "new" ), LFUNCVAL( pcm_new ) }, { LSTRKEY( "SD" ), LNUMVAL( PCM_DRIVER_SD ) }, { LSTRKEY( "RATE_1K" ), LNUMVAL( PCM_RATE_1K ) }, { LSTRKEY( "RATE_2K" ), LNUMVAL( PCM_RATE_2K ) }, { LSTRKEY( "RATE_4K" ), LNUMVAL( PCM_RATE_4K ) }, { LSTRKEY( "RATE_5K" ), LNUMVAL( PCM_RATE_5K ) }, { LSTRKEY( "RATE_8K" ), LNUMVAL( PCM_RATE_8K ) }, { LSTRKEY( "RATE_10K" ), LNUMVAL( PCM_RATE_10K ) }, { LSTRKEY( "RATE_12K" ), LNUMVAL( PCM_RATE_12K ) }, { LSTRKEY( "RATE_16K" ), LNUMVAL( PCM_RATE_16K ) },
// Module function map static const LUA_REG_TYPE tmr_dyn_map[] = { { LSTRKEY( "register" ), LFUNCVAL( tmr_register ) }, { LSTRKEY( "alarm" ), LFUNCVAL( tmr_alarm ) }, { LSTRKEY( "start" ), LFUNCVAL( tmr_start ) }, { LSTRKEY( "stop" ), LFUNCVAL( tmr_stop ) }, { LSTRKEY( "unregister" ), LFUNCVAL( tmr_unregister ) }, { LSTRKEY( "state" ), LFUNCVAL( tmr_state ) }, { LSTRKEY( "interval" ), LFUNCVAL( tmr_interval) }, #ifdef TIMER_SUSPEND_ENABLE { LSTRKEY( "suspend" ), LFUNCVAL( tmr_suspend ) }, { LSTRKEY( "resume" ), LFUNCVAL( tmr_resume ) }, #endif { LSTRKEY( "__gc" ), LFUNCVAL( tmr_unregister ) }, { LSTRKEY( "__index" ), LROVAL( tmr_dyn_map ) }, { LNILKEY, LNILVAL } }; static const LUA_REG_TYPE tmr_map[] = { { LSTRKEY( "delay" ), LFUNCVAL( tmr_delay ) }, { LSTRKEY( "now" ), LFUNCVAL( tmr_now ) }, { LSTRKEY( "wdclr" ), LFUNCVAL( tmr_wdclr ) }, { LSTRKEY( "softwd" ), LFUNCVAL( tmr_softwd ) }, { LSTRKEY( "time" ), LFUNCVAL( tmr_time ) }, { LSTRKEY( "register" ), LFUNCVAL( tmr_register ) }, { LSTRKEY( "alarm" ), LFUNCVAL( tmr_alarm ) }, { LSTRKEY( "start" ), LFUNCVAL( tmr_start ) }, { LSTRKEY( "stop" ), LFUNCVAL( tmr_stop ) }, #ifdef TIMER_SUSPEND_ENABLE { LSTRKEY( "suspend" ), LFUNCVAL( tmr_suspend ) },
// 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 { LNILKEY, LNILVAL } }; const LUA_REG_TYPE mqtt_map[] = { { LSTRKEY( "Client" ), LFUNCVAL ( mqtt_socket_client ) }, #if LUA_OPTIMIZE_MEMORY > 0 { LSTRKEY( "__metatable" ), LROVAL( mqtt_map ) }, #endif { LNILKEY, LNILVAL } }; LUALIB_API int luaopen_mqtt( lua_State *L )