2021-02-07 19:19:08 +00:00
|
|
|
/********************************************************************
|
|
|
|
** Copyright (c) 2018-2020 Guan Wenliang
|
|
|
|
** This file is part of the Berry default interpreter.
|
|
|
|
** skiars@qq.com, https://github.com/Skiars/berry
|
|
|
|
** See Copyright Notice in the LICENSE file or at
|
|
|
|
** https://github.com/Skiars/berry/blob/master/LICENSE
|
|
|
|
********************************************************************/
|
|
|
|
#include "berry.h"
|
|
|
|
|
|
|
|
/* this file contains the declaration of the module table. */
|
|
|
|
|
|
|
|
/* default modules declare */
|
|
|
|
be_extern_native_module(string);
|
|
|
|
be_extern_native_module(json);
|
|
|
|
be_extern_native_module(math);
|
|
|
|
be_extern_native_module(time);
|
|
|
|
be_extern_native_module(os);
|
2021-05-26 14:53:53 +01:00
|
|
|
be_extern_native_module(global);
|
2021-02-07 19:19:08 +00:00
|
|
|
be_extern_native_module(sys);
|
|
|
|
be_extern_native_module(debug);
|
|
|
|
be_extern_native_module(gc);
|
2021-03-27 18:02:22 +00:00
|
|
|
be_extern_native_module(solidify);
|
2021-07-22 21:36:18 +01:00
|
|
|
be_extern_native_module(introspect);
|
2021-08-23 12:29:15 +01:00
|
|
|
be_extern_native_module(strict);
|
2022-06-15 21:00:31 +01:00
|
|
|
be_extern_native_module(undefined);
|
2021-02-07 19:19:08 +00:00
|
|
|
|
2021-12-12 17:56:11 +00:00
|
|
|
/* Berry extensions */
|
|
|
|
be_extern_native_module(cb);
|
|
|
|
|
2021-02-13 11:01:45 +00:00
|
|
|
/* Tasmota specific */
|
2021-10-20 18:04:18 +01:00
|
|
|
be_extern_native_module(python_compat);
|
2021-11-25 21:57:37 +00:00
|
|
|
be_extern_native_module(re);
|
2022-02-15 20:58:05 +00:00
|
|
|
be_extern_native_module(mqtt);
|
2021-10-03 10:54:29 +01:00
|
|
|
be_extern_native_module(persist);
|
2021-11-13 19:45:27 +00:00
|
|
|
be_extern_native_module(autoconf);
|
2021-11-15 22:06:04 +00:00
|
|
|
be_extern_native_module(tapp);
|
2021-04-04 18:36:25 +01:00
|
|
|
be_extern_native_module(light);
|
2021-04-03 17:06:40 +01:00
|
|
|
be_extern_native_module(gpio);
|
2021-11-13 19:45:27 +00:00
|
|
|
be_extern_native_module(display);
|
2021-03-13 21:42:24 +00:00
|
|
|
be_extern_native_module(energy);
|
2021-05-28 21:37:06 +01:00
|
|
|
be_extern_native_module(webserver);
|
2021-06-03 12:23:25 +01:00
|
|
|
be_extern_native_module(flash);
|
2021-07-18 21:39:59 +01:00
|
|
|
be_extern_native_module(path);
|
2021-11-04 07:17:42 +00:00
|
|
|
be_extern_native_module(unishox);
|
2022-02-13 21:59:43 +00:00
|
|
|
be_extern_native_module(hue_ntv);
|
|
|
|
be_extern_native_module(hue_bridge);
|
2022-01-30 22:05:32 +00:00
|
|
|
be_extern_native_module(uuid);
|
2021-11-19 21:09:35 +00:00
|
|
|
be_extern_native_module(animate);
|
2022-04-29 11:03:19 +01:00
|
|
|
be_extern_native_module(partition_core);
|
2022-04-29 09:19:47 +01:00
|
|
|
be_extern_native_module(crc);
|
2022-06-07 20:59:27 +01:00
|
|
|
be_extern_native_module(crypto);
|
2022-07-02 20:30:04 +01:00
|
|
|
be_extern_native_module(ULP);
|
2022-11-27 17:08:53 +00:00
|
|
|
be_extern_native_module(mdns);
|
2022-05-24 21:45:04 +01:00
|
|
|
#ifdef USE_ZIGBEE
|
|
|
|
be_extern_native_module(zigbee);
|
|
|
|
#endif // USE_ZIGBEE
|
2022-09-10 15:38:12 +01:00
|
|
|
// BLE
|
|
|
|
be_extern_native_module(MI32);
|
|
|
|
be_extern_native_module(BLE);
|
2021-04-19 07:40:11 +01:00
|
|
|
#ifdef USE_LVGL
|
2021-10-15 18:34:37 +01:00
|
|
|
be_extern_native_module(lv);
|
2022-01-02 15:16:10 +00:00
|
|
|
be_extern_native_module(lv_extra);
|
2021-12-27 17:12:38 +00:00
|
|
|
be_extern_native_module(lv_tasmota);
|
2022-05-20 20:29:39 +01:00
|
|
|
#ifdef USE_LVGL_HASPMOTA
|
|
|
|
be_extern_native_module(haspmota);
|
|
|
|
#endif // USE_LVGL_HASPMOTA
|
2021-04-19 07:40:11 +01:00
|
|
|
#endif // USE_LVGL
|
2023-02-03 23:00:21 +00:00
|
|
|
#ifdef USE_MATTER_DEVICE
|
|
|
|
be_extern_native_module(matter);
|
|
|
|
#endif // USE_MATTER_DEVICE
|
2021-02-13 11:01:45 +00:00
|
|
|
|
2021-02-07 19:19:08 +00:00
|
|
|
/* user-defined modules declare start */
|
|
|
|
|
|
|
|
/* user-defined modules declare end */
|
|
|
|
|
|
|
|
/* module list declaration */
|
|
|
|
BERRY_LOCAL const bntvmodule* const be_module_table[] = {
|
|
|
|
/* default modules register */
|
|
|
|
#if BE_USE_STRING_MODULE
|
|
|
|
&be_native_module(string),
|
|
|
|
#endif
|
|
|
|
#if BE_USE_JSON_MODULE
|
|
|
|
&be_native_module(json),
|
|
|
|
#endif
|
|
|
|
#if BE_USE_MATH_MODULE
|
|
|
|
&be_native_module(math),
|
|
|
|
#endif
|
|
|
|
#if BE_USE_TIME_MODULE
|
|
|
|
&be_native_module(time),
|
|
|
|
#endif
|
|
|
|
#if BE_USE_OS_MODULE
|
|
|
|
&be_native_module(os),
|
|
|
|
#endif
|
2021-05-26 14:53:53 +01:00
|
|
|
#if BE_USE_GLOBAL_MODULE
|
|
|
|
&be_native_module(global),
|
|
|
|
#endif
|
2021-02-07 19:19:08 +00:00
|
|
|
#if BE_USE_SYS_MODULE
|
|
|
|
&be_native_module(sys),
|
|
|
|
#endif
|
|
|
|
#if BE_USE_DEBUG_MODULE
|
|
|
|
&be_native_module(debug),
|
|
|
|
#endif
|
|
|
|
#if BE_USE_GC_MODULE
|
|
|
|
&be_native_module(gc),
|
2021-03-27 18:02:22 +00:00
|
|
|
#endif
|
|
|
|
#if BE_USE_SOLIDIFY_MODULE
|
|
|
|
&be_native_module(solidify),
|
2021-07-22 21:36:18 +01:00
|
|
|
#endif
|
|
|
|
#if BE_USE_INTROSPECT_MODULE
|
|
|
|
&be_native_module(introspect),
|
2021-08-16 19:46:09 +01:00
|
|
|
#endif
|
|
|
|
#if BE_USE_STRICT_MODULE
|
|
|
|
&be_native_module(strict),
|
2021-02-07 19:19:08 +00:00
|
|
|
#endif
|
2022-06-15 21:00:31 +01:00
|
|
|
&be_native_module(undefined),
|
2021-12-12 17:56:11 +00:00
|
|
|
|
2022-09-12 21:02:25 +01:00
|
|
|
&be_native_module(re),
|
|
|
|
#ifdef TASMOTA
|
2021-12-12 17:56:11 +00:00
|
|
|
/* Berry extensions */
|
|
|
|
&be_native_module(cb),
|
|
|
|
|
2021-02-07 19:19:08 +00:00
|
|
|
/* user-defined modules register start */
|
2021-04-24 11:11:06 +01:00
|
|
|
|
2021-10-20 18:04:18 +01:00
|
|
|
&be_native_module(python_compat),
|
2021-07-18 21:39:59 +01:00
|
|
|
&be_native_module(path),
|
2022-02-15 20:58:05 +00:00
|
|
|
&be_native_module(mqtt),
|
2021-10-03 10:54:29 +01:00
|
|
|
&be_native_module(persist),
|
2021-11-13 19:45:27 +00:00
|
|
|
#ifdef USE_AUTOCONF
|
|
|
|
&be_native_module(autoconf),
|
|
|
|
#endif // USE_AUTOCONF
|
2021-11-15 22:06:04 +00:00
|
|
|
&be_native_module(tapp),
|
2021-04-03 17:06:40 +01:00
|
|
|
&be_native_module(gpio),
|
2021-11-13 19:45:27 +00:00
|
|
|
#ifdef USE_DISPLAY
|
|
|
|
&be_native_module(display),
|
|
|
|
#endif // USE_DISPLAY
|
2021-04-24 11:11:06 +01:00
|
|
|
#ifdef USE_LIGHT
|
2021-04-04 18:36:25 +01:00
|
|
|
&be_native_module(light),
|
2021-04-24 11:11:06 +01:00
|
|
|
#endif
|
2022-02-13 21:59:43 +00:00
|
|
|
#if defined(USE_EMULATION) && defined(USE_EMULATION_HUE)
|
|
|
|
&be_native_module(hue_ntv),
|
|
|
|
&be_native_module(hue_bridge),
|
|
|
|
#endif
|
2021-04-19 07:40:11 +01:00
|
|
|
|
2022-01-30 22:05:32 +00:00
|
|
|
&be_native_module(uuid),
|
2021-11-04 07:17:42 +00:00
|
|
|
#ifdef USE_UNISHOX_COMPRESSION
|
|
|
|
&be_native_module(unishox),
|
|
|
|
#endif // USE_UNISHOX_COMPRESSION
|
2021-11-19 21:09:35 +00:00
|
|
|
&be_native_module(animate),
|
2021-11-04 07:17:42 +00:00
|
|
|
|
2021-04-19 07:40:11 +01:00
|
|
|
#ifdef USE_LVGL
|
2021-10-15 18:34:37 +01:00
|
|
|
&be_native_module(lv),
|
2022-01-02 15:16:10 +00:00
|
|
|
&be_native_module(lv_extra),
|
2021-12-27 17:12:38 +00:00
|
|
|
&be_native_module(lv_tasmota),
|
2022-05-20 20:29:39 +01:00
|
|
|
#ifdef USE_LVGL_HASPMOTA
|
|
|
|
&be_native_module(haspmota),
|
|
|
|
#endif // USE_LVGL_HASPMOTA
|
2021-04-19 07:40:11 +01:00
|
|
|
#endif // USE_LVGL
|
2021-04-24 11:11:06 +01:00
|
|
|
#ifdef USE_ENERGY_SENSOR
|
2021-03-13 21:42:24 +00:00
|
|
|
&be_native_module(energy),
|
2021-04-24 11:11:06 +01:00
|
|
|
#endif // USE_ENERGY_SENSOR
|
2021-05-28 21:37:06 +01:00
|
|
|
#ifdef USE_WEBSERVER
|
|
|
|
&be_native_module(webserver),
|
|
|
|
#endif // USE_WEBSERVER
|
2022-05-24 21:45:04 +01:00
|
|
|
#ifdef USE_ZIGBEE
|
|
|
|
&be_native_module(zigbee),
|
|
|
|
#endif // USE_ZIGBEE
|
2021-06-03 12:23:25 +01:00
|
|
|
&be_native_module(flash),
|
2022-04-29 11:03:19 +01:00
|
|
|
&be_native_module(partition_core),
|
2022-04-29 09:19:47 +01:00
|
|
|
&be_native_module(crc),
|
2022-06-07 20:59:27 +01:00
|
|
|
&be_native_module(crypto),
|
2022-11-01 14:55:01 +00:00
|
|
|
#if defined(USE_BERRY_ULP) && ((CONFIG_IDF_TARGET_ESP32) || defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32S3))
|
2022-07-02 20:30:04 +01:00
|
|
|
&be_native_module(ULP),
|
|
|
|
#endif // USE_BERRY_ULP
|
2022-09-10 15:38:12 +01:00
|
|
|
#if defined(USE_MI_ESP32) && !defined(USE_BLE_ESP32)
|
|
|
|
&be_native_module(MI32),
|
|
|
|
&be_native_module(BLE),
|
|
|
|
#endif //USE_MI_ESP32
|
2022-11-27 17:08:53 +00:00
|
|
|
#ifdef USE_DISCOVERY
|
|
|
|
&be_native_module(mdns),
|
|
|
|
#endif // USE_DISCOVERY
|
2023-02-03 23:00:21 +00:00
|
|
|
#ifdef USE_MATTER_DEVICE
|
|
|
|
&be_native_module(matter),
|
|
|
|
#endif // USE_MATTER_DEVICE
|
2022-09-12 21:02:25 +01:00
|
|
|
#endif // TASMOTA
|
2021-02-07 19:19:08 +00:00
|
|
|
/* user-defined modules register end */
|
|
|
|
NULL /* do not remove */
|
|
|
|
};
|
2021-03-27 18:02:22 +00:00
|
|
|
|
2022-11-06 09:52:17 +00:00
|
|
|
be_extern_native_class(dyn);
|
2022-03-19 13:27:03 +00:00
|
|
|
be_extern_native_class(tasmota);
|
|
|
|
be_extern_native_class(Trigger);
|
|
|
|
be_extern_native_class(Driver);
|
|
|
|
be_extern_native_class(ctypes_bytes);
|
|
|
|
be_extern_native_class(ctypes_bytes_dyn);
|
|
|
|
be_extern_native_class(serial);
|
|
|
|
be_extern_native_class(ccronexpr);
|
|
|
|
be_extern_native_class(tasmota_log_reader);
|
|
|
|
be_extern_native_class(light_state);
|
|
|
|
be_extern_native_class(Wire);
|
|
|
|
be_extern_native_class(I2C_Driver);
|
|
|
|
be_extern_native_class(AXP192);
|
2022-09-18 22:12:57 +01:00
|
|
|
be_extern_native_class(AXP202);
|
2022-03-19 13:27:03 +00:00
|
|
|
be_extern_native_class(OneWire);
|
|
|
|
be_extern_native_class(Leds_ntv);
|
|
|
|
be_extern_native_class(Leds);
|
|
|
|
be_extern_native_class(Leds_animator);
|
|
|
|
be_extern_native_class(AudioOutput);
|
|
|
|
be_extern_native_class(AudioGenerator);
|
|
|
|
be_extern_native_class(AudioFileSource);
|
|
|
|
be_extern_native_class(AudioOutputI2S);
|
|
|
|
be_extern_native_class(AudioGeneratorWAV);
|
|
|
|
be_extern_native_class(AudioGeneratorMP3);
|
|
|
|
be_extern_native_class(AudioFileSourceFS);
|
|
|
|
be_extern_native_class(AudioOpusDecoder);
|
|
|
|
be_extern_native_class(md5);
|
|
|
|
be_extern_native_class(udp);
|
|
|
|
be_extern_native_class(webclient);
|
|
|
|
be_extern_native_class(tcpclient);
|
2022-07-07 18:28:17 +01:00
|
|
|
be_extern_native_class(tcpserver);
|
2022-06-07 21:20:42 +01:00
|
|
|
be_extern_native_class(energy_struct);
|
2022-03-19 13:27:03 +00:00
|
|
|
// LVGL core classes
|
|
|
|
be_extern_native_class(lv_color);
|
|
|
|
be_extern_native_class(lv_font);
|
|
|
|
be_extern_native_class(LVGL_glob);
|
|
|
|
// LVGL custom classes
|
|
|
|
be_extern_native_class(lv_signal_bars);
|
|
|
|
be_extern_native_class(lv_wifi_bars);
|
|
|
|
be_extern_native_class(lv_wifi_bars_icon);
|
|
|
|
be_extern_native_class(lv_signal_arcs);
|
|
|
|
be_extern_native_class(lv_wifi_arcs);
|
|
|
|
be_extern_native_class(lv_wifi_arcs_icon);
|
2022-03-27 15:57:54 +01:00
|
|
|
be_extern_native_class(lv_clock);
|
2022-03-19 13:27:03 +00:00
|
|
|
be_extern_native_class(lv_clock_icon);
|
2021-03-27 18:02:22 +00:00
|
|
|
|
2022-03-21 18:35:57 +00:00
|
|
|
be_extern_native_class(int64);
|
|
|
|
|
2022-03-19 13:27:03 +00:00
|
|
|
BERRY_LOCAL bclass_array be_class_table = {
|
2022-09-12 21:02:25 +01:00
|
|
|
#ifdef TASMOTA
|
2022-03-19 13:27:03 +00:00
|
|
|
/* first list are direct classes */
|
2022-11-06 09:52:17 +00:00
|
|
|
&be_native_class(dyn),
|
2022-03-19 13:27:03 +00:00
|
|
|
&be_native_class(tasmota),
|
|
|
|
&be_native_class(Trigger),
|
|
|
|
&be_native_class(Driver),
|
|
|
|
&be_native_class(serial),
|
|
|
|
&be_native_class(ccronexpr),
|
|
|
|
&be_native_class(ctypes_bytes),
|
|
|
|
&be_native_class(ctypes_bytes_dyn),
|
|
|
|
&be_native_class(tasmota_log_reader),
|
|
|
|
#ifdef USE_LIGHT
|
|
|
|
&be_native_class(light_state),
|
|
|
|
#endif
|
|
|
|
#if defined(USE_ONEWIRE) || defined(USE_DS18x20)
|
|
|
|
&be_native_class(OneWire),
|
2021-07-20 20:05:10 +01:00
|
|
|
#endif
|
2022-03-19 13:27:03 +00:00
|
|
|
#ifdef USE_I2C
|
|
|
|
&be_native_class(Wire),
|
|
|
|
&be_native_class(I2C_Driver),
|
|
|
|
&be_native_class(AXP192),
|
2022-09-18 22:12:57 +01:00
|
|
|
&be_native_class(AXP202),
|
2022-03-19 13:27:03 +00:00
|
|
|
#endif // USE_I2C
|
|
|
|
&be_native_class(md5),
|
|
|
|
#ifdef USE_WEBCLIENT
|
|
|
|
&be_native_class(udp),
|
|
|
|
&be_native_class(webclient),
|
|
|
|
&be_native_class(tcpclient),
|
|
|
|
#endif // USE_WEBCLIENT
|
2022-07-07 18:28:17 +01:00
|
|
|
#ifdef USE_BERRY_TCPSERVER
|
|
|
|
&be_native_class(tcpserver),
|
|
|
|
#endif // USE_BERRY_TCPSERVER
|
2022-03-19 13:27:03 +00:00
|
|
|
#ifdef USE_WS2812
|
|
|
|
&be_native_class(Leds_ntv),
|
|
|
|
&be_native_class(Leds),
|
|
|
|
&be_native_class(Leds_animator),
|
|
|
|
#endif // USE_WS2812
|
2022-06-07 21:20:42 +01:00
|
|
|
#ifdef USE_ENERGY_SENSOR
|
|
|
|
&be_native_class(energy_struct),
|
|
|
|
#endif // USE_ENERGY_SENSOR
|
2021-07-20 20:05:10 +01:00
|
|
|
|
2021-04-19 07:40:11 +01:00
|
|
|
#ifdef USE_LVGL
|
2022-03-19 13:27:03 +00:00
|
|
|
&be_native_class(LVGL_glob),
|
|
|
|
|
|
|
|
&be_native_class(lv_signal_bars),
|
|
|
|
&be_native_class(lv_wifi_bars),
|
|
|
|
&be_native_class(lv_wifi_bars_icon),
|
|
|
|
&be_native_class(lv_signal_arcs),
|
|
|
|
&be_native_class(lv_wifi_arcs),
|
|
|
|
&be_native_class(lv_wifi_arcs_icon),
|
2022-03-27 15:57:54 +01:00
|
|
|
&be_native_class(lv_clock),
|
2022-03-19 13:27:03 +00:00
|
|
|
&be_native_class(lv_clock_icon),
|
|
|
|
#endif // USE_LVGL
|
|
|
|
|
|
|
|
#ifdef USE_I2S_AUDIO_BERRY
|
|
|
|
&be_native_class(AudioOutput),
|
|
|
|
&be_native_class(AudioGenerator),
|
|
|
|
&be_native_class(AudioFileSource),
|
|
|
|
&be_native_class(AudioOutputI2S),
|
|
|
|
&be_native_class(AudioGeneratorWAV),
|
|
|
|
&be_native_class(AudioGeneratorMP3),
|
|
|
|
#ifdef USE_UFILESYS
|
|
|
|
&be_native_class(AudioFileSourceFS),
|
|
|
|
#endif // USE_UFILESYS
|
|
|
|
&be_native_class(AudioOpusDecoder),
|
|
|
|
#endif // USE_I2S_AUDIO_BERRY
|
2023-02-19 21:25:29 +00:00
|
|
|
#if defined(USE_BERRY_INT64) || defined(USE_MATTER_DEVICE)
|
2022-03-21 18:35:57 +00:00
|
|
|
&be_native_class(int64),
|
|
|
|
#endif
|
2022-09-12 21:02:25 +01:00
|
|
|
#endif // TASMOTA
|
2022-03-19 13:27:03 +00:00
|
|
|
NULL, /* do not remove */
|
|
|
|
};
|
|
|
|
|
|
|
|
extern void be_load_ctypes_energy_definitions_lib(bvm *vm);
|
2021-04-19 07:40:11 +01:00
|
|
|
|
2021-03-27 18:02:22 +00:00
|
|
|
/* this code loads the native class definitions */
|
|
|
|
BERRY_API void be_load_custom_libs(bvm *vm)
|
|
|
|
{
|
|
|
|
(void)vm; /* prevent a compiler warning */
|
|
|
|
|
|
|
|
/* add here custom libs */
|
|
|
|
#if !BE_USE_PRECOMPILED_OBJECT
|
|
|
|
/* be_load_xxxlib(vm); */
|
2022-02-02 21:03:58 +00:00
|
|
|
#endif
|
2021-03-27 18:02:22 +00:00
|
|
|
}
|