软件架构设计立足于目标用户的需求和背景,脱离用户需求和背景的软件架构设计都是空谈。
Fox-Edge的主要目标用户,是大中型企业客户,以及跟它们关联的上下游服务企业。
对这些用户来说, 人力成本高于物料成本 ,他们的技术栈以JAVA为主 ,更关注是否 开源 ,自己的开发人员能够快速掌握开源代码, 形成 自主可控 。
所以Fox-Edge的开发语言选择的是JAVA,这些用户大概率也不会接受跟自己不对标的其他开发语言。
根据用户需求和背景,Fox-Edge在设计阶段,选择的开发语言为JAVA,边缘端设备的硬件最低规格为 4G内存 、32G存储空间
但是,在Fox-Edge在推广过程中,很多中小企业用户也对Fox-Edge的诸多特性展示了自己的兴趣,也有意愿将Fox-Edge应用到自己的物联网项目之中。
对这些用户来说, 物料成本高于人力成本 ,他们更关注的是在 价格低廉的硬件平台 上,有个可以 拿来即用的软件平台
根据用户需求和背景,Fox-Edge决定推出一个Native版本,大幅度降低物料成本的门槛,来解决这个问题。
在设计阶段,选择的开发语言为GO,边缘端设备的硬件最低规格为 512M内存 、8G存储空间
任何方案都具有两面性,组合版同样如何,它存在如下局限性
目前只提供ARM64版本的下载
如果你想使用MYSQL数据库,请参照JAVA版本的初始化MYSQL环节,请在fox-edge.ini将database配置为mysql
如果你已经充分了解了上面的约束条件,那么就可以使用Fox-Edge的Native版了
准备一台ARM的嵌入式设备,最小配置(512M内存、8G存储空间)。
下面以【软方】嵌入式工控机 为范例进行安装,这款设备的CPU为RK2611A,512M内存、4G存储空间。
提醒:
1、操作系统和通用软件的安装和配置
ARM设备通常为嵌入式设备,其操作系统通常是生产厂家以固件的形式随机附送,往往不具有通用性。
各种通用软件的安装,谨遵生产厂家的指导。遇到问题,请及时找生产厂家的技术人员支持解决。
比如灵狐在选购友善R5C设备后,在安装通用软件和环境配置阶段,也同样遇到过刷机和安装的问题。
该产品优点主要是自带比较多的接口,功耗低,更适合工业场景使用。
如果只是作为前期的技术验证和产品的学习,也可以使用香橙派Zero2W这类开发板进行安装
【软方】
Linux操作系统
友情提示:跟商家选购主机的时候,要求商家出厂预装ubuntu 22.0的固件。
【香橙派】
Linux操作系统
请参考厂家的刷机教程,刷机为ubuntu 22.0
如果是其他发行版本的Linux操作系统,请自行查阅对应Linux版本的redis和nginx的安装教程
1、Redis:6.0以上版本
2、nginx:1.18以上版本
基础软件 redis
#更新
apt-get update
#安装redis
apt install redis-server -y
#检查安装结果
systemctl status redis-server
#修改配置文件
vim /etc/redis/redis.conf
#1.注释掉 bind 127.0.0.1 ::1 位置在69行左右
#2.修改protected-mode为no 位置在88行左右
#3.修改requirepass为12345678 位置在507行左右或者在790行左右
#重启redis
systemctl restart redis-server
nginx的安装
#更新仓库
apt update
#默认安装nginx
apt install nginx -y
#检查nginx的安装是否成功
systemctl status nginx
#重新装载配置
nginx -s reload
请到灵狐云端的页面下载Fox-Edge最新的初始安装包,默认的账号/密码:Fox-Edge-Public/12345678
Fox-Edge安装包下载(ARM64版本)
#切换目录
cd /home
#下载Fox-Edge安装包:最新版本,可到[云端仓库](http://cloud.fox-tech.cn) 查询
wget -c http://repository.fox-tech.cn/system/fox-edge-armd64/v1/1.1.1/fox-edge-armd64-20260117145515.gz
#解压安装包
tar -xzvf fox-edge-armd64-20260117145515.gz
#移动目录
mv fox-edge /opt
Fox-Edge安装包下载(x86版本)
#切换目录
cd /home
#下载Fox-Edge安装包:最新版本,可到[云端仓库](http://cloud.fox-tech.cn) 查询
wget -c http://repository.fox-tech.cn/system/fox-edge-amd64/v1/1.1.0/fox-edge-amd64-20260210160101.gz
#解压安装包
tar -xzvf fox-edge-amd64-20260210160101.gz
#移动目录
mv fox-edge /opt
导入Nginx配置
#复制nginx配置到nginx
#前端页面fox-edge-ui的nginx配置,等reload后,打开http:xxx.xxx.xxx.xxx,即可验证
cp /opt/fox-edge/doc/nginx/conf.d/fox-edge.com.ipadr.conf /etc/nginx/conf.d
#重新加载配置
nginx -s reload
系统启动
#进入目录
cd /opt/fox-edge/shell
#启动Fox-Edge
./startup.sh
#如果准备开机启动,执行该命令
./enable-service.sh
检查是否启动成功
#执行命令
ps -aux|grep fox-edge
#此时将看到下列进程
root@fox-edge-server:/opt/fox-edge/shell# ps -aux|grep fox-edge
root 3819186 0.3 1.5 712252 15532 pts/0 Sl 15:20 0:04 /opt/fox-edge/bin/kernel/gateway-native/gateway-native -- --app_engine=native --app_type=kernel --app_name=gateway-native --env_type=device --env_cpu_id= --env_database=sqlite3 --work_mode=local --kernel_mode=native server.port=9000 redis.host=localhost redis.port=6379 redis.password=12345678 mysql.host=localhost mysql.port=3306 mysql.username=fox-edge mysql.password=12345678 mysql.database=fox_edge param1=1234 param2=5678
root 3819232 2.2 2.6 1236496 26372 pts/0 Sl 15:20 0:30 /opt/fox-edge/bin/kernel/manager-native/manager-native -- --app_engine=native --app_type=kernel --app_name=manager-native --env_type=device --env_cpu_id= --env_database=sqlite3 --work_mode=local --kernel_mode=native server.port=9101 redis.host=localhost redis.port=6379 redis.password=12345678 mysql.host=localhost mysql.port=3306 mysql.username=fox-edge mysql.password=12345678 mysql.database=fox_edge param1=1234 param2=5678
登录管理界面
#使用ifconfig查看计算机的IP
root@fox-edge-server:/opt/fox-edge/shell# ifconfig
#此时将看到linux下的网卡IP为192.168.3.133
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.3.133 netmask 255.255.255.0 broadcast 192.168.3.255
inet6 fe80::20c:29ff:fe6a:6ef2 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:6a:6e:f2 txqueuelen 1000 (Ethernet)
RX packets 7216222 bytes 2852722926 (2.8 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10559279 bytes 13621898330 (13.6 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 149369368 bytes 122430812692 (122.4 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 149369368 bytes 122430812692 (122.4 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
在浏览器中打开,http://192.168.3.133
此时将出现登录页面,默认的初始账号/密码:admin/12345678

登录成功后进入首页

从 仓库管理>服务模块配置,可以看到,新安装的Fox-Edge只有gateway-service和manager-service两个内核服务

从 仓库管理>服务模块仓库,可以看到在灵狐技术网站的中央仓库提供的服务列表。
#先下载下列服务
1、channel-simulator-native
这是一个通道服务,在测试环境下,为开发者提供一个模式设备的问答响应能力,方便开发者进行设备报文级别的测试
在此,可以也可以充当设备模拟器的作用
2、device-native
这是设备数据解码的核心服务,它为上层应用提供面向设备的会话操作。它会将面向设备的会话操作,编码成为通信报文
然后发送给下层的通道服务,再由通道服务转发给远端的物理设备。当远端设备通过通道服务返回数据的时候,对报文进
行解码操作,使之成为上层应用可以理解的业务对象。
3、controller-native
这是控制器服务,会根据用户的监控认为编排,周期性的将设备操作任务,发送给device-service服务。当远端的设备响
应后,device-service在完成报文解码后,将设备的业务数据返回给控制器服务。
控制器服务在获得远端设备的业务数据后,会将业务数据发送给persist-service服务,进行持久化保存。
4、persist-native
这是持久化服务,控制器服务从设备收集完成数据之后,会把需要持久化保存的数据,发送给persist-service服务。此时
persist-service会将设备的数据,保存到Redis和MySQL当中,供其他服务消费使用。



从 任务管理>通道操作任务,给模拟设备发送一下测试报文,可以看到模拟设备返回了响应报文,此时说明Fox-Edge跟模拟设备通信上了

从 任务管理>设备操作任务,给模拟设备发送一下操作请求,可以看到模拟设备返回了响应数据,此时说明Fox-Edge跟模拟设备能够正常会话上了

从 任务管理>设备监控任务,给控制器服务添加一个监控任务,让其周期性的去访问远端设备

从 设备管理>设备数值,可以看到添加监控任务后,不断从远端设备获得并持续更新数据,这些设备数据保存在redis和mysql当中
