You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

1.9 KiB

边缘网关升级程序

本文档描写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