Skip to content

Latest commit

 

History

History
413 lines (289 loc) · 8.43 KB

配置文件参考.md

File metadata and controls

413 lines (289 loc) · 8.43 KB

配置文件参考

配置文件通过 json 保存, 具体格式如下(下方模板包含大部分支持的操作,可以作为编写时的参考):

{
    "version": "1.3",
    "interval": 1.0,
    "checks": [
        {
            "type": "event",
            "event": "null",
            "rate": 1,
            "todo": {
                "type": "todo",
                "actions": [
                    {
                        "type": "action",
                        "action": "screen_shot",
                        "save": "desktop.png"
                    }
                ]
            }
        },
        {
            "type": "event",
            "event": "image_appear",
            "base": "./desktop.png",
            "image": "./baseimg/xxx.png",
            "precision": 0.95,
            "var": "$last_pos",
            "rate": 1,
            "todo": {
                "type": "todo",
                "actions": [
                    {
                        "type": "action",
                        "action": "move_mouse_to",
                        "var": "$last_pos"
                    },
                    {
                        "type": "action",
                        "action": "sleep",
                        "sleep_time": 0.5
                    },
                    {
                        "type": "action",
                        "action": "mouse_click",
                        "push_time": 0.1
                    },
                    {
                        "type": "action",
                        "action": "get_image_pos",
                        "var": "$image_pos",
                        "base": "desktop.png",
                        "image": "./baseimg/xxxx.png",
                        "precision": 0.95
                    },
                    {
                        "type": "action",
                        "action": "move_mouse_to",
                        "var": "$image_pos"
                    },
                    {
                        "type": "sleep",
                        "action": "sleep",
                        "sleep_time": 0.5
                    },
                    {
                        "type": "action",
                        "action": "mouse_click",
                        "push_time": 0.1
                    },
                    {
                        "type": "action",
                        "action": "text_input",
                        "text": "Hello World!"
                    }
                ]
            }
        },
        {
            "type": "event",
            "event": "null",
            "todo": {
                "type": "todo",
                "actions": [
                    {
                        "type": "action",
                        "action": "remove_file",
                        "ignore_error": true,
                        "path": "desktop.png"
                    }
                ]
            }
        },
    ]
}

具体实现方法采用总类实现。

通过解析json文件获取检测结构,通过该检测结构加入基本运行时。

应用为单线程~~,但也可以指派mutithreading来注册多线程事件。~~(代办)

基础类通过不同子类实现不同功能,极大程度保证可扩展性。

默认读取当前目录下的config.json文件作为配置文件。

配置文件参考

1. root(根)

在根中,标记了软件版本、事件检查列表等信息,具体格式如下:

{
    "version": "(version)",
    "interval": "(interval_time)",
    "checks": [
        "(events)"
    ]
}

下面说明各参数的作用:

verison:指明配置文件对应的软件版本,不同版本的软件对配置文件的要求不同,使用前请仔细检查你的配置文件是否符合对应版本的要求。

interval:检查事件的间隔。

checks:所有需要注册的事件。


2. event(事件)

在根的checks段中,需要注册不同的事件来触发行为 (action) 。

event类型结构是这样的:

{
    "type": "event",
    "event": "(event_type)",
    "rate": "(event_check_rate)",
    "todo": {
        "type": "todo",
        "actions": []
    }
}

所有的event类型都**须要**包含以下参数:

  • type (值必须为 event),用于显式识别类型。
  • rate,事件检查间隔,1表示无间隔,数字越大间隔越大。
  • event,指定事件类型。
  • todo,事件触发后的后续操作的集合类型。

同时,不同类型的事件有不同的参数,下面给出不同类型的事件的作用和参数:

null

  • 参数
"event": "null"
  • 触发条件

每次检查事件是都会始终触发该事件。

image_appear

  • 参数
"event"    : "image_appear",
"base"     : "(path_or_var_to_base_image)",
"image"    : "(path_or_var_to_target_image)",
"var"      : "(var_name_to_store_image_position)",
"precision": "(image_search_minimum_precision)"

参数释义:

base:基础图像的路径或变量。

image:待查找图像的路径或变量。

var:查找到图像后储存查找信息的变量名(后续操作可能需要此信息)。

precision:查找最小精度(0-1),建议0.95。

  • 触发条件

当查找到image出现在base中后,会将查找信息储存在var中,并触发后续操作。


3. todo(办事处)

当事件触发后,会通过todo对象处理后续操作。

todo对象具体格式如下:

{
    "type": "todo",
    "actions": [
        "(actions)"
    ]
}

下面说明各参数作用:

actions:指定后续操作,按顺序执行。

注意:当其中某个action操作失败时,会跳过当前todo对象的后续操作。


4. action(操作)

操作的基本格式如下:

{
    "type": "action",
    "action": "(action_type)"
}

action操作发生可预测的错误时,将停止后续操作,部分action可以选择忽略可预测错误。当action发生不可预测错误时,将报错并终止上下文操作。

不同的操作有不同的功能和不同的参数。

下面给出所有支持的操作:

move_mouse_to

  • 作用

将鼠标移动到指定位置

  • 参数
"action": "move_mouse_to",
"var"   : "(var_to_target_location)"

参数释义:

var:已记录目标位置的变量名

sleep

  • 作用

延时指定时间

  • 参数
"action"    : "sleep",
"sleep_time": (time_to_sleep)

参数释义:

sleep_time:休眠时间,单位:秒,类型:float

mouse_click

  • 作用

模拟鼠标点击

  • 参数
"action"   : "mouse_click"
"push_time": (time_to_push_button)

参数释义:

push_time:按钮按下到抬起的时间,单位:秒,类型:float

get_image_pos

  • 作用

获取小图像在大图像中的位置

  • 参数
"action"   : "get_image_pos",
"var"      : "(var_to_store_result)",
"base"     : "(path_or_var_to_base_image)",
"image"    : "(path_or_var_to_image)",
"precision": "(precision_to_search_image)"

参数释义:

var:储存搜索结果的变量名

base:搜索的基底图片路径或变量

image:需要搜索的图片路径或变量

precision:搜索精度(0-1)

screen_shot

  • 作用

用于完整屏幕截图

  • 参数
"action": "screen_shot",
"save"  : "(path_to_save_screenshot)"

参数释义:

save:保存截图的路径

screen_shot_mem

  • 作用

同上,但数据储存于变量中

  • 参数
"action": "screen_shot_mem"
"var"   : "(var_name_to_store_image)"

参数释义:

var:用于储存图像的变量

remove_file

  • 作用

删除指定文件

  • 参数
"event"       : “remove_file”,
"ignore_error": (is_ignore_error),
"path"        : "(path_to_remove)"

参数释义:

ignore_error:忽略错误,继续执行后续操作,类型:bool

path:需要删除的文件路径

text_input

  • 作用

模拟键盘出入文字

  • 参数
"action": "text_input",
"text"  : "(something_to_input)"

参数释义:

text:需要输入的文本

text_input_file

  • 作用

读取文件内容,通过键盘模拟操作

  • 参数
"action": "text_input_file",
"file": "(path_to_file)"
  • 参数释义

file:文本文件路径

5. var(变量)

变量名前一律加上美元符号$,变量名首位为**下划线_**为全局变量,否则为局部变量(在当前event中生效)