基本功能及语法

脚本存放路径

苹果: /var/touchelf/åscripts/
安卓: /mnt/sdcard/touchelf/scripts/

脚本格式

脚本分4种格式 lua e tep tepe
lua格式: 脚本源码
e格式: 脚本源码加密后的格式
tep: 项目打包脚本,里面包含多个lua以及图片资源等文件
tepe: 加密后的项目打包脚本
注:e格式为6.7.0版本之前所使用的加密格式。6.7.0版本与6.7.0以下版本加密格式不兼容

项目脚本

基础项目包含一个主文件和两个文件夹
image.png
项目为一个文件夹结构,文件夹的名字为脚本名字.项目在电脑中结构如下:
image.png

vscode中选择文件->将文件夹添加到工作区,选择创建好的项目文件夹,点击添加按钮
image.png

添加成功后的样式如下:
image.png

注意:工作区只能有一个项目文件!不可打开多个项目文件,会导致打包失败.
image.png

主文件名必须是 main.lua
lib文件夹内存放其他的lua文件.放在此文件夹内的lua文件在加密的时候会同时被加密.
res文件夹内存放图片等资源文件.如没有资源文件可以不创建此文件夹
也可创建其他文件夹用于存放不同的文件,例如创建一个font文件夹用于存放字库.
由于项目脚本运行的时候会在临时目录运行,所以访问项目内文件夹需要使用 script.workingDir()函数 获取临时目录
项目脚本找图使用如下写法:

function main()
    wd = script.workingDir()
    x, y = screen.findImage(wd.."/res/a.bmp");
    if x ~= -1 and y ~= -1 then
        touch.down(0, x, y);
        touch.up(0);
    end
end

项目脚本加载lib目录内模块写法:
main.lua:

a = require "a"

function main()
    a.foo()
end

a.lua:

local M = {}

function M.foo()
    sys.dialog("a from module")
end

return M

使用vscode上传项目脚本

main_lua_—_示例.png

使用控制中心上传项目脚本
控制中心_-_触摸精灵.png
控制中心下载地址:http://ask.touchelf.net/ask/article/30.html

上传脚本

1.使用vscode编辑完脚本后点击远程运行会自动上传脚本
image.png

2.使用vscode设备文件处的上传功能上传
image.png

3.使用控制中心的上传脚本功能上传
image.png

4.使用控制中心中的文件管理功能上传
image.png
image.png

5.使用远程UI上传脚本
使用远程UI上传脚本
使用远程UI上传脚本

扫一扫下载脚本

1.将脚本存放到服务器或其他可访问的地址
2.将访问地址生成二维码
例:将https://doc.touchelf.com/demo.lua生成二维码
扫一扫
3.点击触摸精灵左上角菜单按钮
扫一扫
4.点击菜单中的 扫一扫 按钮
扫一扫
5.扫描生成的二维码即可将脚本下载至本地

使用控制中心存放脚本下载脚本
1.创建一个文件夹,将脚本存放在此文件夹内.
2.在控制中心设置内将本地脚本目录设置为创建的文件夹,设置完点击保存配置并重启控制中心.
扫一扫
3.将控制中心访问地址生成二维码
例:控制中心设置内显示的本地访问地址为 http://192.168.31.163:3000 脚本名字为 demo.lua
那么访问地址为 http://192.168.31.163:3000/script/demo.lua
4.使用触摸精灵扫描生成的二维码即可将脚本下载至本地

注意:
1.扫一扫下载脚本支持 .lua .e .tep .tepe 四种格式.
2.不支持下载除脚本外的其他文件.

录制

1.脚本列表界面点击左上角菜单
触摸精灵_-_UI_和_res.png

2.点击菜单中的 录制 按钮
触摸精灵_-_UI.png

3.在弹出的对话框中输入想要录制的脚本的名称, 然后点击“确定”按钮
触摸精灵_-_UI_和_res.png

5.阅读弹出的对话框中的说明, 然后切换到手机的任意界面, 按下音量键开始录制
触摸精灵_-_UI_和_res.png

6.做一些你想要录制的触摸动作,再次按下音量键停止录制

设置循环

1.点击脚本,弹出菜单中选择选定
触摸精灵_-_UI_和_res.png

2.设置循环次数以及循环的间隔时间 循环时间为毫秒 1秒 = 1000毫秒 点击保存配置,点击选定脚本
触摸精灵_-_UI_和_res.png

运行

1.选定脚本后可以点击音量键运行脚本,或者使用菜单中的运行来运行脚本
触摸精灵_-_UI_和_res.png

2.脚本在播放完毕后会自动停止, 或在播放过程中再次按下音量键停止播放

编辑

1.点击脚本,弹出菜单中选择编辑
触摸精灵_-_UI_和_res.png

2.编辑完成后点击编辑界面右上角的菜单保存
触摸精灵_-_UI_和_res.png

开机启动

1.点击脚本,弹出菜单中选择开机启动
image.png

