Documentation
¶
Index ¶
- func Close()
- func ExecuteFile(path string) error
- func ExecuteString(script string, searchPaths ...string) error
- func RegisterMethod(name, description string, goFunc interface{}, overridable bool)
- type DocumentationGenerator
- func (dg *DocumentationGenerator) GenerateLuaDocumentation() string
- func (dg *DocumentationGenerator) GenerateMarkdownDocumentation() string
- func (dg *DocumentationGenerator) SaveLuaDocumentation(filename string) error
- func (dg *DocumentationGenerator) SaveMarkdownDocumentation(filename string) error
- type EngineConfig
- type ExitAction
- type LuaEngine
- func (e *LuaEngine) Close()
- func (e *LuaEngine) ExecuteFile(path string) error
- func (e *LuaEngine) ExecuteString(script string, searchPaths ...string) error
- func (e *LuaEngine) GetAvailableModules() []string
- func (e *LuaEngine) GetRegistry() *MethodRegistry
- func (e *LuaEngine) GetState() *lua.LState
- func (e *LuaEngine) InjectModule(moduleName string)
- func (e *LuaEngine) InjectModules(modules []string)
- func (e *LuaEngine) RegisterMethod(name, description string, goFunc interface{}, overridable bool)
- func (e *LuaEngine) RegisterModule(modules ...model.Module)
- func (e *LuaEngine) Restart() error
- type MethodInfo
- type MethodRegistry
- func (r *MethodRegistry) Clear()
- func (r *MethodRegistry) Contains(name string) bool
- func (r *MethodRegistry) Count() int
- func (r *MethodRegistry) ExportMethodsJSON() (string, error)
- func (r *MethodRegistry) ExportMethodsLuaTable() string
- func (r *MethodRegistry) GenerateLuaDocumentation() string
- func (r *MethodRegistry) GetMethod(name string) (MethodInfo, bool)
- func (r *MethodRegistry) ListMethods() []MethodInfo
- func (r *MethodRegistry) OverrideMethod(name string, luaFunc *lua.LFunction) bool
- func (r *MethodRegistry) RemoveMethod(name string) bool
- func (r *MethodRegistry) RestoreMethod(name string) bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExecuteFile ¶
func ExecuteString ¶
ExecuteString 执行 Lua 代码字符串(全局函数) script: 要执行的 Lua 代码 searchPaths: 可选参数,添加模块搜索路径(用于 require)
func RegisterMethod ¶
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 引擎配置选项
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 NewEngine ¶
func NewEngine(config *EngineConfig) *LuaEngine
NewEngine 创建新的引擎实例(NewLuaEngine 的别名)
func NewLuaEngine ¶
func NewLuaEngine(config *EngineConfig) *LuaEngine
NewLuaEngine 创建新的引擎实例 config: 引擎配置,传入 nil 使用默认配置
func (*LuaEngine) ExecuteFile ¶
ExecuteFile 执行 Lua 文件 path: 要执行的 Lua 文件路径 支持脚本退出后的动作:
- os.exit(0): 正常退出,执行配置的退出动作(重启/自定义/无动作)
- os.exit(-1): 强制退出,不执行任何退出动作
- os.exit(其他值): 正常退出,执行配置的退出动作
脚本异常退出时始终打印日志
func (*LuaEngine) ExecuteString ¶
ExecuteString 执行 Lua 代码字符串(实例方法) script: 要执行的 Lua 代码 searchPaths: 可选参数,添加模块搜索路径(用于 require) 支持脚本退出后的动作:
- os.exit(0): 正常退出,执行配置的退出动作(重启/自定义/无动作)
- os.exit(-1): 强制退出,不执行任何退出动作
- os.exit(其他值): 正常退出,执行配置的退出动作
脚本异常退出时始终打印日志
func (*LuaEngine) GetAvailableModules ¶
GetAvailableModules 获取所有可用模块列表
func (*LuaEngine) GetRegistry ¶
func (e *LuaEngine) GetRegistry() *MethodRegistry
func (*LuaEngine) InjectModule ¶
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 ¶
InjectModules 注入多个模块的方法
func (*LuaEngine) RegisterMethod ¶
func (*LuaEngine) RegisterModule ¶ added in v0.0.10
RegisterModule 注册一个或多个模块到当前引擎实例 用户可以在自己的代码中调用此方法来注册需要的模块 支持可变长参数,可以一次注册多个模块
type MethodInfo ¶
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