Skip to content

How to add your own module

yichone edited this page Nov 30, 2016 · 6 revisions

To add your own module is easy. Just follow the steps below:

  • Add the module source code to the path: LuaNode_Esp32/components/modules
  • If you add a module, say my_module, and your code named my_module.c, then you should register your module. Use the macro named LUANODE_MODULE to register your module.
// The registration macro  // The first parameter MY_MODULE is a string to be used for registration. Use your module name.  // The second parameter is the module name to be required in lua, you invoke the methods in your module by using this name.  // The third parameter is a key-value map for your module methods and their names.  // The last parameter is a init function, which will be called when module initialize. Usually, you can set it for  NULL. LUANODE_MODULE(MY_MODULE, "my_module", my_module_map, NULL);
  • How to add methods to your module? Add your methods as well as their name to the key-value map mentioned above.
// The module function map // In this example, we have two custom methods for my_module. The two methods are my_module_start and my_module_stop, // and their corresponding name is start and stop respectively. static const LUA_REG_TYPE my_module_map[] = { { LSTRKEY( "start" ), LFUNCVAL( my_module_start ) }, { LSTRKEY( "stop" ), LFUNCVAL( my_module_stop ) }, { LNILKEY, LNILVAL } };

The implementation of your method:

void my_module_start(void) { printf("My module start\n"); } void my_module_stop(void) { printf("My module stop\n"); } The methods only output test message. After adding your module, you can invoke them in Lua like this: my_module.start(); my_module.stop();
Clone this wiki locally