How to add your own module - SmartArduino/SZDOITWiKi GitHub Wiki
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();