Browse Source

update

storage-in-realtime
zhaohe 12 months ago
parent
commit
bbe8d251b3
  1. 98
      README.md
  2. 11
      doc/编码规范.md
  3. 39
      html/debug/index.html

98
README.md

@ -1,98 +1,16 @@
```
libwebsocket can/ uart logger ...
```
```
错误码划分:
APP_ERROR_CODE
10000
SYS_ERROR_CODE
20000
```
```
TODO:
1.关闭系统的时间同步
2.消毒过程中检查消毒液是否用完
```
```
iconv
# 编译环境初始化
sudo apt install fonts-noto-cjk
```
# 多设备编码规范,异常处理规范
```
0. 单片机按照当前产品真实安装的设备编写代码。有设备则实现对应的协议,没有该设备则不实现。
1. LinuxID路由,则只路由真实存在的设备。
2. app目录下的代码,根据项目的不同,写不同的代码。
3. 整个程序根据Host名字自动生成不同的配置。
4. config.json中在正式代码中应该为空。
5. Hardware启动时,校验单片机的板子类型,如果板子类型不匹配,则设置标志位。
```
# 设备异常处理和前端现实
```bash
```
1.状态异常
2.事件异常
--------------------------------------------
1.存在一个服务,主动上报全局状态(传感器状态,设备工作状态,设备状态异常,等状态信息),不可停止。
2.每个页面,根据自身的业务逻辑,会存在一个上报状态的接口,该上报接口,会上报当前页面需要动态更新的状态。
1.后台服务
2.前端直驱
1.异常属于代码严重错误,如果发生异常,则停止设备运行,通过广播板子复位指令,尽可能的让设备停下来。
2.后台服务运行中,如果触发异常,则
```
```
TODO:
--------------------------------------------
# 编译脚本说明
```bash
# 编译ARM版本的代码
./build.sh
1. 整理大空间,小空间,管道式的单片机代码,满足多设备编码规范。(按照真实的设备情况编写代码)OK
2. 整理大空间,小空间,管道式的ID路由代码。OK
3. 填充硬件测试页面。OK
4. 指令重发代码功能。OK
5. 硬件测试 OK
6. 所有后台程序添加异常检查,当异常发生过,则设置全局标志位(硬件异常)。此时后台程序相应的线程将不再继续工作。(直到设备重启) OK
---------------------------------------------------------------------
10.添加异常上报前端程序,添加异常状态读取程序 OK
-----------------------------------------------------------------
9. 对接消毒服务 OK
11.针对关键接口添加异常标志位检测程序。(消毒,加液,排液体,气密性测试) OK
8. 添加消毒日志打印程序 OK
8. 消毒测试
9. 添加气密封性测试逻辑代码。OK
-----------------------------------------------------------------
9. 处理硬件异常上报 (OK)
8. 添加一个程序根据全局异常标志位,对设备进行相应的检查,如果检查通过则清空标志位。同时如果发生异常,则发送板子复位指令,对板子进行复位。
整理错误码,为所有错误吗添加中文示意
消毒过程中检测水禁传感器,OK
添加日志自动删除逻辑 OK
...
5. 单片机支持自动过滤掉重发的指令。
```
```
TODO文档:
getLoginUser
getState
fn_printRecord
# 编译PC版本的代码
./buildpc.sh
```

11
doc/编码规范.md

@ -0,0 +1,11 @@
# 多设备编码规范,异常处理规范
```
0. 单片机按照当前产品真实安装的设备编写代码。有设备则实现对应的协议,没有该设备则不实现。
1. LinuxID路由,则只路由真实存在的设备。
2. app目录下的代码,根据项目的不同,写不同的代码。
3. 整个程序根据Host名字自动生成不同的配置。
4. config.json中在正式代码中应该为空。
5. Hardware启动时,校验单片机的板子类型,如果板子类型不匹配,则设置标志位。
```

39
html/debug/index.html

@ -24,38 +24,44 @@
<div style="display:flex;padding:5px;">
<a-input v-model:value="wsUrl" style="margin-right:5px;"></a-input>
<a-button v-if="null === ws" @click="actionConnect">Connect</a-button>
<a-button v-else @click="actionDisconnect">DisConnect</a-button>
<a-button v-else @click="actionDisconnect">Disconnect</a-button>
</div>
<a-menu mode="inline" :items="actionMenuItems" @click="actionGroupMenuItemClick"></a-menu>
</a-col>
<a-col :span="12" style="background-color: #f1f1f1;display:flex;flex-direction: column;">
<div v-if="null !== actionActiveGroup"
style="height:0;flex-grow: 1;overflow-y: auto;margin-bottom: 10px;padding: 10px;">
<div v-for="item in actionActiveGroup.items" class="action" style="margin-bottom: 5px;">
<div style="margin-right:5px;">
<a-input :value="item.fnName" disabled />
<div v-for="item in actionActiveGroup.items" class="action"
style="margin-bottom: 5px;background:white;padding:5px;border-radius: 5px;">
<div style="margin-right:5px;padding: 8px;">
{{item.fnName}}
</div>
<div v-for="param in item.params">
<a-input v-model:value="item.values[param]" :placeholder="param" />
</div>
<a-button style="margin-left:5px;" @click="actionActionExecute(item)">DOIT</a-button>
<a-button style="margin-left:5px;" @click="actionActionExecute(item)">DoIt</a-button>
</div>
</div>
<div style="padding:10px;">
<a-textarea v-model:value="rawRequestContent" style="margin-bottom: 5px;"></a-textarea>
<a-textarea v-model:value="rawRequestContent" style="margin-bottom: 5px;height: 300px;"></a-textarea>
<div>
<a-button @click="actionSendRawRequest">Send</a-button>
</div>
</div>
</a-col>
<a-col :span="6" style="overflow-y: auto;height: 100%;">
<a-collapse v-model:activeKey="activeKey">
<a-collapse-panel v-for="(entry,index) in logs" :key="index" :header="entry.title">
<div style="white-space: pre-wrap;">
{{entry.content}}
</div>
</a-collapse-panel>
</a-collapse>
<a-col :span="6" style="height: 100%;display: flex;flex-direction: column;">
<div style="text-align: right; padding:10px;">
<a-button @click="actionClearLogs">CLEAR</a-button>
</div>
<div style="height:0;flex-grow:1;overflow-y: auto;">
<a-collapse>
<a-collapse-panel v-for="(entry,index) in logs" :key="index" :header="entry.title">
<div style="white-space: pre-wrap;">
{{entry.content}}
</div>
</a-collapse-panel>
</a-collapse>
</div>
</a-col>
</a-row>
</div>
@ -112,6 +118,11 @@
this.ws.close();
},
// clear logs
actionClearLogs() {
this.logs = [];
},
// action list reload
actionListReload(response) {
let data = response.rely;

Loading…
Cancel
Save