9.2 APP-Backend
- APP verwendet Funktionen und Typen aus Edge Computing Edge Computing
9.2.1 APP-Integrierte Variablen und Definitionen
9.2.1.1 Application-Typ
Der Application-Typ ist der Typ der App im C++-Code
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-Anweisung ausführen
Definition:
ExecSql(sql)Methode
Parameter:
sql:stringAuszuführende SQLite3-Anweisung
Rückgabe:
tableErgebnis nach der SQL-Ausführung, eine Liste von Key-Value-Maps, z.B. [{“id”:1,“name”:“xx”}]. Gibt ein leeres Array [] zurück, wenn die Ausführung fehlschlägtBeispiel
9.2.1.1.2 Prüfen, ob Gerät existiert
Prüft, ob die aktuelle APP ein bestimmtes Gerät zugeordnet hat
* Definition: HasAevice(code)
* Methode
* Parameter:
- code: string Gerätecode
* Rückgabe: bool Gibt true zurück, wenn es existiert, false wenn nicht
* Beispiel
```lua
-- 当前APP为app
-- 查询是否有fanuc001设备
local has_fanuc = app:HasAevice("fanuc001")
```
9.2.1.1.3 Zeiger auf Originalvariable der zugeordneten Variable abrufen
Definition:
GeVariable(device_code, variable_mapped_code)Methode
Parameter:
device_code:stringGerätecodevariable_mapped_code:stringZugeordneter Variablenname
Rückgabe:
VariableOriginale Erfassungsvariable, Typ ist eingebaute Variable. Gibt nil zurück, wenn nicht vorhandenBeispiel
9.2.1.2 HttpRequest-Typ
API-Anforderungsparameter, Format wie folgt
---@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 Anforderungs-Pfadparameter
- Definition:
path_arg - Eigenschaft
- Typ:
table<string, string> - Beschreibung: Parsing-Ergebnis von PATH-Variablen mit
<>, wie/test_api/<code>
9.2.1.2.2 Anforderungs-Query-Parameter
- Definition:
query - Eigenschaft
- Typ:
table<string, string> - Beschreibung: Anforderungsparameter nach
?in/test_api?a=1&b=2
9.2.1.3 HttpResponse-Typ
API-Antwortinhalt, Format wie folgt
---@class HttpResponse
---@field code integer StatusCode
---@field body any Body
---@field headers table<string, string> Header9.2.1.4 MappedDevice-Typ
Innerhalb der App zugeordnetes Gerät, Format wie folgt
---@class MappedDevice
---@field code string Device Code
---@field type string Device Type
---@field class string Device Class9.2.1.4.1 MappedDevice-Code
- Definition:
code - Eigenschaft
- Typ:
string - Beschreibung: Gerätecode, entspricht Device.code der Basisvariable
9.2.1.5 TriggerVariable-Typ
Innerhalb der App zugeordnetes Gerät, Format wie folgt
---@class TriggerVariable
---@field current integer | number | string | boolean | table 当前采集值
---@field last integer | number | string | boolean | table 上次采集值9.2.2 Skriptformat
Minimales APP-Format wie folgt
--- 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-Funktion
Für Anwendungen, die der APP zugeordnet sind, wird die Trigger-Funktion nach jeder Datenerfassungsrunde ausgelöst, wobei die zugeordneten Gerätevariablen übergeben werden
- Definition:
Trigger(device, data) - Funktion
- Parameter:
device:MappedDeviceAktuelles Gerät, dieses Gerätdata:table<string,TriggerVariable>Zugeordneter Variablencode und Variabenerfassungswert
- Rückgabe:
table<string,any>Zurückgegebene Daten aktualisieren direkt die Geräteerfassungsergebnisse. Nur Rückgabewerte ändern die Erfassungsergebnisse, direkte Manipulation von data nicht
9.2.2.2 Api-Tabelle
Die Api-Tabelle definiert extern freigegebene HTTP-Schnittstellen, ist eine Liste von verschachtelten Maps
- Felder:
path:stringAnforderungspfad, verwenden Sie<>, um Pfadparameter zu setzenmethod:stringHTTP-Anforderungsmethodefunc:functionFunktion, die ausgelöst wird, wenn die Route übereinstimmt
- Rückgabe:
table<string,any>Zurückgegebene Daten aktualisieren direkt die Geräteerfassungsergebnisse. Nur Rückgabewerte ändern die Erfassungsergebnisse, direkte Manipulation von data nicht - Trigger-Funktion
Eingabe: requestHttpRequest-TypRückgabewertHttpResponse-Typ