9.2 APP后端
- APP使用边缘计算中的函数与类型 边缘计算
9.2.1 APP内置变量与定义
9.2.1.1 Application 类型
Application类型为App在C++代码内的类型
class Application{
json ExecSql(string sql);
bool HasAevice(string code);
Variable GeVariable(string device_code,string variable_mapped_code);
string code;
}9.2.1.1.1 执行SQL语句
定义:
ExecSql(sql)方法
参数:
sql:string需要执行的sqlite3语句
返回:
tablesql执行后的结果,key-value组成的map的list,比如[{“id”:1,“name”:“xx”}],如果执行失败则返回空数组[]示例
9.2.1.1.2 是否存在设备
判断当前APP是否映射有某个设备
* 定义: HasAevice(code)
* 方法
* 参数:
- code: string 设备Code
* 返回: bool 存在返回true,不存在返回false
* 示例
```lua
-- 当前APP为app
-- 查询是否有fanuc001设备
local has_fanuc = app:HasAevice("fanuc001")
```
9.2.1.2 HttpRequest 类型
API的请求参数,格式如下
---@class HttpRequest
---@field path_arg table<string, string> PathArg
---@field query table<string, string> Query
---@field body any Body
---@field headers table<string, string> Header9.2.1.3 HttpResponse 类型
API的返回内容,格式如下
9.2.1.4 MappedDevice 类型
App内映射的设备,格式如下
9.2.1.5 TriggerVariable 类型
App内映射的设备,格式如下
---@class TriggerVariable
---@field current integer | number | string | boolean | table 当前采集值
---@field last integer | number | string | boolean | table 上次采集值9.2.2 脚本格式
APP 最简格式如下
--- test_api 测试API
---@param request HttpRequest -- 请求参数
---@return HttpResponse -- 返回参数
local function test_api(request)
return {}
end
--- Trigger 设备采集后触发函数
---@param device MappedDevice -- 当前设备
---@param data table<string,TriggerVariable> -- 映射后的变量code与变量采集值
---@return table<string,any> -- 返回参数,更新到最终的设备采集数据
function Trigger(device, data)
local result = {}
return result
end
Api = {
{
path = "/test_api/<code>",
method = "GET",
func = test_api
},
}其中定义如下