9.2 Backend de APP
- APP usa funciones y tipos de computación en el borde Computación en el borde
9.2.1 Variables incorporadas y definiciones de APP
9.2.1.1 Tipo Application
El tipo Application es el tipo de App en código 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 Ejecutar sentencia SQL
Definición:
ExecSql(sql)Método
Parámetros:
sql:stringSentencia sqlite3 a ejecutar
Retorna:
tableResultado después de la ejecución SQL, una lista de mapas key-value, ej., [{“id”:1,“name”:“xx”}]. Retorna array vacío [] si la ejecución fallaEjemplo
9.2.1.1.2 Verificar si existe dispositivo
Verifica si la APP actual tiene mapeado cierto dispositivo
* Definición: HasAevice(code)
* Método
* Parámetros:
- code: string Código de dispositivo
* Retorna: bool Retorna true si existe, false si no existe
* Ejemplo
```lua
-- 当前APP为app
-- 查询是否有fanuc001设备
local has_fanuc = app:HasAevice("fanuc001")
```
9.2.1.1.3 Obtener puntero a variable original de variable mapeada
Definición:
GeVariable(device_code, variable_mapped_code)Método
Parámetros:
device_code:stringCódigo de dispositivovariable_mapped_code:stringNombre de variable mapeada
Retorna:
VariableVariable de recopilación original, el tipo es Variable incorporado. Retorna nil si no existeEjemplo
9.2.1.2 Tipo HttpRequest
Parámetros de solicitud API, formato como sigue
---@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 Parámetro path de solicitud
- Definición:
path_arg - Propiedad
- Tipo:
table<string, string> - Descripción: Resultado de análisis de variables PATH con
<>, como/test_api/<code>
9.2.1.2.2 Parámetro query de solicitud
- Definición:
query - Propiedad
- Tipo:
table<string, string> - Descripción: Parámetros de solicitud después de
?en/test_api?a=1&b=2
9.2.1.3 Tipo HttpResponse
Contenido de respuesta API, formato como sigue
---@class HttpResponse
---@field code integer StatusCode
---@field body any Body
---@field headers table<string, string> Header9.2.1.3.1 status_code de respuesta HTTP
- Definición:
code - Propiedad
- Tipo:
integer - Descripción: Código de respuesta HTTP
9.2.1.4 Tipo MappedDevice
Dispositivo mapeado dentro de App, formato como sigue
---@class MappedDevice
---@field code string Device Code
---@field type string Device Type
---@field class string Device Class9.2.1.4.1 Código de MappedDevice
- Definición:
code - Propiedad
- Tipo:
string - Descripción: Código de dispositivo, corresponde a Device.code de variable base
9.2.1.5 Tipo TriggerVariable
Dispositivo mapeado dentro de App, formato como sigue
---@class TriggerVariable
---@field current integer | number | string | boolean | table 当前采集值
---@field last integer | number | string | boolean | table 上次采集值9.2.2 Formato de script
Formato mínimo de APP como sigue
--- 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 Función Trigger
Para aplicaciones mapeadas a APP, la función Trigger se activa después de cada ronda de recopilación de datos, pasando las variables mapeadas del dispositivo
- Definición:
Trigger(device, data) - Función
- Parámetros:
device:MappedDeviceDispositivo actual, este dispositivodata:table<string,TriggerVariable>Código de variable mapeada y valor de recopilación de variable
- Retorna:
table<string,any>Los datos retornados actualizarán directamente los resultados de recopilación del dispositivo. Solo los valores de retorno modificarán los resultados de recopilación, la manipulación directa de data no lo hará
9.2.2.2 Tabla Api
La tabla Api define interfaces http expuestas externamente, es una lista de mapas anidados
- Campos:
path:stringRuta de solicitud, use<>para establecer parámetros de rutamethod:stringMétodo de solicitud HTTPfunc:functionFunción activada cuando la ruta coincide
- Retorna:
table<string,any>Los datos retornados actualizarán directamente los resultados de recopilación del dispositivo. Solo los valores de retorno modificarán los resultados de recopilación, la manipulación directa de data no lo hará - Función de activación
Entrada: request tipoHttpRequestValor de retornotipo HttpResponse