9.2 APPバックエンド
- APPはエッジコンピューティングの関数とタイプを使用します エッジコンピューティング
9.2.1 APP組み込み変数と定義
9.2.1.1 Applicationタイプ
Applicationタイプは、C++コード内のAppのタイプです
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.2.1 リクエストのpathパラメータ
- 定義:
path_arg - 属性
- タイプ:
table<string, string> - 説明:
/test_api/<code>のようなPATH内の<>変数の解析結果
9.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
},
}其中定义如下
9.2.2.1 Trigger関数
APPにマッピングされたアプリケーションでは、各データ収集ラウンド後にTrigger関数がトリガーされ、デバイスマッピングされた変数が渡されます
- 定義:
Trigger(device, data) - 関数
- パラメータ:
device:MappedDevice現在のデバイス、このデバイスdata:table<string,TriggerVariable>マッピング後の変数codeと変数収集値
- 戻り値:
table<string,any>戻り値のデータはデバイスの収集結果に直接更新されます。戻り値のみが収集結果を変更し、dataの直接操作では変更されません
9.2.2.2 Apiテーブル
Apiテーブルは外部に公開されるhttpインターフェースを定義し、listでネストされたmapです
- フィールド:
path:stringリクエストパス、<>を使用してpathパラメータを設定method:stringHTTPリクエストメソッドfunc:functionルートが一致したときにトリガーされる関数
- 戻り値:
table<string,any>戻り値のデータはデバイスの収集結果に直接更新されます。戻り値のみが収集結果を変更し、dataの直接操作では変更されません - トリガー関数
入力: requestHttpRequestタイプ戻り値HttpResponseタイプ