Compare commits
1 Commits
main
...
yuxiaolei-
Author | SHA1 | Date |
---|---|---|
|
43a8402252 | 3 years ago |
1 changed files with 72 additions and 0 deletions
@ -0,0 +1,72 @@ |
|||
# 边缘网关升级程序 |
|||
>本文档描写IOT边缘网关升级的设计思想及方案概要,不涉及具体实现方案和技术实现方案。 |
|||
##功能 |
|||
实现边缘设备升级功能,edge server 下发软件信息(OTA.)即版本,watchdog间隔10s后台监听对比要升级的版本和设备版本,不同则升级,wd.shell监听watchdog保证进程运行。 |
|||
##模块框架设计 |
|||
|
|||
### edge server |
|||
web下发软件信息 |
|||
### edge |
|||
存储软件信息和当前设备版本信息,提供http接口方便获取以上信息 |
|||
### WatchDog |
|||
间隔对比版本信息,通过http方式获取。如果版本不一致,修改 |
|||
`docker-compose.yml`中版本信息,执行 |
|||
`docker-compose up` 自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器 |
|||
### wd.shell |
|||
10s定时监听WatchDog进程是否运行 |
|||
|
|||
|
|||
##系统处理流程 |
|||
Mqtt Topic:MSG_TOPIC_CONFIG_VER |
|||
EDGE SERVER: onSoftWareRequest 推送 |
|||
EDGE: onConfigVer 保存信息(SetUpdateVersion) |
|||
|
|||
HTTP: |
|||
WatchDog: http://localhost:8828/ver GetVerFromEdge 获取版本信息 |
|||
EDGE: VersionGet 收到请求返回保存信息 |
|||
|
|||
##开发和运行环境 |
|||
###开发环境 |
|||
系统:win10x64 Goland 2021.3.3 go版本 1.16 |
|||
###硬件环境 |
|||
飞凌OK3399C开发板 |
|||
###软件环境 |
|||
Unix/Docker |
|||
|
|||
##可靠性设计 |
|||
|
|||
###wd.shell |
|||
监听WatchaDog的看门狗,即在监控升级的进程后再放一只看门狗 |
|||
|
|||
#!/bin/bash |
|||
|
|||
#判断进程是否存在,如果不存在就启动它如果存在就重启它 |
|||
|
|||
while true; do |
|||
|
|||
cd /home/forlinx |
|||
|
|||
#启动一个循环,定时检查进程是否存在 |
|||
|
|||
server=`ps aux | grep WatchDog | grep -v grep` |
|||
|
|||
if [ ! "$server" ]; then |
|||
|
|||
#如果不存在就重新启动 |
|||
|
|||
#./WatchDog 8553 -c 1 & |
|||
|
|||
./WatchDog 8553 & |
|||
|
|||
#启动后沉睡10s |
|||
|
|||
sleep 10 |
|||
|
|||
fi |
|||
|
|||
#每次循环沉睡10s |
|||
|
|||
sleep 10 |
|||
|
|||
done |
|||
|
Loading…
Reference in new issue