《触摸精灵操作手册.doc》由会员分享,可在线阅读,更多相关《触摸精灵操作手册.doc(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2 脚本语言触摸精灵使用Lua语言作为底层脚本语言, 支持Lua 5.2版本的所有语法与基本库函数, 并在Lua语言的基础上添加了一些扩展函数, 用于发送触摸事件、找图、找色等高级功能的实现触摸精灵的脚本中需要有且只有一个main函数,整个脚本是从这个函数开始执行的,示例- 脚本入口函数- 整个脚本从这个函数开始执行- 此函数在整个脚本中必须有且只有一个function main() - 其他代码end 2.1 基本语法用户可参考Lua的官方手册或者其他资料来学习以下基本语法:注释变量与类型运算符赋值条件控制循环控制函数定义库函数等等2.2 脚本UI界面用户可以通过在脚本中定义一个全局变量UI
2、来实现定义脚本的配置界面, 该界面会在脚本运行前显示给用户, 用于让用户设置一些脚本的参数, 这些参数的值会赋值给指定的变量, 脚本运行时可以通过访问这些变量来获取用户的配置。下面是一个完整的例子:UI = TextView-请如实填写哦- , InputBox, name, 姓名: , DropList帅哥|美女, sex, 性别: , InputBox18, age, 年龄: , DropList是|否, married, 婚否: ,;function main() notifyMessage(string.format(姓名:%sn性别:%sn年龄:%sn婚否:%s, name, sex
3、, age, married);end 上述脚本播放前会显示一个如下界面: 全局变量UI是一个Table类型的变量, 其中包含若干个子Table, 每一个子Table都是一个界面上的控件, 控件按照顺序自上而下排列, 目前支持3中类型的控件: 1. TextView (静态文本) 1.1 控件说明 该类型的控件只用来显示一行文字, 不需要用户操作 1.2 控件定义 TextView显示的内容 这个Table只有一个字符串成员, 即TextView显示的内容, 其中的TextView是指定此控件的类型为静态文本, 中的内容即为该静态文本显示的内容 2. InputBox (输入框) 2.1 控件
4、说明 该类型的控件可以用于让用户输入一些内容, 并可以指定一个变量名, 脚本开始后通过该变量就可以访问到用户输入的内容 2.2 控件定义 InputBox默认值, var, 注释 这个Table中有3个字符串成员: * InputBox默认值, 其中的InputBox是指定此控件的类型为输入框, 中的内容是该输入框中的默认值 * var, 定义一个变量的名字, 脚本开始后可以通过访问这个变量来获取用户输入的内容 * 注释, 显示在输入框上方, 用于说明该输入框的用途 2.3 使用提示 需要注意的是获取到的变量的值是默认是字符串类型, 你可以使用tonumber()函数来转换成数字类型来使用。例
5、如var = tonumber(var); 3. DropList (下拉列表) 3.1 控件说明 该类型的控件可以用于让用户在指定的若干个值中选择其中一个, 并可以指定一个变量名, 脚本开始后通过该变量就可以访问到用户选择的内容 3.2 控件定义 DropList选项1|选项2|选项3|., var, 注释 这个Table中有3个字符串成员: * DropList选项1|选项2|选项3|., 其中的DropList是指定此控件的类型为下拉列表, 中的内容是指定的若干个选项, 每个选项间用|分隔 * var, 定义一个变量的名字, 脚本开始后可以通过访问这个变量来获取用户选择的内容 * 注释,
6、 显示在下拉列表上方, 用于说明该下拉列表的用途* 说明 *全局代码块(不包含在任何函数内的代码块)会在脚本的main()函数之前被调用, 所以可以在全局代码块中对UI变量进行动态的设置, UI变量是一个Table类型的变量, 可以使用Lua的Table库函数操作, 下面是一个操作UI变量的例子:file = io.open(/var/touchelf/conf.txt); - 打开配置文件data = file:read(*a); - 读取全部内容file:close(); - 关闭文件UI = InputBox. data . , demo, 演示: ,function main() no
7、tifyMessage(string.format(%s, demo);end2.3 扩展函数logDebug()函数说明: 输出调试信息到系统日志, 可以在“触摸精灵-设置-查看日志”中查看参数参数1 (字符串) : 调试信息返回值无示例logDebug(hello); - 输出hello到系统日志 mSleep()函数说明: 进行毫秒级别延迟参数参数1 (数字) : 毫秒数返回值无示例mSleep(1000); - 延迟1秒 notifyMessage()函数说明: 以文字提示框的方式通知用户参数参数1 (字符串) : 提示文字参数2 (数字, 可选) : 显示的时间, 单位为毫秒, 默认
8、为1000返回值无示例notifyMessage(hello); - 在屏幕上显示hellonotifyMessage(hello, 5000); - 在屏幕上显示hello, 显示5秒 notifyVibrate()函数说明: 以震动方式通知用户参数参数1 (数字) : 毫秒数返回值无示例notifyVibrate(1000); - 让设备震动1秒 notifyVoice()函数说明: 以播放音频的方式通知用户参数参数1 (字符串) : 音频路径返回值无示例notifyVoice(/var/touchelf/a.mp3); - 播放路径为/var/touchelf/a.mp3的音频 touc
9、hDown()函数说明: 发送手指按下事件参数参数1 (数字) : 手指ID, 范围0128, 用于标识一个手指, 在后续的touchMove()和touchUp()中需要使用参数2 (数字) : X坐标参数3 (数字) : Y坐标返回值无示例touchDown(0, 100, 100); - ID为0的手指在坐标为(100, 100)的点按下touchUp(0); - ID为0的手指抬起 touchMove()函数说明: 发送手指移动事件参数参数1 (数字) : touchDown()时传入的手指ID参数2 (数字) : X坐标参数3 (数字) : Y坐标返回值无示例touchDown(0,
10、 100, 100); - ID为0的手指在坐标为(100, 100)的点按下touchMove(0, 200, 100); - ID为0的手指滑动到坐标为(200, 100)的点touchUp(0); - ID为0的手指抬起 touchUp()函数说明: 发送手指抬起事件参数参数1 (数字) : touchDown()时传入的手指ID返回值无示例touchDown(0, 100, 100); - ID为0的手指在坐标为(100, 100)的点按下touchUp(0); - ID为0的手指抬起 keyDown()函数说明: 发送物理按键按下事件参数参数1 (字符串) : 物理键名称, IOS触
11、摸精灵现在支持的有HOME返回值无示例keyDown(HOME); - HOME键按下keyUp(HOME); - HOME键抬起 keyUp()函数说明: 发送物理按键抬起事件参数参数1 (字符串) : 物理键名称, IOS触摸精灵现在支持的有HOME返回值无示例keyDown(HOME); - HOME键按下keyUp(HOME); - HOME键抬起 getColor()函数说明: 获取指定像素的颜色参数参数1 (数字) : X坐标参数2 (数字) : Y坐标返回值返回值1 (数字) : 颜色值示例c = getColor(100, 100); - 将坐标为(100,100)的点的颜色保
12、存在变量c中if c = 0x0000ff then - 如果该点颜色为0x0000ff(纯蓝色) touchDown(0, 100, 100); - 那么点击该坐标 touchUp(0);end getColorRGB()函数说明: 获取指定像素颜色的R、G、B三个值参数参数1 (数字) : X坐标参数2 (数字) : Y坐标返回值返回值1 (数字) : R返回值2 (数字) : G返回值3 (数字) : B示例r, g, b = getColorRGB(100, 100); - 将坐标为(100,100)的点的颜色的R、G、B分别保存在变量r、g、b中if r = 0x00 and b =
13、 0x00 and g = 0xff then - 如果该点颜色为0x0000ff(纯蓝色) touchDown(0, 100, 100); - 那么点击该坐标 touchUp(0);end findColor()函数说明: 全屏找色参数参数1 (数字) : 要找的颜色返回值返回值1 (数字) : X坐标, 如果没找到返回-1返回值1 (数字) : Y坐标, 如果没找到返回-1示例x, y = findColor(0x0000ff); - 在全屏范围找到第一个颜色为0x0000ff的点, 将其坐标保存到变量x和y中if x = -1 and y = -1 then - 如果找到了 touchD
14、own(0, x, y); - 点击那个点 touchUp(0);end findColorFuzzy()函数说明: 全屏模糊找色参数参数1 (数字) : 要找的颜色参数2 (数字) : 精确度, 有效范围为1100返回值返回值1 (数字) : X坐标, 如果没找到返回-1返回值1 (数字) : Y坐标, 如果没找到返回-1示例x, y = findColorFuzzy(0x0000ff, 90); - 在全屏范围找到第一个颜色为0x0000ff的点, 精确度为90%, 将其坐标保存到变量x和y中if x = -1 and y = -1 then - 如果找到了 touchDown(0, x,
15、 y); - 点击那个点 touchUp(0);end findColorInRegion()函数说明: 区域找色参数参数1 (数字) : 要找的颜色参数2 (数字) : 区域左上角X坐标参数3 (数字) : 区域左上角Y坐标参数4 (数字) : 区域右下角X坐标参数5 (数字) : 区域右下角Y坐标返回值返回值1 (数字) : X坐标, 如果没找到返回-1返回值1 (数字) : Y坐标, 如果没找到返回-1示例x, y = findColorInRegion(0x0000ff, 100, 100, 200, 200); - 在区域(100,100)(200,200)范围找到第一个颜色为0x0
16、000ff的点, 将其坐标保存到变量x和y中if x = -1 and y = -1 then - 如果找到了 touchDown(0, x, y); - 点击那个点 touchUp(0);end findColorInRegionFuzzy()函数说明: 区域模糊找色参数参数1 (数字) : 要找的颜色参数2 (数字) : 精确度, 有效范围为1100参数3 (数字) : 区域左上角X坐标参数4 (数字) : 区域左上角Y坐标参数5 (数字) : 区域右下角X坐标参数6 (数字) : 区域右下角Y坐标返回值返回值1 (数字) : X坐标, 如果没找到返回-1返回值1 (数字) : Y坐标,
17、如果没找到返回-1示例x, y = findColorInRegionFuzzy(0x0000ff, 90, 100, 100, 200, 200); - 在区域(100,100)(200,200)范围找到第一个颜色为0x0000ff的点, 精确度为90%, 将其坐标保存到变量x和y中if x = -1 and y = -1 then - 如果找到了 touchDown(0, x, y); - 点击那个点 touchUp(0);end findImage()函数说明: 全屏找图参数参数1 (字符串) : 要找的图片的路径, 只支持BMP格式参数2 (数字, 可选) : 指定图片中透明颜色返回值
18、返回值1 (数字) : X坐标, 如果没找到返回-1返回值1 (数字) : Y坐标, 如果没找到返回-1示例x, y = findImage(/var/touchelf/a.bmp); - 在全屏范围找到第一个路径为/var/touchelf/a.bmp的图片, 将其左上角坐标保存到变量x和y中if x = -1 and y = -1 then - 如果找到了 touchDown(0, x, y); - 点击那个点 touchUp(0);endx, y = findImage(/var/touchelf/a.bmp, 0x000000); - 在全屏范围找到第一个路径为/var/sdcar/a
19、.bmp的图片, 忽略图片中颜色为0x000000(黑色)的点, 将其左上角坐标保存到变量x和y中if x = -1 and y = -1 then - 如果找到了 touchDown(0, x, y); - 点击那个点 touchUp(0);end findImageFuzzy()函数说明: 全屏模糊找图参数参数1 (字符串) : 要找的图片的路径, 只支持BMP格式参数2 (数字) : 精确度, 有效范围为1100参数3 (数字, 可选) : 指定图片中透明颜色返回值返回值1 (数字) : X坐标, 如果没找到返回-1返回值1 (数字) : Y坐标, 如果没找到返回-1示例x, y = f
20、indImageFuzzy(/var/touchelf/a.bmp, 90); - 在全屏范围找到第一个路径为/var/sdcar/a.bmp的图片, 精确度为90, 将其左上角坐标保存到变量x和y中if x = -1 and y = -1 then - 如果找到了 touchDown(0, x, y); - 点击那个点 touchUp(0);endx, y = findImageFuzzy(/var/touchelf/a.bmp, 90, 0x000000); - 在全屏范围找到第一个路径为/var/sdcar/a.bmp的图片, 精确度为90, 忽略图片中颜色为0x000000(黑色)的点
21、, 将其左上角坐标保存到变量x和y中if x = -1 and y = -1 then - 如果找到了 touchDown(0, x, y); - 点击那个点 touchUp(0);end findImageInRegion()函数说明: 区域找图参数参数1 (字符串) : 要找的图片的路径, 只支持BMP格式参数2 (数字) : 区域左上角X坐标参数3 (数字) : 区域左上角Y坐标参数4 (数字) : 区域右下角X坐标参数5 (数字) : 区域右下角Y坐标参数6 (数字, 可选) : 指定图片中透明颜色返回值返回值1 (数字) : X坐标, 如果没找到返回-1返回值1 (数字) : Y坐标
22、, 如果没找到返回-1示例x, y = findImageInRegion(/var/touchelf/a.bmp, 100, 100, 200, 200); - 在区域(100,100)(200,200)范围找到第一个路径为/var/sdcar/a.bmp的图片, 将其左上角坐标保存到变量x和y中if x = -1 and y = -1 then - 如果找到了 touchDown(0, x, y); - 点击那个点 touchUp(0);endx, y = findImageInRegion(/var/touchelf/a.bmp, 100, 100, 200, 200, 0x000000
23、); - 在区域(100,100)(200,200)范围找到第一个路径为/var/sdcar/a.bmp的图片, 忽略图片中颜色为0x000000(黑色)的点, 将其左上角坐标保存到变量x和y中if x = -1 and y = -1 then - 如果找到了 touchDown(0, x, y); - 点击那个点 touchUp(0);end findImageInRegionFuzzy()函数说明: 区域模糊找图参数参数1 (字符串) : 要找的图片的路径, 只支持BMP格式参数2 (数字) : 精确度, 有效范围为1100参数3 (数字) : 区域左上角X坐标参数4 (数字) : 区域左
24、上角Y坐标参数5 (数字) : 区域右下角X坐标参数6 (数字) : 区域右下角Y坐标参数7 (数字, 可选) : 指定图片中透明颜色返回值返回值1 (数字) : X坐标, 如果没找到返回-1返回值1 (数字) : Y坐标, 如果没找到返回-1示例x, y = findImageInRegionFuzzy(/var/touchelf/a.bmp, 90, 100, 100, 200, 200); - 在区域(100,100)(200,200)范围找到第一个路径为/var/sdcar/a.bmp的图片, 精确度为90, 将其左上角坐标保存到变量x和y中if x = -1 and y = -1 t
25、hen - 如果找到了 touchDown(0, x, y); - 点击那个点 touchUp(0);endx, y = findImageInRegionFuzzy(/var/touchelf/a.bmp, 90, 100, 100, 200, 200, 0x000000); - 在区域(100,100)(200,200)范围找到第一个路径为/var/sdcar/a.bmp的图片, 精确度为90, 忽略图片中颜色为0x000000(黑色)的点, 将其左上角坐标保存到变量x和y中if x = -1 and y = -1 then - 如果找到了 touchDown(0, x, y); - 点击
26、那个点 touchUp(0);end snapshotScreen()函数说明: 全屏截图参数参数1 (字符串) : 保存截图的路径, 支持BMP格式和JPG格式, 根据文件名后缀智能判断参数2 (数字, 可选) : 图片尺寸缩放百分比, 有效范围为10100, 默认为100返回值无示例snapshotScreen(/mnt/sdcard/a.bmp); - 将全屏截图保存到路径为/mnt/sdcard/a.bmp的图片中, 格式为BMPsnapshotScreen(/mnt/sdcard/a.jpg, 50); - 将全屏截图保存到路径为/mnt/sdcard/a.jpg的图片中, 格式为J
27、PG, 并且尺寸缩小为原始尺寸的50% snapshotRegion()函数说明: 区域截图参数参数1 (字符串) : 保存截图的路径, 支持BMP格式和JPG格式, 根据文件名后缀智能判断参数2 (数字) : 区域左上角X坐标参数3 (数字) : 区域左上角Y坐标参数4 (数字) : 区域右下角X坐标参数5 (数字) : 区域右下角Y坐标参数6 (数字, 可选) : 图片尺寸缩放百分比, 有效范围为10100, 默认为100返回值无示例snapshotRegion(/mnt/sdcard/a.bmp, 100, 100, 200, 200); - 将区域(100,100)(200,200)的
28、截图保存到路径为/mnt/sdcard/a.bmp的图片中, 格式为BMPsnapshotRegion(/mnt/sdcard/a.jpg, 100, 100, 200, 200, 50); - 将区域(100,100)(200,200)的截图保存到路径为/mnt/sdcard/a.jpg的图片中, 格式为JPG, 并且尺寸缩小为原始尺寸的50% localOcrText()函数说明: 进行本地图片识别参数参数1 (字符串) : 语言包tessdata目录的路径(在 将解压后的tessdata目录复制到设备中)参数2 (字符串) : 语言类型eng : 英文语言类型chi_sim : 中文语言
29、类型参数3 (数字) : 待识别图片区域的左上角X坐标参数4 (数字) : 待识别图片区域的左上角Y坐标参数5 (数字) : 待识别图片区域的右下角X坐标参数6 (数字) : 待识别图片区域的右下角Y坐标参数7 (字符串, 可选) : 设置白名单, 只有白名单中的字符才会被识别返回值返回值1 (字符串) : 图片识别后得到的答案, 失败的话返回空字符串示例code = localOcrText(/mnt/sdcard/Touchelper/tessdata, - 语言包tessdata目录在设备中的路径 eng, - 语言类型为中文 100, - 图片左上角X坐标为100 100, - 图片左
30、上角Y坐标为100 200, - 图片右下角X坐标为200 200); - 图片右下角Y坐标为200if code = then notifyMessage(识别失败);else notifyMessage(string.format(识别成功: %s, code);endcode = localOcrText(/mnt/sdcard/Touchelper/tessdata, - 语言包tessdata目录在设备中的路径 eng, - 语言类型为中文 100, - 图片左上角X坐标为100 100, - 图片左上角Y坐标为100 200, - 图片右下角X坐标为200 200, - 图片右下角
31、Y坐标为200 0123456789); - 设置白名单字符串, 只识别数字if code = then notifyMessage(识别失败);else notifyMessage(string.format(识别成功: %s, code);end cloudOcrInit()函数说明: 选择远程代答平台参数参数1 (数字) : 远程代答平台ID, 默认为00 : 好爱答题1 : 打码兔答题返回值无示例cloudOcrInit(1); - 设置远程代答平台为打码兔 cloudOcrText()函数说明: 连接cloudOcrInit()选择的答题平台进行图片识别参数参数1 (字符串) : 用
32、户名及密码, 根据不同平台分别设置为:好爱答题 : 密码串(注册并登陆后, 在会员中心获取), 如username|9CF16235AD9EFBD3F233265DF9400E6A打码兔答题 : 用户名|密码, 如username|password参数2 (字符串) : 题目类型, 请前往选择的代答平台的官网查询参数3 (数字) : 待识别图片区域的左上角X坐标参数4 (数字) : 待识别图片区域的左上角Y坐标参数5 (数字) : 待识别图片区域的右下角X坐标参数6 (数字) : 待识别图片区域的右下角Y坐标参数7 (数字) : 超时时间, 范围为20-600秒返回值返回值1 (字符串) :
33、图片识别后得到的答案, 失败的话返回空字符串示例cloudOcrInit(0); - 选择代答平台为好爱答题code = cloudOcrText(username|PASSWORDAD9EFBD3F233265DF9400E6A, - 好爱答题参数1为密码串(注册并登陆后, 在会员中心获取) 1004, - 题目类型为1004(4位数字字母) 100, - 图片左上角X坐标为100 100, - 图片左上角Y坐标为100 200, - 图片右下角X坐标为200 200, - 图片右下角Y坐标为200 600); - 超时时间为600秒if code = then notifyMessage(
34、识别失败);else notifyMessage(string.format(识别成功: %s, code);end cloudOcrTextEx()函数说明: 将参数中指定的任意个数的图片合并成一个图片后, 连接cloudOcrInit()选择的远程答题平台进行图片识别参数参数1 (字符串) : 用户名及密码, 根据不同平台分别设置为:好爱答题 : 密码串(注册并登陆后, 在会员中心获取), 如username|9CF16235AD9EFBD3F233265DF9400E6A打码兔答题 : 用户名|密码, 如username|password参数2 (字符串) : 题目类型, 请前往选择的代
35、答平台的官网查询参数3 (数字) : 超时时间, 范围为20-600秒参数4 (字符串) : 待合并的第一个图片的路径参数5 (字符串) : 待合并的第二个图片的路径.参数N (字符串) : 待合并的第N个图片的路径返回值返回值1 (字符串) : 图片识别后得到的答案, 失败的话返回空字符串示例snapshotScreen(/var/touchelf/1.bmp); - 将屏幕截图为/var/touchelf/1.bmp图片snapshotScreen(/var/touchelf/2.bmp); - 将屏幕截图为/var/touchelf/2.bmp图片- 下面的代码将1.bmp和2.bmp合并成一个图片后- 发送到打码兔远程代答平台进行图片识别-cloudOcrInit(1); - 选择代答平台为打码兔答题code = cloudOcrText(username|password, - 打码兔答题参数1为用户名|密码 1004, - 题目类型为1004(4位数字字母) 600, - 超时时间为600秒 /var/touchelf/1.bmp, - 待合并的第一个图片 /var/touchelf/2.bmp, - 待合并的第二个图片 /var