9.1 APP-Design
9.1.1 Grundstruktur
Die Grundstruktur der APP wird im JSON-Format definiert und enthält die folgenden Kernfelder:
{
"code": "vip.woody.app.test1",
"name": "测试应用",
"logo": "",
"script": "",
"schema": "",
"pages": "",
"config": ""
}- Feldbeschreibung
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
code |
String | ✅ | Eindeutiger Bezeichner der Anwendung. Bei Installation mit demselben Code wird die vorhandene Anwendung überschrieben |
name |
String | ✅ | Anzeigename der Anwendung |
logo |
String | ❌ | Anwendungssymbol, unterstützt Base64-Kodierung oder Bild-URL |
script |
String | ❌ | Lua-Backend-Skript, das die Anwendungslogik steuert. Details siehe APP-Backend |
schema |
String | ❌ | Anwendungsdefinition im kodierten JSON-Format |
pages |
String | ❌ | Frontend-Seitendefinition im kodierten JSON-Format |
config |
String | ❌ | Konfigurationsinformationen nach der Anwendungsinstallation |
9.1.2 Anwendungsdefinitionsschema
9.1.2.1 Strukturübersicht
Strukturübersicht
{
"data": [
{
"name": "products",
"readable": true,
"writable": false,
"type": "table",
"struct": [
{
"name": "device",
"type": "string"
},
{
"name": "value",
"type": "int"
},
{
"name": "delta",
"type": "int"
},
{
"name": "time",
"type": "int"
}
]
}
],
"input": [
{
"class": "cnc1",
"define": [
{
"code": "products",
"name": "产量",
"type": "int"
}
],
"title": "一类加工机床"
}
]
}9.1.2.2 data-Felddefinition
Das data-Feld definiert die Datenspeicherstruktur der Anwendung im Array-Format. Jedes Element enthält die folgenden Attribute:
| Feld | Typ | Beschreibung |
|---|---|---|
name |
String | Datentabellenname |
readable |
Boolean | Ob lesbar |
writable |
Boolean | Ob beschreibbar |
type |
String | Datentyp, derzeit wird nur table unterstützt |
struct |
Array | Tabellenstrukturdefinition |
- Nur die Zugriffsberechtigungen automatisch generierter Tabellenzugriffs-APIs werden durch die Felder readable und writable gesteuert. Der Datenzugriff in Backend-Lua-Skripten ist nicht betroffen.
9.1.2.3 Tabellenstrukturdefinition
struct 数组中每个字段包含:
name: Feldnametype: Feldtyp, unterstützt die folgenden Typen:stringZeichenfolgentypintGanzzahltypfloatGleitkommatyp
9.1.2.3.1 Automatisch generierte API-Schnittstellen
Basierend auf der data-Definition wird das System automatisch die folgenden RESTful-API-Schnittstellen bereitstellen:
Pfadparameter
code: Anwendungskennzeichnertable: Datentabellennameid: Eindeutiger Bezeichner des DatensatzesDatenlistenabfrage
GET /api/app/{code}/data/{table}
Abfrageparameter
| Feld | Typ | 默认值 | Beschreibung |
|---|---|---|---|
_start |
Number | 0 | Startposition des Datensatzes |
_limit |
Number | 10 | Anzahl der zurückgegebenen Datensätze |
{field} |
Any | - | Gleichwertfilter, z.B. ?value=1 |
>{field} |
Any | - | Größer-oder-gleich-Filter, z.B. ?>value=1 |
<{field} |
Any | - | Kleiner-oder-gleich-Filter, z.B. ?<value=1 |
order |
String | - | Aufsteigende Sortierung, z.B. ?order=value |
-order |
String | - | Absteigende Sortierung, z.B. ?-order=value |
- Datensatz hinzufügen
POST /api/app/{code}/data/{table}
- Einzelne Datensatzabfrage
GET /api/app/{code}/data/{table}/{id}
- Datensatz aktualisieren
PUT /api/app/{code}/data/{table}/{id}
- Datensatz löschen
DELETE /api/app/{code}/data/{table}/{id}
9.1.2.4 input-Felddefinition
Das input-Feld definiert Geräte innerhalb der APP und Felder nach der Gerätezuordnung. Die Designidee ist, dass eine App auf mehrere verschiedene Gerätetypen abzielen kann, wie verschiedene PLCs und CNCs. Einige Funktionen erfordern die Abstraktion verschiedener Geräte zu einem Gerätetyp, daher muss hier ein Gerätetyp für die Zuordnung während der Konfiguration definiert werden:
{
"class": "cnc1",
"define": [
{
"code": "products",
"name": "产量",
"type": "int"
}
],
"title": "一类加工机床"
}| Feld | Typ | Beschreibung |
|---|---|---|
class |
String | Gerätetyp |
title |
String | Gerätetypname |
define |
Array | Variablendefinition |
Variablendefinition
| Feld | Typ | Beschreibung |
|---|---|---|
code |
String | Variablencode |
name |
String | Variablenname |
type |
String | Variablentyp |
9.1.3 Konfigurationsfeld config
Das config-Feld wird verwendet, um den Konfigurationsinhalt nach der App-Installation zu speichern
9.1.3.2 device-Felddefinition
Das device-Feld definiert die Zuordnung von durch IoTBoX erfassten Geräten zu Geräten innerhalb der APP im Array-Format
| Feld | Typ | Beschreibung |
|---|---|---|
code |
String | Maschinencode |
class |
Boolean | Gerätetyp innerhalb der App |
variable |
Array | Zuordnungsvariablendefinition |
Zuordnungsvariablendefinition
| Feld | Typ | Beschreibung |
|---|---|---|
dst |
String | Originalvariablencode |
src |
Boolean | Variablencode innerhalb der App |
Die Bedeutung der obigen Konfiguration ist: Das in IoTBoX konfigurierte Erfassungsgerät M06 als cnc1-Typ in die App zu zuordnen und die von M06 erfassten cnc_products als product-Variable von cnc1 zu zuordnen.