2.打开设置页面,打开开机启动选项
image.png

脚本修改开机启动方法
通过修改配置文件修改开机启动,此方法修改完设置页面的开机启动功能无变化,但不影响功能正常使用

function main()
    local file = file.read("/var/touchelf/var/config.json")
    local config = codec.json.decode(file)
    config.boot.enable = true --设置开机启动为true
    config.boot.script = 'main.lua' --设置开机启动脚本为 main.lua
    config = codec.json.encode(config)
    file.write("/var/touchelf/var/config.json",config)
end

通过API接口修改开机启动,此方法修改完设置页面的开机启动功能有变化

function httpPut(data)
    local http = require "socket.http"
    local ltn12 = require "ltn12"
    local request_body = data -- 这里是PUT的数据
    local response_body = {}
    local res, code, response_headers = http.request{
        url = "http://127.0.0.1:8000/api/config", -- 这里是你提交的域名
        method = "PUT",
        headers =
        {
            ["Content-Type"] = "application/x-www-form-urlencoded";
            ["Content-Length"] = #request_body;
        },
        source = ltn12.source.string(request_body),
        sink = ltn12.sink.table(response_body),
    }
    if type(response_body) == "table" then
        return table.concat(response_body)
    else
        sys.log("Not a table:", type(response_body))
    end
end
function main()
    local res = net.http.get("http://127.0.0.1:8000/api/config")
    local config = codec.json.decode(res)
    config.boot.enable = true --设置开机启动为true
    config.boot.script = 'main.lua' --设置开机启动脚本为 main.lua
    config = codec.json.encode(config)
    httpPut(config)
end

加密

1.点击脚本,弹出菜单中选择加密
触摸精灵_-_UI_和_res.png

2.e3为lua脚本的加密脚本.tepe为项目脚本tep的加密脚本
触摸精灵_-_UI_和_res.png

注册

1.购买序列号
淘宝官方店:http://aisence.taobao.com
社区:http://ask.touchelf.net
去上述地址购买序列号
触摸精灵未注册也可以使用半个小时,请确定您的设备可以正常使用在购买.序列号一经售出概不退换

2.点击设置 -> 注册状态 -> 右上角菜单 -> 注册 输入购买的序列号 注册状态中显示到期时间则注册成功
触摸精灵_-_UI_和_res.png
触摸精灵_-_UI_和_res.png
触摸精灵_-_UI_和_res.png

社区购买序列号流程

1.注册并登陆社区.

2.充值余额
点击充值余额进行余额充值
会员中心.png
充值余额.png

3.兑换点数
充值完成后点击兑换点数
兑换点数.png

4.提取序列号
兑换完成后点击 触摸序列号 菜单,在提取序列号界面输入 提取数量 点击 提取 即可
提取序列号.png

5.订单列表
订单列表中显示的是每次提取序列号的订单

6.序列号列表
序列号列表中显示的是所有序列号的状态以及信息

解绑

1.访问官方网站 www.touchelf.com 点击右上角 激活 -> 查询&解绑
触摸精灵.png

2.输入注册码及验证码
触摸精灵.png

3.输入验证码点击解绑
触摸精灵.png

4.社区购买序列号解绑方式
除上述去官网解绑方式外还可以在 序列号列表 中点击解绑按钮 解绑
序列号列表.png

注意:序列号绑定两个月以上才可以解绑一次.每个序列号解绑次数为5.超过解绑次数则无法解绑

基本语法

主入口为 main 函数 触摸执行时是从 main 函数开始运行
例如:执行一个提示

function main()
    sys.toast("test")
end

例如:执行一次点击

function main()
    click(100,100)
end
function click(x,y)
    touch.down(0,x,y)
    sys.sleep(20)
    touch.up(0)
end

其他lua语法用户可参考Lua的官方手册或者其他资料来学习以下基本语法:

Lua官方手册:http://www.lua.org/manual/5.2/
Lua教程: https://www.w3cschool.cn/lua/
注意:工作区只能有一个项目文件!不可打开多个项目文件,会导致打包失败.
image.png

主文件名必须是 main.lua
lib文件夹内存放其他的lua文件.放在此文件夹内的lua文件在加密的时候会同时被加密.
res文件夹内存放图片等资源文件.
也可创建其他文件夹用于存放不同的文件,例如创建一个font文件夹用于存放字库.
由于项目脚本运行的时候会在临时目录运行,所以访问项目内文件夹需要使用 script.workingDir()函数 获取临时目录
项目脚本找图使用如下写法:

function main()
    wd = script.workingDir()
    x, y = screen.findImage(wd.."/res/a.bmp");
    if x ~= -1 and y ~= -1 then
        touch.down(0, x, y);
        touch.up(0);
    end
end

项目脚本加载lib目录内模块写法:
main.lua:

a = require "a"

function main()
    a.foo()
end

a.luaimage.png:

local M = {}

function M.foo()
    sys.dialog("a from module")
end

return M