lua_engine

package
v0.0.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 25, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Close

func Close()

func ExecuteFile

func ExecuteFile(path string) error

func ExecuteString

func ExecuteString(script string, searchPaths ...string) error

ExecuteString 执行 Lua 代码字符串(全局函数) script: 要执行的 Lua 代码 searchPaths: 可选参数,添加模块搜索路径(用于 require)

func RegisterMethod

func RegisterMethod(name, description string, goFunc interface{}, overridable bool)

Types

type DocumentationGenerator

type DocumentationGenerator struct {
	// contains filtered or unexported fields
}

func NewDocumentationGenerator

func NewDocumentationGenerator() *DocumentationGenerator

func (*DocumentationGenerator) GenerateLuaDocumentation

func (dg *DocumentationGenerator) GenerateLuaDocumentation() string

func (*DocumentationGenerator) GenerateMarkdownDocumentation

func (dg *DocumentationGenerator) GenerateMarkdownDocumentation() string

func (*DocumentationGenerator) SaveLuaDocumentation

func (dg *DocumentationGenerator) SaveLuaDocumentation(filename string) error

func (*DocumentationGenerator) SaveMarkdownDocumentation

func (dg *DocumentationGenerator) SaveMarkdownDocumentation(filename string) error

type EngineConfig

type EngineConfig struct {
	WhiteList        []string   // 白名单:只加载这些模块,空列表 = 加载所有
	BlackList        []string   // 黑名单:跳过这些模块,空列表 = 不跳过任何
	FailFast         bool       // 是否在模块加载失败时立即失败,false = 跳过失败模块继续
	SearchPaths      []string   // 模块搜索路径,用于 require 查找模块
	FileSystem       fs.FS      // 虚拟文件系统(embed.FS),用于从嵌入文件中加载模块
	OnExit           ExitAction // 脚本退出后的动作,默认为 ExitActionNone
	CustomExitAction func()     // 自定义退出动作函数,当 OnExit = ExitActionCustom 时调用
}

EngineConfig 引擎配置选项

func DefaultConfig

func DefaultConfig() EngineConfig

DefaultConfig 返回默认配置

type ExitAction added in v0.0.10

type ExitAction int

ExitAction 脚本退出后的动作类型

const (
	ExitActionNone    ExitAction = iota // 无动作,直接退出
	ExitActionRestart                   // 重启脚本
	ExitActionCustom                    // 自定义动作
)

type LuaEngine

type LuaEngine struct {
	// contains filtered or unexported fields
}

LuaEngine Lua 引擎

func GetEngine

func GetEngine() *LuaEngine

GetEngine 获取默认引擎实例(GetLuaEngine 的别名)

func GetLuaEngine

func GetLuaEngine() *LuaEngine

GetLuaEngine 获取默认引擎实例(使用默认配置,自动注入所有方法)

func NewEngine

func NewEngine(config *EngineConfig) *LuaEngine

NewEngine 创建新的引擎实例(NewLuaEngine 的别名)

func NewLuaEngine

func NewLuaEngine(config *EngineConfig) *LuaEngine

NewLuaEngine 创建新的引擎实例 config: 引擎配置,传入 nil 使用默认配置

func (*LuaEngine) Close

func (e *LuaEngine) Close()

func (*LuaEngine) ExecuteFile

func (e *LuaEngine) ExecuteFile(path string) error

ExecuteFile 执行 Lua 文件 path: 要执行的 Lua 文件路径 支持脚本退出后的动作:

  • os.exit(0): 正常退出,执行配置的退出动作(重启/自定义/无动作)
  • os.exit(-1): 强制退出,不执行任何退出动作
  • os.exit(其他值): 正常退出,执行配置的退出动作

脚本异常退出时始终打印日志

func (*LuaEngine) ExecuteString

func (e *LuaEngine) ExecuteString(script string, searchPaths ...string) error

ExecuteString 执行 Lua 代码字符串(实例方法) script: 要执行的 Lua 代码 searchPaths: 可选参数,添加模块搜索路径(用于 require) 支持脚本退出后的动作:

  • os.exit(0): 正常退出,执行配置的退出动作(重启/自定义/无动作)
  • os.exit(-1): 强制退出,不执行任何退出动作
  • os.exit(其他值): 正常退出,执行配置的退出动作

脚本异常退出时始终打印日志

func (*LuaEngine) GetAvailableModules

func (e *LuaEngine) GetAvailableModules() []string

GetAvailableModules 获取所有可用模块列表

func (*LuaEngine) GetRegistry

func (e *LuaEngine) GetRegistry() *MethodRegistry

func (*LuaEngine) GetState

func (e *LuaEngine) GetState() *lua.LState

func (*LuaEngine) InjectModule

func (e *LuaEngine) InjectModule(moduleName string)

InjectModule 注入指定模块的方法 module: 模块名称,支持: app, device, motion, files, images, storages, system, http, media, opencv, ppocr, console, dotocr, hud, ime, plugin, rhino, uiacc, utils, vdisplay, yolo, imgui

func (*LuaEngine) InjectModules

func (e *LuaEngine) InjectModules(modules []string)

InjectModules 注入多个模块的方法

func (*LuaEngine) RegisterMethod

func (e *LuaEngine) RegisterMethod(name, description string, goFunc interface{}, overridable bool)

func (*LuaEngine) RegisterModule added in v0.0.10

func (e *LuaEngine) RegisterModule(modules ...model.Module)

RegisterModule 注册一个或多个模块到当前引擎实例 用户可以在自己的代码中调用此方法来注册需要的模块 支持可变长参数,可以一次注册多个模块

func (*LuaEngine) Restart added in v0.0.10

func (e *LuaEngine) Restart() error

Restart 重启 Lua 引擎 关闭当前状态并重新初始化,保留模块缓存

type MethodInfo

type MethodInfo struct {
	Name        string
	Description string
	GoFunc      interface{}
	Overridable bool
	Overridden  bool
	LuaFunc     *lua.LFunction
}

type MethodRegistry

type MethodRegistry struct {
	// contains filtered or unexported fields
}

func GetRegistry

func GetRegistry() *MethodRegistry

func (*MethodRegistry) Clear

func (r *MethodRegistry) Clear()

func (*MethodRegistry) Contains

func (r *MethodRegistry) Contains(name string) bool

func (*MethodRegistry) Count

func (r *MethodRegistry) Count() int

func (*MethodRegistry) ExportMethodsJSON

func (r *MethodRegistry) ExportMethodsJSON() (string, error)

func (*MethodRegistry) ExportMethodsLuaTable

func (r *MethodRegistry) ExportMethodsLuaTable() string

func (*MethodRegistry) GenerateLuaDocumentation

func (r *MethodRegistry) GenerateLuaDocumentation() string

func (*MethodRegistry) GetMethod

func (r *MethodRegistry) GetMethod(name string) (MethodInfo, bool)

func (*MethodRegistry) ListMethods

func (r *MethodRegistry) ListMethods() []MethodInfo

func (*MethodRegistry) OverrideMethod

func (r *MethodRegistry) OverrideMethod(name string, luaFunc *lua.LFunction) bool

func (*MethodRegistry) RemoveMethod

func (r *MethodRegistry) RemoveMethod(name string) bool

func (*MethodRegistry) RestoreMethod

func (r *MethodRegistry) RestoreMethod(name string) bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL