更新文档

This commit is contained in:
Yu Sun
2022-07-10 03:39:00 +08:00
parent dcc4780d46
commit 459e6baa33

View File

@@ -3,6 +3,7 @@
- [EdgeManagerSCADA系统](#edgemanagerscada系统) - [EdgeManagerSCADA系统](#edgemanagerscada系统)
- [API](#api) - [API](#api)
- [class `EDataCapture`](#class-edatacapture) - [class `EDataCapture`](#class-edatacapture)
- [0. HTTP POST: `set_node_data`](#0-http-post-set_node_data)
- [开发环境](#开发环境) - [开发环境](#开发环境)
- [技术细节](#技术细节) - [技术细节](#技术细节)
- [0. `EdgeManager\EDataCapture\EDataCapture -> set_data()`为什么是以`6507524`为大小chunked的](#0-edgemanageredatacaptureedatacapture---set_data为什么是以6507524为大小chunked的) - [0. `EdgeManager\EDataCapture\EDataCapture -> set_data()`为什么是以`6507524`为大小chunked的](#0-edgemanageredatacaptureedatacapture---set_data为什么是以6507524为大小chunked的)
@@ -13,21 +14,38 @@
### class `EDataCapture` ### class `EDataCapture`
0. HTTP POST: `set_data` #### 0. HTTP POST: `set_node_data`
**请求** **请求**
> 需保证每次传入数据的**工序单元working subclass和数值类型type** 一致。
>
> 在此基础上尽量单次传入尽量多数据使得性能最大化。
>
> 但仍需兼顾传输速率和超时时间。
```json ```json
{ {
'action': 'set_data', "action": "set_node_data",
'param': { "param": {
'working_subclass': <string>, "working_subclass": <string>,
'type': 'string' | 'int' | 'float' | 'bool', "type": "string" | "int" | "float" | "bool",
'code': <string>, "data": [
// value的类型需与type对应 {
'value': <string | int | float | bool>, "code": <string>,
'device_code': [string], // value的类型需与type对应
'batch': [string] "value": <string | int | float | bool>,
"device_code": [string],
"batch": [string]
},
{
"code": <string>,
"value": <string | int | float | bool>,
"device_code": [string],
"batch": [string]
},
...
]
} }
} }
``` ```
@@ -38,9 +56,9 @@
```json ```json
{ {
'action': 'result_set_data', "action": "result_set_data",
'errcode': 0, "errcode": 0,
'errmsg': '' "errmsg": ""
} }
``` ```
@@ -48,12 +66,14 @@
```json ```json
{ {
'action': 'result_set_data', "action": "result_set_data",
'errcode': 4002, "errcode": 4002,
'errmsg': 'ROLLBACKed: Bad data received (structure and/or values)' "errmsg": "ROLLBACKed: Bad data received (structure and/or values)"
} }
``` ```
## 开发环境 ## 开发环境
拉取代码: 拉取代码:
@@ -79,9 +99,19 @@ docker exec -it edge_manager bash
后端调试: 后端调试:
```bash ```bash
# In container
php EdgeManager.php --server_name=GPU-server-01 --user=postgres --password=big_dick start php EdgeManager.php --server_name=GPU-server-01 --user=postgres --password=big_dick start
``` ```
前端调试:
```bash
# In host
# yarn
# yarn watch
yarn serve
```
客户端连接: 客户端连接:
```bash ```bash
@@ -96,7 +126,13 @@ psql -h localhost -U postgres
### 0. `EdgeManager\EDataCapture\EDataCapture -> set_data()`为什么是以`6507524`为大小chunked的 ### 0. `EdgeManager\EDataCapture\EDataCapture -> set_data()`为什么是以`6507524`为大小chunked的
首先明确一点根据PostgreSQL的技术架构条件允许的情况下**一次性插入多条记录是效率最高的** 首先明确一点根据PostgreSQL的技术架构条件允许的情况下**一次性插入多条记录是效率最高的**,比如:
```sql
INSERT INTO films (code, title, did, date_prod, kind) VALUES
('B6717', 'Tampopo', 110, '1985-02-10', 'Comedy'),
('HG120', 'The Dinner Game', 140, DEFAULT, 'Comedy');
```
这其中,仅插入部分字段的值,比如: 这其中,仅插入部分字段的值,比如: